日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

使用 Python 的 sounddevice 包录制系统声音

發布時間:2023/12/13 综合教程 43 生活家
生活随笔 收集整理的這篇文章主要介紹了 使用 Python 的 sounddevice 包录制系统声音 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

博客中的文章均為meelo原創,請務必以鏈接形式注明本文地址

sounddevice是一個與Numpy兼容的錄音以及播放聲音的包。

安裝sounddevice包


直接通過pip就能安裝。

pip install sounddevice

播放音樂


首先,用numpy生成440Hz的正弦波

import numpy as np
fs = 44100 # Hz
f = 440 # Hz
length = 5 #s
myarray = np.arange(fs * length)
myarray = np.sin(2 * np.pi * f / fs * myarray)

用sounddevice包播放音樂非常簡單。調用play函數來播放聲音,需要傳入需要播放聲音的波形,和采樣率。

import sounddevice as sd
sd.play(myarray, fs)

查看聲音設備


計算機上可能有多個聲音播放/錄制設備,sounddevice會默認使用系統默認的設備。調用query_devices()函數會顯示系統所有的聲音設備。

sd.query_devices()

下面是我計算機上的聲音設備,>標示為默認輸入設備,<表示默認的輸出設備,聲音設備名稱之前是序號。默認的設備也可以通過sd.default.device查看,返回的是一個列表,有兩個元素。第一個元素為默認的輸入設備,第二個元素為默認的輸出設備,設備是用序號來表示的。

   0 Microsoft 聲音映射器 - Input, MME (2 in, 0 out)
>  1 立體聲混音 (Realtek High Defini, MME (2 in, 0 out)
   2 麥克風 (Realtek High Definition, MME (2 in, 0 out)
   3 Microsoft 聲音映射器 - Output, MME (0 in, 2 out)
<  4 揚聲器 (Realtek High Definition, MME (0 in, 2 out)
   5 主聲音捕獲驅動程序, Windows DirectSound (2 in, 0 out)
   6 立體聲混音 (Realtek High Definition Audio), Windows DirectSound (2 in, 0 out)
   7 麥克風 (Realtek High Definition Audio), Windows DirectSound (2 in, 0 out)
   8 主聲音驅動程序, Windows DirectSound (0 in, 2 out)
   9 揚聲器 (Realtek High Definition Audio), Windows DirectSound (0 in, 2 out)
  10 揚聲器 (Realtek High Definition Audio), Windows WASAPI (0 in, 2 out)
  11 立體聲混音 (Realtek High Definition Audio), Windows WASAPI (2 in, 0 out)
  12 麥克風 (Realtek High Definition Audio), Windows WASAPI (2 in, 0 out)
  13 Speakers (Realtek HD Audio output), Windows WDM-KS (0 in, 6 out)
  14 立體聲混音 (Realtek HD Audio Stereo input), Windows WDM-KS (2 in, 0 out)
  15 麥克風 (Realtek HD Audio Mic input), Windows WDM-KS (2 in, 0 out)
  16 線路輸入 (Realtek HD Audio Line input), Windows WDM-KS (2 in, 0 out)

修改默認的輸入設備為系統輸出聲音


系統默認的聲音輸入設備是麥克風,如果需要錄制系統聲音則需要將聲音設備切換成立體聲混音。有可能不存在立體聲混音這個選項,這時你需要升級你的聲卡驅動更新為比2013-5-10發布的6.0.10.1900更高的版本。

通過上面運行sd.query_devices()可以看到,我的計算機立體聲混音設備序號為1。因此我需要設置:

sd.default.device[0] = 1

錄制系統聲音


錄音和聲音播放一樣簡單,這時你需要調用rec函數,傳入需要錄音的時長(采樣的點數),同時設置blocking=True表示錄音完成再返回,最后設置channels=1表示只錄制一個聲道。

fs = 44100 # Hz
length = 5 # s
recording = sd.rec(frames=fs * length, samplerate=fs, blocking=True, channels=1)

最后使用scipy.io將音頻保存為文件。

from scipy.io import wavfile
wavfile.write('recording.wav', fs, recording)

總結

以上是生活随笔為你收集整理的使用 Python 的 sounddevice 包录制系统声音的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。