因一个行业的智能机器人项目需要,要为该项目业务当中的一些专业术语进行机器人的定制化训练。由此,基于阿里云的智能语音交互平台进行了一些实践。特记录如下。
首先,按照平台的要求,需要提供一份包含录音和文字对照的 zip 包,里面包含以下内容:
1. wav 目录,存放文件名称唯一的各个wav文件。格式为8K或者16K采样,单声道。
2. trans 目录,存放一个 名为 sample.txt 文件(要求 utf-8编码),格式为:
00010001 说话内容1
00010002 说话内容2
00010003 说话内容3
00010004 说话内容4
即每一行内容包含wav文件名(不含扩展名),然后是空格,再是该wav文件对应的文字内容。
实际上,不同的wav文件,可以是同样的说话内容。在本项目中,为了让机器人适应不同人的说话习惯以及口音,就相同的说话内容,我们安排了十个用户参与录音。
将上述文件准备好,并打包压缩为 zip 文件,也就可以上传到平台中进行训练。
但是,客户使用windows 录音机录制完成的文件格式是 *.m4a 的文件,格式需要转换。这时,ffmgpe 就派上用场了。
我在 linux 里面,安装了 ffmpeg,并撰写了一个简单的批处理脚本来进行自动转换,如下:
mkdir wav #创建 wav 目录,以便于存放。当然,如果已有,请事先删除文件。
echo ==== START ====
for var in *.m4a; #遍历m4a 文件
do
ffmpeg -i ${var} -acodec pcm_u8 -ac 1 -ar 8000 wav/${var/m4a/wav}
done
echo ==== FINISH
OK,大功告成。