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

liftword1周前 (03-06)技术文章5

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

pyinstaller打包python程序高级技巧

pyinstaller是最常用的python程序打包成可执行程序(exe)的工具,这篇文章将介绍几个pyinstaller打包可能遇到的问题及其解决方法。安装pyinstaller的安装很简单,直接p...

Python exe 文件反编译为 Python 脚本

前言将 Python 可执行文件(.exe)反编译为 Python 脚本是一项有趣的技术挑战,可以帮助我们理解程序的工作原理,以及可能包含的逻辑和算法。虽然反编译不是一项简单的任务,并且对于使用各种保...

必知必会!10个Python超实用技巧

技巧一:快速赋值与解包在 Python 中,通过列表给多个变量赋值是一项非常实用的技巧。假设我们有一个包含三个元素的列表[1, 2, 3],想要将这三个元素分别赋值给三个变量a、b、c,只需简单地写成...

python散装笔记——81: PyPI 软件包管理器: pip 模块的使用

有时,您可能需要在 python 中使用 pip 包管理器,例如,当某些导入可能引发 ImportError 时,您需要处理异常。如果在 Windows 上解压缩,Python_root/Script...

使用 Python 让旧照片修复清晰

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