最近在智能语音中用到了数据集cn-celeb。这个数据集的音频格式是flac,而在做数据增强(augmentation)以及模型训练时用的数据格式是wav,因此需要把音频格式从flac转到wav。我在ubuntu下摸索了一番,找到了两种方法。
1,基于Linux下的sox命令写shell脚本实现
SoX(即 Sound eXchange)是一个跨平台(Windows,Linux,MacOS 等)的命令行实用程序,可以将各种格式的音频文件转换为需要的其他格式。在Ubuntu下安装sox命令如下:sudo apt install sox。Sox装好后就开始写shell脚本,基于sox做音频格式转换的shell脚本如下:
#!/bin/bash
echo "$0 $@ $#"
srcdir=$1
outdir=$2
echo "insrc: $srcdir, outdir: $outdir"
echo "doing, pls waiting"
for x in $srcdir/*.flac; do
name=`basename $x`
dirx=`dirname $x`
array=(${name//./ })
filename=${array[0]}
newfile=$filename".wav"
echo $newfile
sox $x -t wav $outdir/$newfile
done
echo "done,pls check!!"
2,基于pydub的python库写python代码实现
Pydub是一个依赖于ffmpeg的python音频处理库,因此要先安装ffmpeg,安装命令如下:sudo apt install ffmpeg # version 7:4.2.7-0ubuntu0.1。安装后用命令ffmpeg –version查看是否安装好,如下图:

文章介绍了在Ubuntu系统中将flac音频格式转换为wav格式的两种方法:一是利用sox命令行工具编写shell脚本批量转换;二是使用Python的pydub库,依赖ffmpeg进行转换。这两种方法同样适用于其他音频格式的互转。
最低0.47元/天 解锁文章
965

被折叠的 条评论
为什么被折叠?



