speex
import subprocess
# 定义FFmpeg命令
ffmpeg_command = [
'ffmpeg',
#'-f', 'dshow',
'-i', r'd:\tug\iat_mp3_16k.mp3',
'-acodec', 'speex',
'-ar', '16000',
'-ab', '16000',
'-ac', '1',
'output.spx'
]
spxcmd='spxTest -enc 16000 7 1280 D:\\tug\iat_pcm_16k.pcm 1.speex'
#ffmpeg -f dshow -i audio="your_microphone_name" -acodec speex -ar 16000 -ac 1 output.spx
# 执行FFmpeg命令
subprocess.call(spxcmd)
Windows&linux平台speex工具使用文档
Linux平台
- spxTest工具编译:
cd到linux_speex目录下,输入./build.sh命令,生成spxTest
- spxTest工具使用:
cd到linux_speex目录下,输入./spxTest 编解码选项 采样率 编解码等级 一次输入数据大小 输入文件 输出文件
例如:./spxTest -enc 16000 7 1280 1.pcm 1.speex
./spxTest -dec 16000 7 122 1.speex 1.pcm
详细参数参见下表:
Windows平台
- spxTest工具编译:
build spxTest工程,生成spxTest.exe
- spxTest工具使用:
打开dos窗口,切换到windows_speex_tools\spxTest\Release目录下,输入./spxTest 编解码选项 采样率 编解码等级 一次输入数据大小 输入文件 输出文件
例如:.\spxTest.exe -enc 16000 7 1280 1.pcm 1.speex
.\spxTest.exe -dec 16000 7 122 1.speex 1.pcm
详细参数参见下表:
参数 | 参数说明 |
编解码选项 | -enc:编码 -dec:解码 |
采样率 | 16000 8000 |
编码等级 | [0~10] ["speex-wb"] = {11, 16, 21, 26, 33, 43, 53, 61, 71, 87, 107} ["speex"] = {7, 11, 16, 21, 21, 29, 29, 39, 39, 47, 63} |
一次性输入数据大小 | 当在解码时,输入的数据的大小必须为与编码等级对应的数组下标里面的值得倍数7 122 , 122是61的倍数 |
输出文件 | 自定义 |