
音频编程
玄岳
这个作者很懒,什么都没留下…
展开
-
实时在线音频延时的处理(借用speex)
实际项目中出现实时在线音频播放会有累加延时的问题,越久延时越长。经过各方面检查发现是设备发送音频数据频率不稳定产生的:比如本来应该是每秒5包音频包的数据过来的,但是某一秒设备没把数据及时发过来,造成这一秒内没数据播放,但是下秒又多了数据,但是播放速度是固定的,所以相当于延时了一秒,这种情况出现多了延时就会变长。后来分析了下网络出现这种情况比较常见,特别这个项目是用3G网络可能性还是蛮大原创 2016-01-19 21:01:41 · 2890 阅读 · 0 评论 -
利用waveIn完成简单录音(录成wav)
设置采集音频格式 WAVEFORMATEX waveform; //采集音频的格式,结构体 waveform.wFormatTag = WAVE_FORMAT_PCM;//声音格式为PCM waveform.nSamplesPerSec = 8000;//采样率,16000次/秒 waveform.wBitsPerSample = 16;//采样比特,16原创 2016-01-21 20:56:33 · 9549 阅读 · 3 评论 -
speex前置处理
1.简介语音在采集和传输过程中,由于语音源的差异、信道的衰减、噪声的干扰以及远近效应,导致信号幅度相差很大。所有在语音处理之前我们需要对语音数据进行前置处理,包括预处理(AGC、VAD、回音消除)、重采样和噪声抑制。所有的代码都是基于speex开源库,具体内容可以参考http://speex.org/。2.接口说明预处理模块包括自动增益控制、静音转载 2016-01-15 14:05:47 · 2185 阅读 · 0 评论 -
AMR音频结构
编码方式AMR有多种编码方式,每种编码方式的采样频率不同: 规格比特率(kbps)音频帧大小(字节)帧头(字节)FT0AMR 4.75 1304 0000010000001AMR 5.15转载 2016-02-18 18:41:54 · 785 阅读 · 0 评论 -
AMR解码编程(C++直接用opencore-amr-0.1.3库)
先定义每种帧的大小数组const int sizes[] = { 12, 13, 15, 17, 19, 20, 26, 31, 5, 6, 5, 5, 0, 0, 0, 0 };初始化解码器void *m_pAmr = Decoder_Interface_init();判断文件头,去掉文件头,读取第一个帧头,以第一个帧头为标准,后面用于判断坏帧if原创 2016-02-18 19:04:06 · 2062 阅读 · 0 评论 -
qt creator编译opus库
把下载来的Opus源代码全都加入到项目中除了arm、tests及mips目录然后在.pro文件里加入INCLUDEPATH += include celt silk silk/float silk/fixed .DEFINES += HAVE_CONFIG_HQMAKE_CFLAGS_RELEASE = -O2 -fvisibility=hidden -W -Wall原创 2016-05-12 17:05:08 · 1155 阅读 · 1 评论 -
OGG音频格式分析
一. OGG音频格式概述Ogg是一个自由且开放标准的容器格式,由Xiph.Org基金会所维护。Ogg格式并不受到软件专利的限制,并设计用于有效率地流媒体和处理高品质的数字多媒体。“Ogg”意指一种文件格式,可以纳入各式各样自由和开放源代码的编解码器,包含音效、视频、文字(像字幕)与元数据的处理。在Ogg的多媒体框架下,Theora提供有损的图像层面,而通常用音乐导向的Vorbi转载 2016-05-17 20:48:26 · 12013 阅读 · 0 评论 -
opus编译库到arm上面用
一、可以到https://opus-codec.org/下载源码进入到目录% ./configure CFLAGS="-Os" --enable-fixed-point --enable-intrinsics --host=arm-linux// configure后面的参数是指定优化选项,和编译器% make% sudo make install二、可以用git下载源码%原创 2016-05-12 15:12:12 · 4556 阅读 · 4 评论