用 PyDub 操作音频文件

Python 语音语言处理

Daniel Bourke

Machine Learning Engineer/YouTube Creator

把音量调到 11(更低)

# 导入音频文件
wav_file = AudioSegment.from_file("wav_file.wav")
# 降低 60 dB
quiet_wav_file = wav_file - 60
# 尝试识别较静音的音频
recognizer.recognize_google(quiet_wav_file)
UnknownValueError:
Python 语音语言处理

提高音量

# 提高音量 10 dB
louder_wav_file = wav_file + 10
# 尝试识别
recognizer.recognize_google(louder_wav_file)
this is a wav file
Python 语音语言处理

听起来都一样了

# 导入 AudioSegment 并归一化
from pydub import AudioSegment
from pydub.effects import normalize
from pydub.playback import play
# 导入音量忽高忽低的音频
loud_quiet = AudioSegment.from_file("loud_quiet.wav")
# 归一化音量
normalized_loud_quiet = normalize(loud_quiet)
# 试听
play(normalized_loud_quiet)
Python 语音语言处理

混音与编辑音频文件

# 导入开头带噪声的音频
static_at_start = AudioSegment.from_file("static_at_start.wav")
# 通过切片去除噪声
no_static_at_start = static_at_start[5000:]

# 试听新音频
play(no_static_at_start)
Python 语音语言处理

混音与编辑音频文件

# 导入两个音频文件
wav_file_1 = AudioSegment.from_file("wav_file_1.wav")
wav_file_2 = AudioSegment.from_file("wav_file_2.wav")
# 合并两个音频
wav_file_3 = wav_file_1 + wav_file_2

# 试听
play(wav_file_3)
# 合并两个 wav 并提高音量
louder_wav_file_3 = wav_file_1 + wav_file_2 + 10
Python 语音语言处理

拆分音频

# 导入通话音频
phone_call = AudioSegment.from_file("phone_call.wav")
# 获取声道数
phone_call.channels
2
# 立体声拆分为单声道
phone_call_channels = phone_call.split_to_mono()
phone_call_channels
[<pydub.audio_segment.AudioSegment, <pydub.audio_segment.AudioSegment>]
Python 语音语言处理

拆分音频

# 获取列表首项的声道数
phone_call_channels[0].channels
1
# 识别第一个声道
recognizer.recognize_google(phone_call_channel_1)
the pydub library is really useful
Python 语音语言处理

Let's code!

Python 语音语言处理

Preparing Video For Download...