【Python语音识别系列】实现m4a到wav语音格式的批量转化(源码)

liftword4个月前 (03-06)技术文章22

这是我的第388篇原创文章。

一、引言

在语音识别和音频处理领域,我们经常需要对音频文件格式进行转换,例如将 M4A 格式转为更常见的 WAV 格式。本文将基于pydub这个库批量实现m4a到wav语音格式的转化。

pydub 是一个用 Python 编写的音频处理库,可以方便地处理许多音频文件,诸如分割、合并、格式转换、音量调节等。它具有以下特点:

  • 主要使用 ffmpeg 和 libav 模块来实现音频的读取、处理和输出。
  • 支持的音频格式非常广泛,包括 MP3、WAV、FLAC、MP4 等。
  • API 简单易用,可以方便地进行常用的音频处理操作。

注意事项

安装依赖:

  1. pydub
  2. 需要通过 pip install pydub 安装。
  3. 转换音频文件需要支持的解码工具,例如 FFmpeg 或 libav。可以通过安装 FFmpeg 来确保 pydub 正常工作。

FFmpeg 配置:

  1. 确保系统已安装 FFmpeg,并配置好环境变量。
  2. 或者将 FFmpeg 的路径手动传递给 pydub(如果默认路径不可用)。

二、实现过程

pydub 需要 FFmpeg 来处理音频文件格式。如果你的系统未安装 FFmpeg,请按以下步骤操作:前往 FFmpeg 官方网站
https://www.gyan.dev/ffmpeg/builds/#release-builds 下载 Windows 二进制文件。

解压后将 bin 文件夹路径添加到系统环境变量:

在终端输入以下命令看是否成功配置:

ffmpeg -i

编写代码:从指定的输入文件夹中批量查找 .m4a 文件。将每个 .m4a 文件转换为 .wav 文件。将转换后的 .wav 文件保存到目标文件夹中。

import os
from pydub import AudioSegment


# 文件夹路径
input_folder = "D:\\quwen\Documents\录音-副本"
wav_folder = "D:\\quwen\Documents\录音-副本-wav"
os.makedirs(wav_folder, exist_ok=True)
# 批量处理 M4A 文件
for file_name in os.listdir(input_folder):
    if file_name.endswith(".m4a"):
        print(file_name)
        input_path = os.path.join(input_folder, file_name)
        print(input_path)
        wav_path = os.path.join(wav_folder, os.path.splitext(file_name)[0] + ".wav")
        # M4A 转 WAV
        song = AudioSegment.from_file(input_path, format="m4a")
        song.export(wav_path, format="wav")
        print(f"转换完成:{wav_path}")

执行过程:

最终结果:

作者简介: 读研期间发表6篇SCI数据算法相关论文,目前在某研究院从事数据算法相关研究工作,结合自身科研实践经历持续分享关于Python、数据分析、特征工程、机器学习、深度学习、人工智能系列基础知识与案例。关注gzh:数据杂坛,获取数据和源码学习更多内容。

原文链接:

【Python语音识别系列】实现m4a到wav语音格式的批量转化(案例+源码)

相关文章

在 Python 中解压元组、列表和其他序列

Python 对解包序列的支持非常有用。拆包,也称为“多重赋值”或“迭代拆包”,是指在单个步骤中将序列中的值分配给多个变量的过程。此功能适用于元组、列表和其他可迭代序列。什么是可迭代拆包?考虑这个元组...

使用 Python 让旧照片修复清晰

翻开家里的的相片册,可以看到每张照片都是那么的弥足珍贵,特别是很久以前的照片,都是美好的回忆,还有那些年错过的场景,都被记录下来了,不过可惜的是,随着时间的流逝,照片可能泛黄,出现划痕,画质损失等等,...

使用python展开tar包

类Unix的系统,打包文件经常使用的就是tar包,结合zip工具,可以方便的打包并解压。在python的标准库里面有tarfile库,可以方便实现生成了展开tar包。使用这个库最大的好处,可能就在于不...

Python shutil 库详解

1. shutil库概述简介shutil是Python中的一个标准库,它提供了一系列对文件和文件集合的高级操作。“shutil”这个名字是“shell utilities”(外壳工具)的缩写,它的功能...

Python自动化打包

最近需要打包一二十个同报名的Android apk用来测试,但是版本不一样,如果手动的去打包一个个的太麻烦了,于是乎想着用Python写一个脚本用来打包这些apk。Python执行打包命令首先需要Py...