经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » SQL语言 » 查看文章
将音频格式从flac转到wav的两种方法
来源:cnblogs  作者:davidtym  时间:2023/5/8 10:21:27  对本文有异议

最近在智能语音中用到了数据集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脚本如下:

  1. #!/bin/bash
  2. echo "$0 $@ $#"
  3. srcdir=$1
  4. outdir=$2
  5.  
  6. echo "insrc: $srcdir, outdir: $outdir"
  7. echo "doing, pls waiting"
  8.  
  9. for x in $srcdir/*.flac; do
  10. name=`basename $x`
  11. dirx=`dirname $x`
  12. array=(${name//./ })
  13. filename=${array[0]}
  14. newfile=$filename".wav"
  15. echo $newfile
  16. sox $x -t wav $outdir/$newfile
  17. done
  18. 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代码如下:

  1. 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的两种方法。对其他音频格式之间的互转,方法也是适用的,只不过代码上有可能需要做一点小的改动。

原文链接:https://www.cnblogs.com/talkaudiodev/p/17371097.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号