关于语音的网络传输问题和albview实现
我现在是采用的datasocket完成了语音的同步传输和播放,但发现即使使用声卡的最高采样率,同样有延迟现象.不知道如何用TCP处理(一般情况下语音可以采用UDP传输,比如QQ),可能我做的TCP有问题,静态测试可以传送数组,动态采集的时候(通过MIC输入的时候)就不可正确接收了!我觉得问题是发送的数据量比较大的缘故.
那么如何采用什么样的算法能解决大数据量的高速传输,和压缩算法?保证实时性?消除回音(现在没有出现回音,以前做的时候出现过)? 帮Wdyjz顶上去
回复 #1 wdyjz 的帖子
用UDP,设置适当的缓冲区大小和传输质量,有必要的话做一下压缩,我做过一个人讲多个人听的组播,效果还不错,网络性能对效果有决定性影响。 理论上TCP/UDP/datasocket/shared variable都可以,我用TCP和DS在本机测试了,用最高的采样和16位精度,还有延迟.自己说话,从耳机中出来就不同步.压缩算法据说小波也可以(一个信号处理的教授说的),还没有研究这!
我的一个同学采用direct com技术做过,现在正在查文章研究中..... 1)你试试把语音采样率调为最低,8000就可以了,语音质量也调为mono,缓冲可调,100最快,基本同步,但可能会溢出;这些参数自己调一下,网络传输的时候使用UDP。UDP对一个包只验证5次,而TCP多达32次。语音适合使用UDP传输,没听清就再说一遍,:lol
2)我说的压缩特指语音专用压缩,如VOIP或非线性滤波等,当然很多算法都是在小波上发展出来的。 UDP感觉通信不好,用于文字还发送还可以,
对了,你用的是LV7吗?8.0以上就不可以调语音缓冲了哦 UDP适合语音和图像的传输,为了保证速度,允许丢失啊;
我原来用的是lv 7,现在用8.2,还没有仔细看过,不过原来7的程序还是可以在8下用的。只是8下好像少了原来的那些函数了。虽然8.2还存在其他一大堆bug,但在内存管理方面比之前版本的确大大加强了。所以还是选择用8。 直接采用DS,采样率设置高点,time delay小.
QQ上面用的算法是从国外一家公司直接购买的,可以消除回声,自适应带宽.
主要time delay 应该不是网络传输的问题,因为不用网络,直接采用同步的输入和输出,同样会有延迟.应该是声卡的质量问题了.
至于数据压缩和音\视频传输也不是我几天就可以搞定的,何况数学和信号处理的知识不行,需要恶补了.
这个问题留待感兴趣的朋友们一起努力解决了. 谢谢朋友们的关注和思考.
Labview 做语音网络传输
你所说的问题主要是语音压缩编码的问题,通过语音编码算法如G.729 或iLBC等可以将语音速率降到很低,关于回声和延迟也有相应的算法,如果你需要,我们可以一起研究。我主要是做语音编码的,我希望将其应用起来,但是用Labview 做语音网络传输出现了很多问题没有解决,希望你能给予指点。
页:
[1]