MTK 7628 i2s 語音對講系統

2021-10-03 15:01:11 字數 2424 閱讀 1401

簡介

基於7628 路由晶元做實時語音聊天。mtk原廠sdk i2s 驅動有bug。不能同時讀寫。打上patch就好了。並且7628 的cpu效能太差了,不能用speex opus的編碼。 只能用g.711/g.723 。speex的消噪和回聲抑制效果還不錯。能很快收斂。

做了兩個版本的程式,乙個使用portaudio,乙個使用alsa。 7628 效能太低才逼不得以,從portaudio 切換成了直接使用alsa。

回聲抑制,speex需要audacity 慢慢分析,調教。只要調教好,絕對能抑制。

傳輸基於udp**伺服器**。總之很完美。

程式執行

rvoice 1.0.0

usage: rvoice [options]...

-h, --help                   print help and exit

-v, --version                print version and exit

--config=string          config files  (default=`/etc/rvoice.cfg')

--nic=string             eth  (default=`eth0')

--uuid=string            tranport group

--storefile              store file  (default=off)

--devs                   list devices  (default=off)

--complexity=int         complexity(1-10)  (default=`5')

--sample_rate=int        sample rate(8000,12000,16000,24000,48000)

(default=`8000')

--frames_per_buffer=int  frames per buffer(120,240,480,960,1920,2880)

(default=`960')

--buffer_max=int         buffer max count  (default=`10')

--buffer_count=int       buffer count 1s=345  (default=`4')

--buffer_threshold=int   buffer buffer_threshold  (default=`2')

--channels=int           channels  (default=`1')

--inputdevice=string     input device index  (default=`default')

--outputdevice=string    output device index  (default=`default')

--period_size=int        period size  (default=`1024')

--buffer_mul=int         buffer multi  (default=`16')

--code=int               enable code(0: none 1: opus 3: g.723 24kbps 4:

g.721 32kbps 5: g.723 40kbps)  (default=`3')

--aec                    enable aec  (default=on)

--aeclen=int             aec length  (default=`10')

--aecdelay=int           aec delay  (default=`0')

--denoise=int            denoise  (default=`1')

--denoise_value=int      denoise  (default=`-15')

--udpserver=string       udp server addr  (default=`127.0.0.1')

--u***ort=string         udp server port  (default=`10000')

--heartbeat=int          udp heartbeat  (default=`30')

--direct                 udp direct  (default=off)

--isserver               isserver  (default=off)

--daemon                 daemon mode  (default=off)

-d, --debug=int              debug level  (default=`4')

i2s和s2i演算法 sstream用法

標頭檔案 include cout本人實戰常用如下模板 void i2s int num,string str 1.2 string to int 下面的例子將輸入到str中的字元通過string stream型別的變數ss轉換為int型別的變數,輸入到num中 stringstream ss st...

I2S音訊匯流排學習(二)I2S匯流排協議

音響資料的採集 處理和傳輸是多 技術的重要組成部分。眾多的數字音訊系統已經進入消費市場,例如數字音訊錄音帶 數字聲音處理器。對於裝置和生產廠家來說,標準化的資訊傳輸結構可以提高系統的適應性。i2s inter ic sound 匯流排是飛利浦公司為數字音訊裝置之間的音訊資料傳輸而制定的一種匯流排標準...

I2S匯流排協議

音響資料的採集 處理和傳輸是多 技術的重要組成部分。眾多的數字音訊系統已經進入消費市場,例如數字音訊錄音帶 數字聲音處理器。對於裝置和生產廠家來說,標準化的資訊傳輸結構可以提高系統的適應性。i2s inter ic sound 匯流排是飛利浦公司為數字音訊裝置之間的音訊資料傳輸而制定的一種匯流排標準...