添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
帅气的地瓜  ·  How to Converting ...·  1小时前    · 
直爽的槟榔  ·  如何在python ...·  1小时前    · 
不拘小节的紫菜  ·  python ...·  1小时前    · 
严肃的蜡烛  ·  Python 异常 ...·  4 小时前    · 
细心的汤圆  ·  人物 in English - ...·  3 月前    · 
憨厚的紫菜汤  ·  GitHub - ...·  6 月前    · 

這篇文章會介紹使用 Python 的 pydub 第三方函式庫,改變聲音播放的速度。

本篇使用的 Python 版本為 3.7.12, 所有範例可使用 Google Colab 實作 ,不用安裝任何軟體 ( 參考: 使用 Google Colab )

安裝 pydub 函式庫

輸入下列指令,就能安裝 pydub 函式庫 ( 依據每個人的作業環境不同,可使用 pip 或 pip3 或 pipenv )。

!pip install pydub

如果是 使用 Anaconda 的環境,要額外輸入下列指令安裝 ffmpeg 和 ffprobe ,不然執行後會發生找不到 ffprobe 的錯誤訊息 ( 使用 Colab 完全不用安裝額外套件 )。

conda install ffmpeg
!pip install ffprobe

改變聲音播放速度

參考「How to change audio playback speed using Pydub」的做法,定義聲音加速和減速的函式,就能將改變聲音檔案的速度。

音樂來源使用 Google 音樂庫:https://www.youtube.com/audiolibrary

import os
os.chdir('/content/drive/MyDrive/Colab Notebooks')  # Colab 換路徑使用
from pydub import AudioSegment
song = AudioSegment.from_mp3("test.mp3")    # 讀取聲音檔案
# 定義加速與減速的函式
def speed_change(sound, speed=1.0):
    rate = sound._spawn(sound.raw_data, overrides={
        "frame_rate": int(sound.frame_rate * speed)
    return rate.set_frame_rate(sound.frame_rate)
song_slow = speed_change(song, 0.75)   # 聲音減速
song_fast = speed_change(song, 2.0)    # 聲音加速
song_slow.export('song_slow.mp3')
song_fast.export('song_fast.mp3')
          

如果有任何建議或問題,可傳送「意見表單」給我,謝謝~

Python 教學

Python 學習導讀 關於 Python 使用 Google Colab 使用 Anaconda 使用 Python 虛擬環境 Python 範例集錦 變數 variable 變數 ( 全域、區域 ) 數字 number 文字與字串 string 文字與字串 ( 常用方法 ) 文字與字串 ( 格式化 ) 串列 list 串列 ( 常用方法 ) 元組/數組 tuple 字典 dictionary 集合 set 縮排和註解 運算子 operator 邏輯判斷 ( if、elif、else ) 邏輯判斷 ( and 和 or ) 重複迴圈 ( for、while ) 例外處理 ( try、except ) 生成式 comprehension 物件類別 class 物件繼承 inheritance 匯入模組 import 函式 function 匿名函式 lambda 遞迴 recursion 產生器 generator 裝飾器 decorator 閉包 closure

內建函式&方法

輸入與輸出 字串操作與轉換 迭代物件轉換 迭代物件操作 檔案讀寫 ( open ) eval() 與 exec()

標準函式庫&模組

隨機數 random 數學 math 數學統計函式 statistics 時間與日期 datetime 時間處理 time 日曆 calendar 使用正規表達式 re 檔案操作 os 查找匹配檔案 glob 壓縮檔案 zipfile 高階檔案操作 shutil 高效迭代器 itertools 容器資料型態 collections CSV 檔案操作 JSON 檔案操作 threading 多執行緒處理 concurrent.futures