speexdsp库的python绑定

speexdsp的Python项目详细描述


python的speexdsp

Build Status

要求

  • 开关量
  • 编译工具链
  • Python
  • libspeexdsp开发

构建

有两种方法可以构建包。

  1. 使用setup.py

    sudo apt install libspeexdsp-dev
    git clone https://github.com/xiongyihui/speexdsp-python.git
    cd speexdsp-python
    python setup.py install
    
  2. 使用makefile

    git clone https://github.com/xiongyihui/speexdsp-python.git
    cd speexdsp-python/src
    make
    

开始

"""Acoustic Echo Cancellation for wav files."""importwaveimportsysfromspeexdspimportEchoCancelleriflen(sys.argv)<4:print('Usage: {} near.wav far.wav out.wav'.format(sys.argv[0]))sys.exit(1)frame_size=256near=wave.open(sys.argv[1],'rb')far=wave.open(sys.argv[2],'rb')ifnear.getnchannels()>1orfar.getnchannels()>1:print('Only support mono channel')sys.exit(2)out=wave.open(sys.argv[3],'wb')out.setnchannels(near.getnchannels())out.setsampwidth(near.getsampwidth())out.setframerate(near.getframerate())print('near - rate: {}, channels: {}, length: {}'.format(near.getframerate(),near.getnchannels(),near.getnframes()/near.getframerate()))print('far - rate: {}, channels: {}'.format(far.getframerate(),far.getnchannels()))echo_canceller=EchoCanceller.create(frame_size,2048,near.getframerate())in_data_len=frame_sizein_data_bytes=frame_size*2out_data_len=frame_sizeout_data_bytes=frame_size*2whileTrue:in_data=near.readframes(in_data_len)out_data=far.readframes(out_data_len)iflen(in_data)!=in_data_bytesorlen(out_data)!=out_data_bytes:breakin_data=echo_canceller.process(in_data,out_data)out.writeframes(in_data)near.close()far.close()out.close()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java当我点击MainActivity中的按钮以显示其他活动时,它不起作用   java游戏!框架:在请求之间获取控制器的组件/字段/对象   JavaBlackBerry:调用计算器并检索值?   java Struts2 jQuery插件提交按钮   java无法将更新的画布绘制到活动   java如何将Gson值放入HashMap   使用截取时出现java错误:RecyclerView:未连接适配器;跳过布局   java组织。冬眠HibernateException:在Hibernate搜索中编制索引时出错(在事务完成之前)   java Swagger服务器存根生成工作流   java JInternalFrame底部阴影问题   java nio缓冲区类中limit()的用法是什么   java水平回收器视图内部选项卡布局   java Maven无法找到依赖项   java如何管理不同应用程序实例的权限文件?