本文主要介绍多模交互开发套件中的输入输出语音格式,以及格式不符合要求时的常见问题及解决方法。
音频格式说明
类型 | 可选参数设置 | 语音格式说明 |
语音识别 |
|
注意:opus格式的每一包数据都需要单独ogg封装 |
语音合成 |
|
注意:opus格式的每一包数据都包含单独ogg封装 |
查看语音格式
基本说明
常见语音格式名词说明:
采样率:比如 8000 Hz(8K Hz)、16000 Hz (16K Hz) 代表每秒8000个或16000个采样点。
采样位数:比如 16 bit 代表每个采样点的音频信息用16 bit(2个字节)保存。
声道:有两种声道:Mono单声道、Stereo立体声。
语音时长与文件大小转换:
语音文件Size大小(单位MiB)=(采样率×采样位数×声道数×语音时长(单位s))/(8*1024*1024)
例如:16000(Hz)*16(bit)*1(声道)*60(s)/(8*1024*1024)=1.83 MiB(近似值)
Linux操作系统下查看语音格式
使用如下命令查看
file input.wav
预期结果
16000 Hz采样率、16 bit采样位数、单声道(mono)的无压缩WAV格式如下图所示:
Windows操作系统下查看语音格式
在Windows操作系统中,您可以选中目标语音,单击鼠标右键,选择属性,可以查看更多信息。
预期结果
16000 Hz采样率、16 bit采样位数、单声道(mono)的无压缩WAV格式如下图所示:
如何进行语音格式转换
若输入语音采样率、采样位数、声道、编码等不符合语音识别格式要求时会报错,测试语音可先进行语音格式转换。
Linux操作系统下转换语音格式
使用如下常见的FFmpeg命令进行转换。更多操作,请参见下载FFmpeg。
#查询语音格式如采样率、声道、编码等
ffmpeg -i input.mp3
#将某个wav文件转化为8K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个wav文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 16000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个pcm文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.pcm -f s16le -ar 16000 -ac 1 -acodec pcm_s16le output.wav
#将某个wav文件转化为16K、16bit、单声道的pcm文件
ffmpeg -y -i input.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm
#将某个Mp3文件转换为转化为16K、16bit、单声道的wav文件
ffmpeg -y -i input.mp3 -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.wav
#将某个44.1KHz、16bit的wav文件转化为16K、16bit、单声道的wav文件
ffmpeg -y -f s16le -ar 44100 -ac 1 -i input.wav -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.wav
#将某个8K的alaw文件转化为8K、16bit、单声道的wav文件
ffmpeg -f alaw -ar 8000 -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个8K的mulaw文件转化为8K、16bit、单声道的wav文件
ffmpeg -f mulaw -ar 8000 -i input.wav -ar 8000 -ac 1 -acodec pcm_s16le -f s16le output.wav
#将某个amr文件转化为16K、16bit、单声道的wav文件
ffmpeg -i input.wav -ar 16000 -ac 1 -acodec pcm_s16le -f s16le output.wav
Windows操作系统下转换语音格式
Windows系统下语音转换格式可使用转换工具,常见工具Adobe Audition、CoolEdit或其他在线、离线语音转换工具。
使用转换工具,优先打开语音,修改导出设置的格式后运行即可,以下是以输出16K数据为例。
常见问题及解决方法
官网示例语音正常,换成自己待测试的语音就获取不到识别结果?
检查音频文件格式
建议您检查待测试的语音格式是否符合语音识别输入格式要求。更多内容,请参见上文音频格式说明。
将待测试语音转换成16K、16 bit采样位数、单声道(mono)无压缩的WAV文件。
Tap2Talk/Duplex 模式下,发送音频没有最终结果返回?
Tap2Talk/Duplex 模式使用云端 vad 检测音频尾点。 如果是使用音频文件调用,需要音频文件后面至少包含 800-1000ms 静音,否则识别无法结束。
语音合成的语速和我预期的不一致?
检查您的播放参数设置
请检查您播放的参数,尤其是采样率、采样位数、以及通道数。通常在播放 PCM 数据的时候,错误的设置会造成声音异常。
以 Android 为例。通常客户端使用AudioTrack播放,通常的配置如下: