librosa实现音频格式转换(单曲批量) | MP3转wav
文章目录
- step1:环境要求
- ①安装ffmpeg
- ②安装librosa
- ③安装soundfile
- step2:4行代码完成一首歌的格式转换
- ①导包
- ②读入需要处理的MP3文件
- ③用soundfile重写成wav
- 综上,完整代码如下:
- 注:MP3批量转WAV(保持源文件名不变)
- step1:编写转换函数
- step2:调用转换函数
- step3:运行
- 扩展
- 解决报错小故事1
- 更多报错故事待更……
step1:环境要求
①安装ffmpeg
这一步很关键。如果没有ffmpeg,librosa读取MP3文件时就会报错。
见笔者的文章:ffmpeg安装
②安装librosa
pip install librosa
③安装soundfile
pip install soundfile
step2:4行代码完成一首歌的格式转换
①导包
import librosa
import soundfile
②读入需要处理的MP3文件
y,sr = librosa.load("./dataset/sample_data/Sakamoto_MerryChristmasMr_Lawrence.mp3")
③用soundfile重写成wav
soundfile.write("./dataset/sample_data/Sakamoto_MerryChristmasMr_Lawrence.wav",y,sr)
综上,完整代码如下:
import librosa
y,sr = librosa.load("./dataset/sample_data/Sakamoto_MerryChristmasMr_Lawrence.mp3")import soundfile
soundfile.write("./dataset/sample_data/Sakamoto_MerryChristmasMr_Lawrence.wav",y,sr)
注:MP3批量转WAV(保持源文件名不变)
批量保存文件夹中的文件名,参见笔者的文章。
step1:编写转换函数
def audio_mp3_to_wav():# 原MP3文件所在的文件夹audio_path = "C:/Users/24061/Desktop/MERcode/EMOPIA_cls-main/emopia_retrain/dataset/EMOPIA_1.0/EMOPIA_1.0/song"# WAV想要保存的文件夹save_path = "C:/Users/24061/Desktop/MERcode/EMOPIA_cls-main/emopia_retrain/dataset/EMOPIA_1.0/EMOPIA_1.0/song_wav"# 把MP3文件名存储在csv文件中,并将文件名存入列表中songs_id_all = pd.read_csv("C:/Users/24061/Desktop/MERcode/EMOPIA_cls-main/emopia_retrain/dataset/EMOPIA_1.0/EMOPIA_1.0/songs_lists/metadata_by_song_new.csv",index_col=0)songs_id_all_list = []for i in songs_id_all.index:songs_id_all_list.append(i)# 遍历文件夹for fn in tqdm(songs_id_all_list):# 加载文件waveform, source_sr = librosa.load(Path(audio_path, fn + ".mp3"))# 想要保存的文件名pt_path = Path(save_path, fn + ".wav")# 采样后数据的保存位置。如果没有此文件夹,就创建一个文件夹if not os.path.exists(os.path.dirname(pt_path)):os.makedirs(os.path.dirname(pt_path))# 将音频写成WAVsoundfile.write((pt_path),waveform,source_sr)
step2:调用转换函数
import os
from pathlib import Path
from tqdm.notebook import tqdm
import librosa
import soundfileaudio_mp3_to_wav()
step3:运行
等待写入:
写好的文件如图所示:
转换完成:
扩展
使用此方法进行mp3转wav,可以解决很多报错问题,如:
解决报错小故事1
报错
笔者在做实验时,遇到如下报错:raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
……
RuntimeError: Error opening 'D:\\xxx.wav': File contains data in an unknown format.
分析网络上的解决方法
搜索了很多资料,很多博主给出的解决方法是:
- 安装ffmpeg
- 卸载librosa
librosa实现音频格式转换(单曲批量) | MP3转wav相关推荐
- wav格式怎么转换?教你这三招实现音频格式转换
音频格式转换可能对许多人来说是一个陌生的概念.但是,如果你曾经遇到过无法播放或共享音频文件的情况,那么这个问题就不再陌生了.wav是一种常见的音频格式,但它并不是所有设备和应用程序都支持的格式.那么, ...
- java aud 转mp3_音频格式转换:微信语音aud格式转成wav格式
近期遇到音频格式问题,下面就来记录一下,我暂时还没有找到直接从音频格式aud转换成wav的工具或者代码,所以我这里的转换是先把aud转换成mp3格式,然后再从mp3格式转换成aud格式.我是在linu ...
- macOS - afconvert 命令(音频格式转换)
afconvert 命令(音频格式转换) 文章目录 afconvert 命令(音频格式转换) 一.转换示例 1.wav --> acc 2.指定输出名称 3.aac --> caf 4.批 ...
- 教你如何用ffmpeg处理音频格式转换(标贝科技)
文章目录 前言 ffmpeg介绍? 一.下载与安装 1.下载安装包 2.设置环境变量 3.验证是否安装成功 二.命令讲解 1 参数解释 2 音频格式转换命令 三.标贝开放平台介绍 前言 ffmpeg介 ...
- Matlab音频格式转换
所需前置知识 读音频 audioread 语法: [y,Fs] = audioread(filename); 从名为 filename 的文件中读取数据,并返回样本数据 y 以及该数据的采样率 ...
- Java实现音频格式转换 WAV---mp3,可使音频压缩
最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一个录音机的功能(见前面的博客),但是windows录音默认保存的格式是WAVE,后缀是WAV, ...
- Matlab 音频格式转换(wav,ogg,flac,au,aiff,aif,aifc,mp3,m4a,mp4 互转)
欢迎转载,但请一定要给出原文链接,标注出处,支持原创! 谢谢~ https://blog.csdn.net/qq_29225913/article/details/105445028 目录 1.目标及 ...
- Linux下音频格式转换命令行工具
这里写自定义目录标题 Sox音频转换 使用Mplayer将多种格式的而文件编码至WAV 使用FFmpeg将各种类型文件转换成各种类型文件 使用Lame编码或者已不同的比特率重新编码MP3 以Ogg V ...
- 格式工厂 wav 比特率_DRmare Audio Converter Mac(音频格式转换工具)
DRmare Audio Converter Mac是一款音频格式转换.drmare audio converter mac适合将Apple Music,iTunes歌曲转换为其他格式,突破歌曲本身D ...
- amr转mp3 音频格式转换
微信和QQ导出的amr音频文件,大家可以发现用一般播放器都是无法正常播放的.原因是虽然音频格式是amr,但却不是标准amr编码的,而是采用了Silk v3音频编码,导致很多播放器都播放不了.本工具可以 ...
最新文章
- python表白-520使用Python实现“我爱你”表白
- c语言 get post请求,URL GET/POST请求目标-c
- 在mybatis用mysql的代码块_关于Mybatis 中使用Mysql存储过程的方法
- 对编程人员我想说:多做 多实践 多写代码
- 利用 Celery 构建 Web 服务的后台任务调度模块
- C++或C 实现AES ECB模式加密解密,支持官方验证
- c#之跟踪(c#高级编程系列)
- OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
- 国产操作系统往事:四十年激变,终再起风云
- [转载] Python学习(五)Numpy通用函数汇总
- php 随机坐标点,php实现 计算坐标点在某区域
- 如何在Mac视频中添加表情符号
- 舒尔特方格训练注意力游戏
- java弹跳小球程序_用java实现跳动的小球示例代码
- neo4j图数据库--Cypher入门
- 小说阅读网html+css+JavaScript
- Azure 入门文章及动手视频
- 虚拟主机做游戏服务器,虚拟主机做游戏服务器
- Facebook广告投放的正确姿势:玩转目标定位
- 【絮叨.1】同时在写四门语言是怎样一种体验?
热门文章
- wav格式怎么转换?教你这三招实现音频格式转换