基于Wifi的電子看板語音系統(tǒng)設計實現(xiàn)
2 上位機程序設計
語音傳輸采用單聲道,16位,8 000 Hz采樣頻率,每秒采集數(shù)據(jù)16 k。上位機程序使用delphi編寫,調用windowsAPI-WaveInOpen函數(shù)打開設備。并設置:
調用waveInAddBuffer獲取聲音數(shù)據(jù),得到的聲音數(shù)據(jù)采用自適應差分脈沖編碼調制。該算法中對量化步長的調整使用了簡單的映射方法,對于一個輸入的PCM值X(n),將其與前一時刻的X(n-1)預測值做差值得到d(n),然后根據(jù)當前的量化步長對d(n)進行編碼,再用此sample點的編碼值調整量化步長,同時還要得到當前sample點的預測值供下一sample點編碼使用。通過此算法可將樣點編碼成4bit的碼流,一個符號位和3個幅度位。該算法編解碼簡單只進行相減、查表運算。對CPU要求不高。
壓縮的數(shù)據(jù)通過idudpclient控件傳輸。參考代碼如下:
idudpclient 1.host:=IP
idudoclient 1.port:=PORT
idudoclient 1.SendBuffer
idudpclient控件brodcastenable屬性可以打開廣播。采用廣播方式,所有下位機都可以接收到上位機發(fā)出的數(shù)據(jù)包。
Delphi使用IdUDPServer控件監(jiān)聽端口讀取下位機聲音數(shù)據(jù),解碼調用waveOutOpen(),
waveOutPrepareHeader(),wave()utWrit()播放聲音。程序流程參如圖4所示。本文引用地址:http://www.ex-cimer.com/article/176994.htm
評論