python實現播放音訊和錄音功能示例程式碼

嗨學程式設計發表於2019-01-18

前言

這篇文章主要給大家介紹了關於python播放音訊和錄音的相關資料,文中通過示例程式碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

本人對於Python學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習Python。歡迎各位到來Python學習群:960410445一起討論視訊分享學習。Python是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握Python核心技術,才是掌握真正的價值所在。

幾種讀取音訊的方式

python 有很多讀取音訊檔案的方法,內建的庫 wave ,科學計算庫 scipy, 和方便易用的語音處理庫 librosa。

下面將介紹分別使用這幾種庫讀取音訊檔案:

安裝:

wave 是內建庫直接匯入即可。

scipy: pip install scipy

librosa: pip install librosa

使用:

wave.open:

引數 path 為檔名,mode 為開啟方式

以'rb'方式開啟檔案返回一個 Wave_read 物件,而以'wb'方式開啟檔案返回一個 Wave_write 物件。

scipy.io.wavfile:

引數 path 為檔名

返回 rate : 取樣率(每秒取樣點的個數),data : 音訊資料

librosa.load:

引數 path 為檔名

返回 y 為音訊資料,sr 為取樣率

python實現播放音訊和錄音功能示例程式碼


下面演示一個使用 wavfile 讀取音訊檔案並且畫出波形的例子:

首先要計算音訊到底持續了多長時間,wave 的 shape 就是總的取樣點個數,除以取樣頻率可以得到持續的總時間(秒),乘1000得到總持續時間(毫秒)。接著通過 np.linsapce 產生時間的序列,最後使用 matplotlib 畫出影象。

python實現播放音訊和錄音功能示例程式碼


python實現播放音訊和錄音功能示例程式碼


最後再借用 pyaudio 的 api 我們可以實現連續錄音功能:

python 實現錄音功能

其中,函式 multi_record每結束一次錄音會詢問 “是否進行下一次錄音?”,按回車就可以進行下一次錄音了。

python實現播放音訊和錄音功能示例程式碼


總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對小編的支援。


相關文章