999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

簡易語音通信軟件的設(shè)計(jì)

2021-02-26 02:16:24蔡立晶李文勇
科技創(chuàng)新與應(yīng)用 2021年9期

蔡立晶,李文勇

(1.黑龍江八一農(nóng)墾大學(xué),黑龍江 大慶 163319;2.大慶油田有限責(zé)任公司第一采油廠,黑龍江 大慶 163162)

語音通信軟件是一款利用便捷的網(wǎng)絡(luò)資源進(jìn)行語音通信交流軟件,是將講話人的語音轉(zhuǎn)換成數(shù)字信號在因特網(wǎng)上進(jìn)行傳輸?shù)募磿r(shí)通信軟件。IP 語音通信軟件是以TCP/IP 協(xié)議進(jìn)行傳輸?shù)?基于經(jīng)典的C/S 構(gòu)架,在Windows 平臺下利用Microsoft Visual C++開發(fā)環(huán)境下的網(wǎng)絡(luò)編程。這種語音通信是一種利用網(wǎng)絡(luò)資源進(jìn)行語音通信的新型方式,語音通信使用點(diǎn)對點(diǎn)的聯(lián)結(jié)進(jìn)行語音通信。軟件使用Windows-Socket 技術(shù)進(jìn)行設(shè)計(jì),根據(jù)相關(guān)編碼對語音進(jìn)行采集、抽樣后編碼成數(shù)字信號,利用網(wǎng)絡(luò)為載體進(jìn)行數(shù)字信號的傳輸。軟件的基本架構(gòu)為連接控制模塊、語音采集模塊、語音傳輸模塊、語音播放模塊。主要的關(guān)鍵技術(shù)有編碼技術(shù)、服務(wù)質(zhì)量(QOS)保證技術(shù)以及網(wǎng)絡(luò)傳輸技術(shù)等。此軟件主要是TCP 或UDP 作為其傳輸協(xié)議,這樣易于實(shí)現(xiàn)和調(diào)試,更重要的是靈活性和擴(kuò)展性好。

1 系統(tǒng)組成

系統(tǒng)模塊主要由界面設(shè)計(jì)、語音通信、數(shù)據(jù)傳輸、語音壓縮、控制設(shè)置組成。不同的模塊各自擔(dān)當(dāng)自己的責(zé)任,各模塊之間還相互結(jié)合,最終實(shí)現(xiàn)語音通話過程。運(yùn)用的主要技術(shù)知識有TCP/IP 協(xié)議(主要運(yùn)用三次握手和四次釋放)、UDP 協(xié)議(高效率、低可靠性)、Windows-Socket 網(wǎng)絡(luò)接口編程以及語音壓縮技術(shù)。

(1)界面設(shè)計(jì)模塊:是整個(gè)界面中按鍵的大小設(shè)置、按鍵的排布、畫布的大小設(shè)置、以及一些背景顏色的安排等。

(2)數(shù)據(jù)傳輸模塊:是報(bào)文之間的交互、報(bào)文之間的解析過程的設(shè)計(jì)。這次語音通信軟件主要采用的協(xié)議是TCP/IP 和UDP。使用TCP/IP 建立連接后,通過UDP 報(bào)文來通信。

(3)語音設(shè)計(jì)模塊:是利用Windows-Socket 網(wǎng)絡(luò)編程接口來實(shí)現(xiàn)模擬信號轉(zhuǎn)換成數(shù)字信號的設(shè)計(jì)。

(4)語音壓縮模塊:是運(yùn)用主流技術(shù)ACM 壓縮,壓縮音頻數(shù)據(jù)使得數(shù)據(jù)最小占用內(nèi)存,得以快速傳遞和轉(zhuǎn)換,實(shí)現(xiàn)高效率、低內(nèi)存等效果。

(5)按鍵控制模塊:設(shè)計(jì)的產(chǎn)品或多或少都有一些需要用戶自己選擇的功能,而按鍵就是用戶選擇功能最直觀的反應(yīng)。每個(gè)按鍵都有自己所對應(yīng)的功能,需要用編程來實(shí)現(xiàn),而后利用按鍵來調(diào)用這個(gè)函數(shù)功能。

2 功能需求

通信軟件,根據(jù)選擇完善的設(shè)備,適合的操作系統(tǒng)以及穩(wěn)定的運(yùn)行性能,這樣能節(jié)約資源和縮短時(shí)間。硬件環(huán)境:微軟操作系統(tǒng) PC 機(jī);1G 以上內(nèi)存;2.0GHz CPU 頻率以上;具備聲卡和麥克。軟件環(huán)境:安裝VC++6.0。

主要實(shí)現(xiàn)局域網(wǎng)內(nèi)2 個(gè)點(diǎn)對點(diǎn)用戶互相傳遞語音信息的功能。輸入IP 地址點(diǎn)擊確認(rèn)發(fā)起通話,實(shí)現(xiàn)端對端通信。對方可以拒絕通話或接受對方的通話請求。按退出鍵可以斷開連接,結(jié)束語音通話。簡單的系統(tǒng)流程圖如圖1 所示。

圖1 系統(tǒng)流程圖

這里主要的協(xié)議采用了TCP/IP 協(xié)議、UDP 協(xié)議,TCP/IP 協(xié)議是面向連接、帶心跳監(jiān)測機(jī)制的協(xié)議,UDP協(xié)議是面向無連接低可靠、高傳輸?shù)膮f(xié)議。Window-Socket 是微軟和其他公司一起創(chuàng)建的用于網(wǎng)絡(luò)接口的編程語言,并詳細(xì)介紹了其中的流程。

3 總體設(shè)計(jì)

信息產(chǎn)業(yè)的高速發(fā)展,IP 語音技術(shù)帶給人們?nèi)碌男畔⒒?集合語音、視頻、數(shù)據(jù)傳輸為一體的主流通信技術(shù)成為主要實(shí)現(xiàn)局域網(wǎng)內(nèi)端對端用戶之間的信息交互過程,不同模塊負(fù)責(zé)不同的功能,最后不同模塊相互連接,實(shí)現(xiàn)語音通信。軟件的總體過程包含語音采集,ACM 的壓縮,網(wǎng)絡(luò)的傳輸,語音的解壓,語音的播放。語音通信的結(jié)構(gòu)圖如圖2 所示。

圖2 語音通信結(jié)構(gòu)圖

該軟件的功能是語音傳輸,主要過程是語音采集,ACM 壓縮,網(wǎng)絡(luò)傳輸,語音解壓,語音播放。通過話筒將語音轉(zhuǎn)化成數(shù)字信號,然后進(jìn)行壓縮,壓縮完放回內(nèi)存中,通過網(wǎng)絡(luò)這個(gè)媒介傳輸給對方,對方接到后再利用CPU 進(jìn)行解壓,將數(shù)字信號轉(zhuǎn)換成模擬信號,放入內(nèi)存后,利用音響等設(shè)備進(jìn)行回放。

3.1 語音連接模塊

語音連接指的是客戶端向服務(wù)器發(fā)出一個(gè)語音連接請求,服務(wù)器做出合理的回應(yīng),服務(wù)器做出的方式有無響應(yīng),接受通話,拒絕通話,退出語音通話。

(1)IP 地址輸入設(shè)計(jì)

該功能主要用于填寫目的主機(jī)的IP 地址,實(shí)現(xiàn)訪問對象。當(dāng)啟動軟件時(shí),本地IP 地址可以自動獲取并顯示在軟件界面上。IP 地址主要采用IPV4 例如:192.168.1.1。

(2)連接按鍵設(shè)計(jì)

本地IP 自動獲取,當(dāng)將對方的IP 地址填入相應(yīng)的IP 地址欄里,只需要點(diǎn)擊連接按鍵,就可以向目的主機(jī)發(fā)起TCP 連接請求。當(dāng)沒有填寫目的主機(jī)的IP 地址時(shí),點(diǎn)擊連接按鈕,本地IP 地址會以廣播的形式顯示在軟件界面上,提示要輸入對方的IP 地址。

(3)接受通話按鍵設(shè)計(jì)

建立起TCP 連接要執(zhí)行一個(gè)合理的操作,而接受通話按鍵點(diǎn)擊后,就可以實(shí)現(xiàn)與對方通話。前提是系統(tǒng)都有聲卡和麥克而且必須是完好的、可用的。

(4)拒絕通話按鍵設(shè)計(jì)

軟件也要考慮實(shí)用性方面的問題。如果對方現(xiàn)在很忙或者有急事,不能強(qiáng)制要求對方來接受語音通信,這個(gè)時(shí)候?qū)Ψ骄涂梢渣c(diǎn)擊拒絕通話來解除語音通話的發(fā)起,同時(shí)也能回復(fù)給發(fā)送端信息,現(xiàn)在無法接受通話,避免發(fā)起端等待。

(5)退出按鍵設(shè)計(jì)

一個(gè)比較完善的軟件需要具備退出功能,當(dāng)不想使用此軟件時(shí),點(diǎn)擊退出按鍵關(guān)閉程序。

3.2 語音信息采集模塊

語音采集技術(shù)是將各種應(yīng)用系統(tǒng)所需的各種語音信號進(jìn)行直接采集、處理存放在EPROM 芯片中,當(dāng)系統(tǒng)運(yùn)行的時(shí)候,便可以根據(jù)需要,隨時(shí)用于識別和組合。主要有 lpData、dwBufferLength、dwBytesRecorded 等成員,其中l(wèi)pData 是最重要的組成也是最經(jīng)常用到的。

(1)錄音設(shè)計(jì)

WaveInAddBuffeer 函數(shù)是將三塊內(nèi)存添加到錄音設(shè)備上,當(dāng)數(shù)據(jù)占滿三塊內(nèi)存時(shí)發(fā)送數(shù)據(jù)已滿的信息,WaveInAddBuffeer 又重新將緩沖區(qū)添加上來,這樣三塊內(nèi)存就能達(dá)到循環(huán)使用,而可以做到循環(huán)錄音這個(gè)效果。錄音的質(zhì)量與環(huán)境、設(shè)備等因素有關(guān),主要是體現(xiàn)在內(nèi)存和麥克音量大小,內(nèi)存越大,音量越大,錄音的質(zhì)量也就越好,所以一般把音量調(diào)到最大后開始錄音。

(2)回放設(shè)計(jì)

回放時(shí)將音頻設(shè)備打開并調(diào)節(jié)合適,使用Wave-OutAddBuffee 函數(shù)將數(shù)據(jù)放入緩存區(qū),達(dá)到播放的效果。

3.3 語音壓縮編碼

數(shù)字信號具有儲存空間小,傳輸比特率低,節(jié)約帶寬等特點(diǎn),而語音編碼就是對模擬的語音信號進(jìn)行編碼,將模擬信號轉(zhuǎn)化成數(shù)字信號,從而降低傳輸碼率并進(jìn)行數(shù)字傳輸,數(shù)字化之后的語音信號需要語音壓縮編碼。語音編碼的基本方法可分為波形編碼、參量編碼和混合編碼。波形編碼是對語音時(shí)域或頻域波形進(jìn)行編碼,方法簡單,失真最小,但編碼碼率較高,壓縮比不大。參數(shù)編碼的基礎(chǔ)是利用人類語音的生成模型,大大降低了系統(tǒng)的碼率,缺點(diǎn)在于音質(zhì)較差,復(fù)雜度高。混合編碼是波形編碼和參數(shù)編碼的結(jié)合,吸收了波形編碼和參數(shù)編碼的優(yōu)點(diǎn),在較低的比特率上取得較高的語音質(zhì)量,是最常用和最推崇的技術(shù)。

壓縮編碼技術(shù)有很多,此次軟件開發(fā)主要應(yīng)用到ACM 音頻壓縮接口的編程方法,使用的編程工具為Microsoft Visual C++。應(yīng)用程序可以通過ACM 提供的編程接口調(diào)用這些系統(tǒng)中現(xiàn)成的編解碼器來實(shí)現(xiàn)音頻的壓縮和解壓縮。

(1)ACM 壓縮原理

壓縮音頻數(shù)據(jù)主要原理是降低存儲某一聲音序列所需的數(shù)據(jù)量。少的數(shù)據(jù)量所占有的空間少,能夠以更快的速度通過MODEM 在網(wǎng)絡(luò)上傳遞。如果數(shù)據(jù)以Windows系統(tǒng)所支持的某種通用格式壓縮的話,就可不經(jīng)手工解壓縮而直接播放,系統(tǒng)將使用自己的CODECs 解壓縮數(shù)據(jù)并播放。CODEC 支持從源音頻格式到目標(biāo)格式的轉(zhuǎn)換,轉(zhuǎn)換時(shí)要采取兩步轉(zhuǎn)換法,即先將源格式轉(zhuǎn)換成一種中間格式,再將中間格式轉(zhuǎn)換成目標(biāo)格式。

(2)ACM 程序設(shè)計(jì)

ACM 的API 函數(shù)定義在頭文件msacm.h 中,除了在工程中加入對此頭文件的引用之外,對ACM 編程還必須包含頭文件mmsystem.h 和mmreg.h,這兩個(gè)頭文件定義了多媒體編程中最基本的常量和數(shù)據(jù)結(jié)構(gòu)。

壓縮和解壓縮一樣,都是將音頻信號從一種音頻格式轉(zhuǎn)換成另一種格式。計(jì)算壓縮后音頻數(shù)據(jù)大小,并以此適當(dāng)增加輸出緩沖區(qū)的大小。音頻數(shù)據(jù)真正的壓縮過程是由函數(shù)acmStreamConvert()完成的,在調(diào)用函數(shù)acm-StreamConvert()時(shí)可以指定回調(diào)函數(shù),以便在轉(zhuǎn)換過程中顯示進(jìn)度信息等。

3.4 數(shù)據(jù)傳輸模塊

語音在進(jìn)行壓縮編碼后不一定完全傳輸,有可能數(shù)據(jù)源超過內(nèi)存容量,這時(shí)需要等待音頻再生模塊之后釋放內(nèi)存,保存和再傳輸。

4 軟件測試

4.1 測試環(huán)境

語音通信軟件,需要2 臺PC 機(jī)處于同一個(gè)局域網(wǎng)并且能夠通信,也可以使用交叉線使2 臺PC 直連,另外需要麥克和外置音頻。

4.2 測試過程

測試內(nèi)容分為幾個(gè)步驟:(1)自動獲取IP 地址,當(dāng)運(yùn)行此軟件時(shí)系統(tǒng)自動獲取到本機(jī)的IP 地址。(2)連接功能模塊,當(dāng)填入目的主機(jī)IP 地址,點(diǎn)擊連接按鈕時(shí),本地IP 地址會變成目的IP 地址。如果成功連接,連接按鈕、通話按鈕會成灰色,只有退出鍵成正常的黑色。(3)通話功能,當(dāng)目的主機(jī)收到通話請求時(shí),點(diǎn)擊通話按鍵便可正常通話。(4)拒絕功能,當(dāng)目的主機(jī)收到通話請求可以執(zhí)行斷開操作。(5)退出功能,當(dāng)不想進(jìn)行通話時(shí)可以點(diǎn)擊退出,退出軟件。

5 結(jié)束語

語音通信軟件主要利用WinSocket 技術(shù)進(jìn)行設(shè)計(jì),根據(jù)相關(guān)編碼對語音進(jìn)行采集、抽樣、編碼成數(shù)字信號,能夠?qū)ι傻臄?shù)字信號進(jìn)行網(wǎng)絡(luò)傳輸。以TCP/IP 協(xié)議進(jìn)行傳輸,基于經(jīng)典的C/S 構(gòu)架,在Windows 平臺下利用Microsoft Visual C++開發(fā)環(huán)境下的網(wǎng)絡(luò)編程。系統(tǒng)性能要求具有較高實(shí)時(shí)性和穩(wěn)定性,得到了實(shí)現(xiàn)。軟件能夠進(jìn)行語音回放、壓縮,建立起語音通話功能。開發(fā)出來的軟件能夠在Windows 平臺下不同主機(jī)進(jìn)行語言通信,并且通信的延遲能限制在一定范圍內(nèi)。

軟件經(jīng)過測試,畫面干凈、明了,功能達(dá)到了預(yù)期所要的結(jié)果,語音通信連接的發(fā)起迅速,穩(wěn)定。軟件語音通話質(zhì)量有待提高,通話過程中會夾雜些雜音,說話時(shí)的聲音并沒有想象中的清晰,而且在不穩(wěn)定的網(wǎng)絡(luò)環(huán)境下可能會導(dǎo)致語音通話斷線。其次是缺少一些輔助功能的實(shí)現(xiàn),可以向著視頻語音開發(fā)。增加一些音量調(diào)節(jié)按鈕,錄音、拍照、通訊錄等功能。

主站蜘蛛池模板: 狠狠干综合| 久久国产精品无码hdav| 国产乱视频网站| 91小视频版在线观看www| 99视频在线免费| 精品久久综合1区2区3区激情| 日韩小视频网站hq| 亚洲a级毛片| 亚洲天堂视频在线观看| 欧美精品啪啪| 国产成人精品在线1区| 伊人91在线| 亚洲人成网18禁| 曰AV在线无码| 91尤物国产尤物福利在线| 992Tv视频国产精品| 免费看美女毛片| 日本亚洲成高清一区二区三区| 欧美成人日韩| 福利视频99| 狠狠做深爱婷婷久久一区| 国产精品.com| 亚洲视频免费在线看| 国产精品高清国产三级囯产AV| 国产亚洲一区二区三区在线| 亚洲综合久久成人AV| 日本少妇又色又爽又高潮| 日韩一级毛一欧美一国产| 久久这里只精品热免费99| 国产欧美日韩另类精彩视频| 五月婷婷综合色| 香蕉网久久| 99久久精品无码专区免费| 91 九色视频丝袜| 亚洲国产成人久久精品软件| 国产精品美女自慰喷水| 免费高清毛片| 欧美亚洲日韩中文| 永久免费无码日韩视频| 91福利国产成人精品导航| 东京热av无码电影一区二区| 国产乱子伦精品视频| 亚洲欧美日韩另类在线一| 国外欧美一区另类中文字幕| 久久精品aⅴ无码中文字幕| 2022国产91精品久久久久久| 一级香蕉视频在线观看| www.91在线播放| 91久草视频| 精品国产乱码久久久久久一区二区| 中文字幕丝袜一区二区| 欧美 亚洲 日韩 国产| 国产小视频a在线观看| 日韩高清欧美| 成人精品午夜福利在线播放| 亚洲欧美成aⅴ人在线观看 | 18禁黄无遮挡网站| 2021国产精品自产拍在线| 久青草国产高清在线视频| 午夜国产在线观看| 91人妻日韩人妻无码专区精品| 精品国产aⅴ一区二区三区| 亚洲精品第一页不卡| 日韩少妇激情一区二区| 毛片在线看网站| 久久精品日日躁夜夜躁欧美| 午夜久久影院| 天天干天天色综合网| 2020精品极品国产色在线观看 | 五月综合色婷婷| 手机精品福利在线观看| 欧美色综合网站| 性视频久久| 日日拍夜夜操| 久久96热在精品国产高清| 精品黑人一区二区三区| 亚洲一区二区三区麻豆| 亚洲欧洲国产成人综合不卡| 亚洲成在人线av品善网好看| 成人福利免费在线观看| 国产小视频a在线观看| 91香蕉国产亚洲一二三区|