今天说说Speex。 Speex是一种音频编码格式,并专门针对语音进行优化。它支持窄带(8KHz)及宽带(16kHz)的编码,支持可变比特率(VBR)以及丢包补偿等,因此非常适合VoIP应用。...参见:http://en.wikipedia.org/wiki/Speex 不过,维基百科也指出:由于有了更好的编码OPUS出现,Speex应该淘汰了——“Xiph.Org now considers...但无论如何,FreeSWITCH支持很多音频编码,自然也支持Speex。...FreeSWITCH对speex编码的支持是在mod_speex中实现的,但是,从今天起,它被挪到核心中去了,参见:http://fisheye.freeswitch.org/changelog/freeswitch.git...代码提交说明是“move speex codec into the core since it already has speed anyway”,不过我尚不知具体原因。
speex库中音频降噪效果不错,应该是应用最广泛的吧,speex库下载地址https://www.speex.org/downloads/,可以直接下载二进制代码使用,像配置OpenCV一样配置speex.../speex_preprocess.h> #include #define HEADLEN 44 #define SAMPLE_RATE (48000) #define...i; i = 0; speex_preprocess_ctl(state, SPEEX_PREPROCESS_SET_AGC, &i); i = 80000; speex_preprocess_ctl...(state, SPEEX_PREPROCESS_SET_AGC_LEVEL, &i); i = 0; speex_preprocess_ctl(state, SPEEX_PREPROCESS_SET_DEREVERB..., &vad); speex_preprocess_ctl(state, SPEEX_PREPROCESS_SET_PROB_START, &vadProbStart); speex_preprocess_ctl
而Speex提供了声学回声消除算法库,本文就简单用Speex对一段录音进行回声消除,当然这不是实时处理的。...Speex中回声消除API封装在语音处理API中,在最新版本的Speex中将语音处理相关的API独立封装成libspeexdsp。...原文参见http://www.360doc.com/content/11/1008/18/11192_154383516.shtml,原文所用speex版本是1.1.9,我们用的是speex-1.2beta3...1、speexEC.h #ifndef SPEEX_EC_H #define SPEEX_EC_H #include #include /*在项目属性里设置VC++...目录的包含目录和库目录分别为speex库中的include和lib,我用的是speex-1.2beta3-win32*/ #include #include
使用方便,下面见解析 低内存占用,提供捞底回收 多接口延伸,例如结果文件路径的返回,和文件的大小 基于 Speex jni 库,高效,自定义语音文件格式 解析 实例: private VoiceRecorderHelper...单位分贝 */ } } ); } 技术点 (可以不看) jni层:编译好 Speex.so
完成上述配置之后,正式开始在Android中使用Speex进行音频编解码。主要包括以下步骤: 1、下载Speex源码(https://speex.org/downloads/)。...推荐使用Speex 1.2.0稳定版,由于目前Speex 已不再继续维护,官方建议使用Opus。但在某些场合,使用Speex已然足够满足需求。 ?...在jni中speex源码目录下的include/speex文件夹下,有一个speex_config_types.h.in文件,在include/speex目录下创建speex_config_types.h...speex <= nb_celp.c [armeabi] Compile thumb : speex <= quant_lsp.c [armeabi] Compile thumb : speex <...[armeabi] Compile thumb : speex <= speex_header.c [armeabi] Compile thumb : speex <= speex.c [armeabi
引入头文件 #ifdef USE_SPEEX #include #endif #ifdef USE_AAC #include "aacDecoder/include/neaacdec.h...audioOutput = (i16 *)malloc(640); auto mode = speex_lib_get_mode(SPEEX_MODEID_WB); speexState...= speex_decoder_init(mode); speex_bits_init(&speexBits); #endif #ifdef USE_AAC faacHandle =...{ speex_bits_read_from(&speexBits, (const char *)input, 52); speex_decode_int(speexState...释放资源 #ifdef USE_AAC faacDecClose(faacHandle); #endif #ifdef USE_SPEEX speex_decoder_destroy(speexState
编码流程 使用Speex的API函数对音频数据进行压缩编码要经过如下步骤: 定义一个SpeexBits类型变量bits和一个Speex编码器的内存指针变量enc。...调用speex_bits_init(&bits)函数初始化bits。 调用enc = speex_encoder_init(&speex_nb_mode)函数初始化enc。...其中speex_nb_mode是SpeexMode类型的变量,表示的是窄带模式。还有speex_wb_mode表示宽带模式、speex_uwb_mode表示超宽带模式。...表示要定义的参数类型,如SPEEX_GET_FRAME_SIZE表示设置帧大小,SPEEX_SET_QUALITY表示编码的质量等级;参数ptr表示要设定的值。...调用speex_bits_init(&bits) 函数初始化bits。 调用dec = speex_decoder_init(&speex_nb_mode) 函数初始化dec。
可选格式 ios android做音频相关的开发时可选用的格式有 mp3,speex,aac,amr,ilbc 已知应用 amr:微信 evemote speex:米聊 文件格式大小 mp3>aac>...amr/ilbc>speex 各个格式简介 amr:生成格式相对较小,Android原生支持,ios可用第三方库进行编码解码 speex:生成文件最小,Android、ios均需要用第三方库进行编码解码...文件小 ilbc:生成文件较小,ios 4.3以上支持,Android早期不支持可用第三方库 mp3:相比文件最大,比较流行的格式 个人推荐 相比下来,我还是比较推荐用amr格式,网上的教程多,又不像speex
101. c=IN IP4 192.168.3.119. b=TIAS:96000. a=rtcp:4007 IN IP4 192.168.3.119. a=sendrecv. a=rtpmap:103 speex.../16000. a=rtpmap:102 speex/8000. a=rtpmap:104 speex/32000. a=rtpmap:125 opus/48000/2. a=fmtp:125 useinbandfec...8 9 101 c=IN IP4 27.194.24.94 b=TIAS:96000 a=rtcp:4007 IN IP4 192.168.3.119 a=sendrecv a=rtpmap:103 speex.../16000 a=rtpmap:102 speex/8000 a=rtpmap:104 speex/32000 a=rtpmap:125 opus/48000/2 a=fmtp:125 useinbandfec
int width, int height); /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB...timestamp,ByteBuffer parameter_info, int parameter_info_size); /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB
设置SPEEX音频编码质量,一般设置到8即可。.../** * Set speex encoder quality(设置speex编码质量) * * @param quality: range with (0, 10),..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB,..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB,..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB
int width, int height); /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB...long timestamp,ByteBuffer parameter_info, int parameter_info_size); /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB
而新版API加强了长版音频档的转录精准度,也新增支持WAV、Opus和Speex文件格式,且Google也宣称,新版语音识别API比旧版的批处理速度快3倍。 ?...而新版API加强了长版音频档的转录精准度,也新增支持WAV、Opus和Speex文件格式,且Google也宣称,新版语音识别API比旧版的批处理速度快3倍。...在正式版的云端语音识别API,Google加强了长度较长的音频档案转录精准度,以及新增支持WAV、Opus和Speex文件格式。Google也声称,新版语音识别API比旧版的批处理速度快3倍。
PWD/install --disable-libwebrtc --disable-libyuv --disable-v4l2 --disable-opencore-amrnb --disable-speex-codec...--disable-speex-aec --with-openh264=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1...PWD/install --enable-libwebrtc --disable-libyuv --disable-v4l2 --disable-opencore-amrnb --disable-speex-codec...--disable-speex-aec --with-openh264=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1
byte[] pps, int pps_len, int width, int height); /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX...NT_MEDIA_CODEC_ID_AUDIO_BASE, * NT_MEDIA_CODEC_ID_PCMU, * NT_MEDIA_CODEC_ID_AAC, * NT_MEDIA_CODEC_ID_SPEEX..., * NT_MEDIA_CODEC_ID_SPEEX_NB, * NT_MEDIA_CODEC_ID_SPEEX_WB, * NT_MEDIA_CODEC_ID_SPEEX_UWB
PWD/install --disable-libwebrtc --disable-libyuv --disable-v4l2 --disable-opencore-amrnb --disable-speex-codec...--disable-speex-aec --with-openh264=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1...PWD/install --enable-libwebrtc --disable-libyuv --disable-v4l2 --disable-opencore-amrnb --disable-speex-codec...--disable-speex-aec --with-openh264=/home/lyz/work/broadcast_app/app/thirds_libs_src/pjproject-2.12.1... --disable-speex-aec --with-openh264=/home/app/thirds_libs_src/pjproject-2.12.1/third_party/openh264
.264/H.265编码(Android H.265硬编码),iOS平台支持H.264编码; [音频格式]Windows/Android/iOS平台支持AAC编码,Windows/Android平台支持Speex...编码; [音频编码]Windows/Android平台支持Speex推送、Speex编码质量设置; [音量调节]Windows/Android平台采集端支持实时音量调节(其中,Windows平台混音模式下支持单独控制麦克风...外部编码前视频数据对接]支持YUV数据对接; [外部编码前音频数据对接]支持PCM对接; [外部编码后视频数据对接]支持外部H.264数据对接; [外部编码后音频数据对接]外部AAC/PCMA/PCMU/SPEEX
: /** * Set audio encoder type(设置音频编码类型) * * @param type: if with 1:AAC, if with 2: SPEEX...per_channel_sample_number, int is_low_latency);如何是编码后的audio数据,可以用以下接口投递: /** * 设置音频数据(AAC/PCMA/PCMU/SPEEX...NT_MEDIA_CODEC_ID_AUDIO_BASE, *NT_MEDIA_CODEC_ID_PCMU, *NT_MEDIA_CODEC_ID_AAC, *NT_MEDIA_CODEC_ID_SPEEX..., *NT_MEDIA_CODEC_ID_SPEEX_NB, *NT_MEDIA_CODEC_ID_SPEEX_WB, *NT_MEDIA_CODEC_ID_SPEEX_UWB,
with-libvpx --with-opencore-amr --with-openjpeg --with-opus --with-rtmpdump --with-schroedinger --with-speex...with-opencore-amr --with-openjpeg --with-openssl --with-opus --with-rtmpdump --with-schroedinger --with-speex
领取专属 10元无门槛券
手把手带您无忧上云