将音频格式从flac转到wav的两种方法

文章介绍了在Ubuntu系统中将flac音频格式转换为wav格式的两种方法:一是利用sox命令行工具编写shell脚本批量转换;二是使用Python的pydub库,依赖ffmpeg进行转换。这两种方法同样适用于其他音频格式的互转。
摘要由CSDN通过智能技术生成

最近在智能语音中用到了数据集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查看是否安装好,如下图:

ffmpeg安装好后再在一个conda环境下安装pydub库,命令如下:pip install pydub。可以用pip list看一下是否装好以及版本,如下图:

这些都ready后就开始写python代码,基于pydub做音频格式转换的python代码如下:

from glob import glob
from pydub import AudioSegment
import os

def find_files(directory, ext='flac'):
    return sorted(glob(directory + f'/**/*.{ext}', recursive=True))

def trans_flac_to_wav(file_path):
    file_dir = os.path.dirname(file_path)
    new_name = os.path.basename(file_path).replace('.flac', '.wav')
    new_file = os.path.join(file_dir, new_name)
    song = AudioSegment.from_file(file_path)
    song.export(new_file, format="wav")
    
print('===== Begin to Do converter =====')
audio_files = find_files('/home/....../format_converter/flac')
for audio_file in audio_files:
    # do converter
    trans_flac_to_wav(audio_file)

以上就是将音频格式从flac转到wav的两种方法。对其他音频格式之间的互转,方法也是适用的,只不过代码上有可能需要做一点小的改动。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Vosk语音识别是一种开源的自然语言处理工具包,支持多种音频格式进行语音识别。它可以处理常见的音频文件格式,如WAV、MP3等,同时也支持流式音频输入。 在Vosk中,WAV是最常用的音频格式之一。WAV是一种无损音频格式,它可以存储高质量的音频数据,并且在Vosk中的语音识别表现良好。使用WAV格式的音频进行语音识别时,可以保持音频的原始质量,使识别的准确性得到提高。 此外,Vosk还支持MP3格式的音频进行语音识别。MP3是一种常见的有损音频格式,虽然会损失一定的音频质量,但其压缩率高,节省存储空间。使用MP3格式时,Vosk会对音频进行解码,然后进行语音识别。 除了以上两种格式,Vosk还支持其他常见的音频格式,如FLAC、OGG等。这些格式都有自己的特点和优势,在Vosk中也可以进行语音识别。 总之,Vosk语音识别支持多种音频格式,包括WAV、MP3、FLAC、OGG等。无论是使用何种格式,Vosk都可以根据其特点和要求进行相应的处理,从而实现高质量的语音识别。 ### 回答2: Vosk语音识别支持多种音频格式。它可以处理常见的音频格式,如WAVFLAC、MP3等。对于WAV格式,Vosk支持16位有符号整数或32位浮点数的PCM编码。对于FLAC格式,它支持16位无损音频编码。此外,Vosk还支持16位有符号整数的RAW PCM格式,但需要在音频数据前提供一个WAV头部。 要使用Vosk进行语音识别,我们需要将音频转换为Vosk可接受的格式,并确保音频质量达到最佳识别结果。对于16位PCM编码的WAV格式音频,我们可以使用许多音频编辑工具进行转换,如Audacity、FFmpeg等。对于FLAC格式音频,我们可以使用FFmpeg进行转换。如果音频是MP3格式,我们需要先将其转换为WAVFLAC,然后再使用Vosk进行识别。 在转换音频格式时,我们还需要注意采样率和音频通道。Vosk支持8k、16k、32k和48k的采样率。通常,采样率越高,音频质量越好,但识别过程需要更多的计算资源。对于音频通道数,Vosk支持单声道和立体声。如果使用立体声音频,我们需要将其转换为单声道格式,以获得更好的识别结果。 总之,Vosk语音识别支持多种音频格式,包括WAVFLAC和MP3。我们可以使用各种音频编辑工具将音频转换为Vosk可接受的格式,并根据需要调整采样率和音频通道数,以获得最佳的识别结果。 ### 回答3: Vosk语音识别支持多种音频格式。它能够处理PCM音频格式,包括16位、32位浮点数等不同的采样精度。此外,Vosk还支持其他广泛使用的音频格式,如WAVFLAC、OGG等。用户可以根据自己的需要选择适当的音频格式进行语音识别。 为了更好地使用Vosk进行语音识别,建议使用以下音频格式:16位PCM音频、16kHz采样率和单声道音频。这些参数对语音识别的准确性有着重要影响。同时,用户还可以根据具体需求调整参数设置,例如选择适合的采样精度、采样率和声道数。 总结而言,Vosk语音识别具有广泛的音频格式支持,用户可以根据需求选择适当的音频格式。同时,为了获得更好的识别结果,建议使用16位PCM音频、16kHz采样率和单声道音频。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值