Celt Codec简单使用方法
CeltCodec目前需要交叉编译器编译后才能正常在WIN平台上运行,我这里使用的是(mingw),编译成功会产生一个libcelt.a,另外需要讲libgcc.a也COPY到项目中才正常使用
g_dwNotifySize = (pwfxInput->nAvgBytesPerSec * 20)/ 1000;等分处理 公式为: AudioLength=samplingrate * 采样时间(20ms) * channl * 2 void TestCeltCodec( short * sAudio) /* sAudio需要编码的数据 */ { //初始化 int err,samplingrate=32000,framesize=640,channl=1; int nEncodingAudioLength; //编码后的音频数据长度 unsigned char cEncodingAudioContainer[960]; //编码后的音频数据 //初始化CELT模型 CELTMode * mode=celt_mode_create(samplingrate,framesize,&err); CELTEncoder * enc_state=celt_encoder_create(mode, channl, &err); CELTDecoder * dec_state=celt_decoder_create(mode, channl, &err); //开始编码 nEncodingAudioLength=celt_encode(enc_state,(celt_int16 *)sAudio,framesize,cEncodingAudioContainer,framesize); //分配内存 celt_int16 * out=(celt_int16*) malloc (framesize*channl* sizeof (celt_int16)); //开始解码 celt_decode(dec_state,cEncodingAudioContainer,nEncodingAudioLength,out,framesize); //类型转换 short sOutput[FRAME_SIZE]; for ( int i=0;i<framesize;i++) { sOutput[i]=out[i]; } //播放声音 AudioPay(( BYTE *)sAudio,nEncodingAudioLength*2); } |
分类:
C++
标签:
CeltCodec简单使用方法
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 【非技术】说说2024年我都干了些啥