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
changed_audio_segment = audio_segment.set_ATTRIBUTENAME(x)
# 將取樣寬度改為 1
wav_file_width_1 = wav_file.set_sample_width(1)
wav_file_width_1.sample_width
1
Python 的口語語言處理

變更音訊參數

# 變更取樣率
wav_file_16k = wav_file.set_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...