HawkVoice直接接口(HVDI)的Python绑定-跨平台网络语音库

PyHVD的Python项目详细描述


HawkVoice直接接口(HVDI)的Python绑定(由Dalen Bernaca提供)-Phil Frisbie提供的跨平台网络语音库。

此软件包允许您访问hawkvoicedi和implements的低级功能 一些,更Python,更高层次,类和函数,使音频编码/解码尽可能容易。

库支持以下压缩音频编解码器:
低压断路器, LPC10, 塞尔普, 全球通, ADPCM公司, 以及U形定律。

编码器返回准备好进行udp传输的数据包(包括加密和签名)。 解码器接收数据包,甚至为您跟踪正确的序列顺序。

输入数据是8000赫兹采样率、16位、单声道、线性pcm音频字节的字符串。 所需输入音频块的最小长度取决于使用的编解码器。 库为您提供了mixer()类,如有必要,该类可用于缩小数据采样。 它还允许您将音频块混合在一起,对它们执行音频增益控制,无中断的左声道和右声道 一个单独使用的立体声输入和一些更有用的东西。

最简单的用法: >>>>来自HVDI进口HVDI >>>>进口波 >>>; >>>>inwf=wave.open(“输入文件.wav”,“r”) >;gt;>我们需要16位音频: >>>>断言inwf.getSampWidth()==2 >;gt;>获取所有音频数据: >>>>样本=inwf.readframes(inwf.getnframes()) >>>; >>>gt;m=高压直流混频器() 如果文件是立体声的,通过混合左右声道将其转换为单声道: >>>>如果inwf.getnchannels()=2: >>>gt;左,右=m.不可保存(示例) >;gt;gt;如果需要,将采样频率降到8000赫兹: >>>>左=m.重新采样(左,inwf.getFrameRate(),8000) >>>gt;右=m.重新采样(右,inwf.getFrameRate(),8000) >>>>样本=M.混合(左,右) >;gt;gt;其他: >;gt;gt;如果需要,将采样频率降到8000赫兹: >>>gt;示例=m.重新采样(示例,inwf.getFrameRate(),8000) >>>>输入关闭() >>>; >;gt;gt;行使增益控制,只是为了好玩: >>>gt;样本=m.agc(样本,0.85) >>>; >;gt;>;噢,我们可能跳过了上面的无聊内容,并假设wave文件的格式正确! &但现在,让我们重新编码输入文件。 >>>gt;将其编码为GSM并从中解码以听到其声音: &我已经告诉过你这很简单。 >>>>outuf=wave.open(“输出文件.wav”,“w”) >>>>向外设置通道(1) >>>>向外设置采样宽度(2) >>>>超出设定帧率(8000) >>>; >>>>解码( >>>>hvdi.iterencode(示例,“gsm”), >>>gt;超出流=超出流) >>>>向外关闭() >>>gt;

hawkvoicedi已经在以下平台上进行了测试:
win32(9x、me、nt 4.0、2000、xp、ce) Linux(各种风格)。
Pyhvdi准备用于:
Linux和MS Windows目前,
并在以下平台上进行测试:
ubuntu 14.04版, 拉斯宾伸展运动, Windows XP及更高版本 cygwin在windows xp上运行。

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

推荐PyPI第三方库


热门话题
java类。getResource和ClassLoader。getSystemResource:有没有理由选择其中一个而不是另一个?   在Java中以编程方式粘贴后恢复剪贴板   Java字符串到日期没有时间   JavaSpring注释:@Component起作用,@Repository不起作用   java“addScript”在HSQL中是否有最大记录计数?   java如何将值从JDialog框返回到父JFrame?   java我的模块库的用户有没有办法访问尚未导出的类?   java javac:未找到命令   java如何解决jsoup错误:无法找到请求目标的有效证书路径   类中的java作用域变量   Java中集合实现中的arraylist add()方法不起作用   java如何使用while循环和从用户接收输入来近似Pi?   java Spring安全CSRF培训模式   在安卓系统中,如何通过在警报框外单击来限制用户?