实时语音传输系统总结
来源:互联网 发布:淘宝卖家版下载 编辑:程序博客网 时间:2024/05/18 03:54
语音信号的数值化,采样,量化和编码的过程在Sound Input Configure 、Sound Input Read和Sound Input Clear子vi中完成,需要配置Device ID, 采样格式(采样率、采样通道数、每采样比特数)和每个通道的采样点数,每通道采样点数N是按设置的采样格式每次读取到N个数据点后返回数据,N对应的是发送者采集到一段语音信号后进行发送,N设置太大,接收端将会造成较大时延。
通信整体流程:
使用并行结构,采用队列,将采集到的原始声音波形数据经过采样,将一次采样的N个数据点加上头(8个0)和尾(8个0)转换为16位整形后,转换成一帧bit流数据,然后对帧数据流4096个点向上去整补零,framebitstream=n*4096,即每一帧为N个采样点头尾各加上8个0(16位数据)转换成4096的整数倍个bit(不足补bit 0),每一帧包含有N个采样点的数据信息和一个头一个尾标志。
帧中每4096个bit为一个包,给每个包编号(32bit)后入队列中。
对每个数据包进行调制,调制过程中加上30个保护bit 1,20个同步bit,32个包bit(没有用这个包编号),后面再加上60个pad bit,和Packet Pad,Packet Pad以IQ数据0+0i的形式(用来接收端分包用)。
(30Gud全1)+(20sync)+(32Pkt)+(4128mess)+60padbit +Packet Pad
调制后的IQ数据同样使用队列的形式进行发送。由于发送数据很快,所以出队列必须进行判断,不然设备一直处于等待IQ数据状态,容易超时报错。
接收端
接收端数据采集又使用了经典的重叠分析方法。优点:重叠分析,可以使前后数据连接,尤其是对数据流的处理,解决了将有用数据分割到前后两次分析的问题。
首先初始化一个10倍单次采样数据量的数组,每次循环对oldest的数据替换后移位。
对数据去直流分量,噪声估计,然后根据估计的噪声大小进行分包,输出包数组。
对包数据进行解调,输出每个包的解调bit流(一个二维bit数组,同步bit和同步bit之后的bit),包括同步上的和没同步上的数据都有。同时输出recovered complex waceform(好像只用来画星座图用)。输出的syncfound 后面也没有用(因为这里仅仅是一个参考,后面需要进一步判断)。
总结,发送端通过队列调用了现有的几大模块,接收端在原有的程序基础上修改,加入了语音输出程序块,增加了重叠分析的结构来处理数据流以实现实时传输,对应的加入了去重复的方法。
下一步需要解决的问题:1、程序虽然可用,但是声音流畅度有问题,最后bit数据的输出需要进一步调整后输出。2、分包偶尔有些问题,包长度应该是可以确定在一个范围的,需要研究一下包捕获模块的改进,滑窗内检测能量跳变位置的方法进行包捕获。灵敏度较高的包捕获方法---基于双滑窗的包捕获方法。
2017年1月6日 周五晚 心情--淡淡的忧伤--qw
- 实时语音传输系统总结
- H264实时传输心得总结
- 语音实时传输中的丢包恢复方法(转载)
- 实时Android语音对讲系统架构
- 接呀呀云实时语音SDK总结
- android实时视频传输方案总结
- android实时视频网络传输方案总结
- 网络卫星股市行情实时传输系统 v2.3.25 下载
- android实时视频网络传输方案总结(一共有五套)
- android实时视频网络传输方案总结(一共有五套)
- android实时视频网络传输方案总结(一共有五套)
- 语音传输资料收集
- 网络语音传输
- 语音传输 音频采集
- 语音播报实时天气
- Android实时语音聊天
- 开源:视频语音 实时传输 网络版 支持所有带摄像头的windows 电脑、笔记本、各种外置摄像头
- 网络安全传输系统(7)-总结
- Hadoop新MapReduce框架Yarn详解
- 分布式企业应用系统服务部署和配置
- SSH小框架笔记
- Python第十天
- [51nod1203]JZPLCM
- 实时语音传输系统总结
- JQuery EasyUI入门
- Ubuntu环境编译FFmpeg3.2.2-for-android
- 单点登录SSO的实现原理
- oracle数据库创建序列和触发器实现id自增
- 101个MySQL的调节和优化技巧
- SpringMVC学习笔记
- 自定义分页标签详解
- 异常机制—学习笔记—java中异常处理