将音频格式从flac转到wav的两种方法
最近在智能语音中用到了数据集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的两种方法。对其他音频格式之间的互转,方法也是适用的,只不过代码上有可能需要做一点小的改动。
将音频格式从flac转到wav的两种方法的更多相关文章
- 在PHP代码中处理JSON 格式的字符串的两种方法:
总结: 在PHP代码中处理JSON 格式的字符串的两种方法: 方法一: $json= '[{"id":"1","name":"\u ...
- elf格式转换为hex格式文件的两种方法
这周工作终于不太忙了,可以写点笔记总结一下了. 之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次 ...
- get请求传递json格式数据的两种方法
get请求参数为json格式数据,使用pyhton+request的两种实现方式如下: 方法一:使用requests.request() 示例代码如下: 1.导入requests和json impor ...
- 怎么将CAD转PNG格式?这两种方法值得收藏
在从事相关CAD工作的小伙伴们都知道,CAD中不光需要绘制各种各样的图纸,还需要根据工作的需要来进行图纸格式的转换工作.那有的时候就需要将CAD转换成PNG格式的图片进行使用.那怎么将CAD转PNG格 ...
- 将网址url中的参数转化为JSON格式的两种方法
在我们进入主题前,我先先看下获取网址URL的方法: window.location.href // 设置或获取整个URL为字符串 window.location.hash // 设置或获取href属性 ...
- Oracle导出/导入数据方法--两种方法(pde格式/dmp格式)
转至:https://www.cnblogs.com/houbxblogs/articles/13365557.html?ivk_sa=1024320u 1.导出数据方法一(pde格式) 工具→ 导出 ...
- 用Python递归解决阿拉伯数字转为中文财务数字格式的问题(2)--打开思路的一种方法
几天前自己写了个将阿拉伯数字转为中文财务数字的程序.用的递归,不幸的是它是树形递归. 虽然实际过程中不太可能出现金额数字大到让Python递归栈溢出,但是始终是一块心病,这玩意终究在理论上是受限制的. ...
- web 开发之js---js 实现网页中播放wav的一种方法(flash播放器)
http://blog.csdn.net/whumr1/article/details/6948160
- 将图片base64格式转换为file对象并读取(两种方式读取)
两种方式读取,一种URL.createObjectURL,另一种fileReader var base64 = ` data:image/jpeg;base64,/9j/4AAQSkZJRgABA ...
- FFmpeg学习4:音频格式转换
前段时间,在学习试用FFmpeg播放音频的时候总是有杂音,网上的很多教程是基于之前版本的FFmpeg的,而新的FFmepg3中audio增加了平面(planar)格式,而SDL播放音频是不支持平面格式 ...
随机推荐
- sql几种不同的权限
DDL:Data Definition Language DDL允许用户定义数据,也就是创建表.删除表.修改表结构这些操作.通常,DDL由数据库管理员执行. DML:Data Manipulation ...
- Oracle-安装问题:Win10系统离线安装framework3.5报0x8024402c的问题
Oracle-安装问题:Win10系统离线安装framework3.5报0x8024402c的问题 像神州信用政府版本相关的系统都不允许联网,也就需要离线安装下,Net3.5之类的文件 具体步骤可以参 ...
- linux 修改文件内容命令
1.进入文件:vim 文件名 eg #vim /etc/httpd/httpd.conf 2.查找待修改内容位置 : (1)shift+":",使文件变成可查询状态 (2)输入 / ...
- lua脚本概述
1.lua脚本非常简单,轻量级,易于c/c++调用 2. 协程 是什么,与线程有啥区别 ??
- Gin使用及源码简析
1. Gin简介 前面通过两篇文章分享了Golang HTTP编程的路由分发.请求/响应处理. Golang HTTP编程及源码解析-路由分发 Golang HTTP编程及源码解析-请求/响应处理 可 ...
- 说一下在写Android APP时遇到的具体问题
问题一:总是显示出no such table错误 不要担心这个问题(该担心还是得担心一下的哈),以我出错多次的经验来看,只需要在运行APP之后,回到虚拟机的主界面,然后找到相应的APP虚拟软件,将他删 ...
- Java笔记第二弹
List常用集合子类的特点 ArrayList底层数据结构是数组 查询快,增删慢 LinkedList底层数据结构是链表 查询慢,增删快 练习: //ArrayList实现 import java.u ...
- BL808:【M1s DOCK开发板】与LVGL 使用体验
前言 念春时已夏,恋冬雪已融. 总是感叹时光匆匆,便努力在在平凡中挣扎,在平庸中努力,在平淡中积累.奈何时代飞速发展,时间又被工作占用,外加生活中的诱惑又太多了,很多想学.想做.想超越的事,都被抛之一 ...
- windows cmd基础命令
cmd md 新建目录rd 删除目录(非空目录)rd 删除目录下所有文件cd 改变当前目录cd .. 返回上一级目录cd \ 返回根目录d: 切换盘符到D盘dir 显示当前目录下的文件del 1.tx ...
- Simulink的MATLAB function使用
note 2021-02-21 下面的文章来自我的公众号 yhm同学 note 2021-04-01 今天审稿,发现存在着一些我没有发现的错误,但是我不想修改了. 原文链接 https://mp.we ...