PyDub 入門

Python 的口語語言處理

Daniel Bourke

Machine Learning Engineer/YouTube Creator

安裝 PyDub

$ pip install pydub
  • 若使用非 .wav 檔,請透過 ffmpeg.org 安裝 ffmpeg
Python 的口語語言處理

PyDub 的主要類別:AudioSegment

# 匯入 PyDub 主要類別
from pydub import AudioSegment
# 匯入音訊檔
wav_file = AudioSegment.from_file(file="wav_file.wav", format="wav")
# format 參數僅為提升可讀性
wav_file = AudioSegment.from_file(file="wav_file.wav")
type(wav_file)
pydub.audio_segment.AudioSegment
Python 的口語語言處理

播放音訊檔

# 安裝 simpleaudio 以播放 wav
$pip install simpleaudio
# 匯入播放函式
from pydub.playback import play
# 匯入音訊檔
wav_file = AudioSegment.from_file(file="wav_file.wav")

# 播放音訊
play(wav_file)
Python 的口語語言處理

音訊參數

# 匯入音訊檔
wav_file = AudioSegment.from_file(file="wav_file.wav")
two_speakers = AudioSegment.from_file(file="two_speakers.wav")

# 檢查聲道數 wav_file.channels, two_speakers.channels
1, 2
wav_file.frame_rate
480000
Python 的口語語言處理

音訊參數

# 每個樣本的位元組數
wav_file.sample_width
2
# 最大振幅
wav_file.max
8488
Python 的口語語言處理

音訊參數

# 音訊長度(毫秒)
len(wav_file)
3284
Python 的口語語言處理

調整音訊參數

# 將 AudioSegment 的 ATTRIBUTENAME 設為 x
changeed_audio_segment = audio_segment.set_ATTRIBUTENAME(x)
# 將 sample width 改為 1
wav_file_width_1 = wav_file.sample_width(1)
wav_file_width_1.sample_width
1
Python 的口語語言處理

調整音訊參數

# 變更取樣率
wav_file_16k = wav_file.frame_rate(16000)
wav_file_16k.frame_rate
16000
# 變更聲道數
wav_file_1_channel = wav_file.set_channels(1)
wav_file_1_channel.channels
1
Python 的口語語言處理

一起來練習吧!

Python 的口語語言處理

Preparing Video For Download...