最近在智能语音中用到了数据集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/bashecho "$0  $@ $#"srcdir=$1
outdir=$2echo "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 $newfilesox $x -t wav $outdir/$newfile
doneecho "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 osdef 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 convertertrans_flac_to_wav(audio_file)

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

将音频格式从flac转到wav的两种方法相关推荐

  1. 怎么将图片格式转换成JPG?学会这两种方法轻松转换

    怎么把图片的格式转换成JPG格式呢?图片的格式分为很多种,其中我们最常用的就是JPG格式,这种格式的图片也是我们在很多报名网站或者是企业上传照片时所要求的格式.如果我们手中的照片格式不是JPG格式,有 ...

  2. SSL证书格式转化的两种方法

    由于不同服务器类型支持的SSL证书格式不同,所以当你获得CA签发的SSL证书时,需要转化成所需证书文件格式,常见的SSL证书格式转化方法分享于此. 在转化之前,需要确认服务器支持哪种证书格式,上一篇常 ...

  3. Qt播放WAV格式音频文件的两种方法

    这两种方法都需要在.pro文件中加入multimedia模块. 方法一.使用QAudioOutput #include <QApplication> #include <QFile& ...

  4. 如何提取视频中的音频?这两种方法能帮你实现

    在某些情况下,你可能需要从视频文件中提取音频,例如你想要将视频中的音乐保存为MP3文件,或者你需要编辑视频的音频部分.在这篇文章中,我将向大家介绍两种方法来从视频文件中提取音频. 方法一:使用在线工具 ...

  5. MP4怎么转换成MP3格式?两种方法帮你实现

    MP4是一种常见的视频格式,而MP3则是一种音频格式.有时候,我们需要将MP4视频转换为MP3音频,例如从YouTube下载视频后只需要提取其中的音频部分.以下是两种方法帮助您实现MP4到MP3的转换 ...

  6. html转word并保持格式不变,表格从Word转Excel想保持格式不变?用这两种方法,保你轻松搞定...

    相信在职场办公,大家或多或少都有遇见过这样的问题,需要把Word中的表格转移到Excel中,很多人第一时间就复制黏贴然后再重新调整格式,一两个表格还好说,如果是批量的你怕是要累死了. 表格从Word转 ...

  7. 步步为营:Asp.Net序列化Json格式的两种方法

    过去我们使用JSON.net序列化一个对象,在asp.net3.5中已经集成了序列化对象为json的方法. 我们分别针对System.Runtime.Serialization.Json和System ...

  8. 在PHP代码中处理JSON 格式的字符串的两种方法:

    总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...

  9. 手机怎么把照片转JPG格式?这两种方法可以迅速转换

    怎么使用手机把照片的格式转换成JPG格式呢?图片的格式分为很多种,但是我们在日常的使用过程中最常用的还是JPG格式的图片,因为这种格式的图片便于压缩.储存和传输,是一种使用广泛的图片格式,几乎所有的图 ...

最新文章

  1. 企业云存储云办公方案
  2. 2018-3-19科学网--贾琳老师《思维力量》笔记摘选(触动自己)
  3. ios button.imageview 和setimage的区别
  4. google的阴阳历转换查询
  5. XCode 6 出现 no identity found: Command /usr/bin/codesign failed with exit code 1 解决方法汇总...
  6. 迟来的2017年计划
  7. linux只显示文件,ls如何只显示文件名
  8. mysql 共享锁和排他锁 意向锁 记录锁 Gap Locks Next-Key Locks 插入意向锁介绍
  9. 计算机网络的拓扑模型,基于复杂网络模型的计算机网络拓扑结构研究
  10. linux:使用python脚本监控某个进程是否存在(不使用crontab)
  11. STM32 - 定时器的设定 - 基础- 0A - Timers and external trigger synchronization - 定时器和外部触发的同步
  12. 苹果年底推出搭载M2芯片MacBook Air和MacBook Pro
  13. Python自定义类中定义属性的两种方式
  14. tps是什么意思_系统了解精益生产系统TPS精益思想丛书介绍
  15. zend studio【快捷键】
  16. C#实现不安装Oracle客户端访问远程服务器数据
  17. bzoj千题计划164:bzoj5123: 线段树的匹配
  18. EXT3-fs error和EXT4-fs error小总结
  19. 如何利用新闻传播进行产品网络推广?
  20. Python3批量下载网易云音乐热歌榜

热门文章

  1. Excel删除重复值并保留唯一值的2种操作方法比较
  2. 数学公式和标点符号的英文读法
  3. python-docx与docx的区别
  4. AI 数学基础知识-方向导数与梯度、范数矩阵、SVD分解、PCA、凸函数
  5. 计算机网络分析题例题,《计算机网络》试题库及答案分析.doc
  6. PHP-PHP操作MySQL
  7. 传输层的各种模式——ZeroMQ 库的使用 .
  8. Python-基本统计值计算实例
  9. ctfshow文件上传
  10. 三种遗传方差(genetic variance)