日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python 錄制系統聲音的示例

瀏覽:175日期:2022-07-01 16:04:54
環境準備

python

wave pyaudio

wave 可以通過pip直接install,在安裝pyaudio時,通過正常的pip install 直接安裝一直處于報錯階段,后來想到可以通過輪子直接安裝。

在pypi提供的安裝包中有對應的安裝包,注意,不僅僅是python2和python3的區別,python3的小版本也有點差別。可杯具的是,小主電腦里裝的是python3.8,后來想到還有一個網站可以安裝pythonlibs,找到對應的版本后,下載下來。直接在文件所在目錄,或者在安裝中指定文件目錄中執行安裝

pip install /c/Users/root/Downloads/PyAudio-0.2.11-cp38-cp38-win_amd64.whl代碼和運行

def audio_record(out_file, rec_time): CHUNK = 1024 FORMAT = pyaudio.paInt16 # 16bit編碼格式 CHANNELS = 1 # 單聲道 RATE = 16000 # 16000采樣頻率 p = pyaudio.PyAudio() # 創建音頻流 dev_idx = findInternalRecordingDevice(p) stream = p.open(format=FORMAT, # 音頻流wav格式 channels=CHANNELS, # 單聲道 rate=RATE, # 采樣率16000 input=True, input_device_index=dev_idx, # 指定內錄設備的id,可以不寫,使用win的默認錄音設備 frames_per_buffer=CHUNK) print('Start Recording...') frames = [] # 錄制的音頻流 # 錄制音頻數據 for i in range(0, int(RATE / CHUNK * rec_time)): # 控制錄音時間 data = stream.read(CHUNK) frames.append(data) # 錄制完成 stream.stop_stream() stream.close() p.terminate() print('Recording Done...') # 保存音頻文件 wf = wave.open(out_file, ’wb’) wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b’’.join(frames)) wf.close()

在使用默認錄音設備時,發現是話筒錄音,效果并不是太理想,所以就去查查能不能直接錄系統的聲音。

def findInternalRecordingDevice(p): # 要找查的設備名稱中的關鍵字 target = ’立體聲混音’ # 逐一查找聲音設備 for i in range(p.get_device_count()): devInfo = p.get_device_info_by_index(i) print(devInfo) if devInfo[’name’].find(target) >= 0 and devInfo[’hostApi’] == 0: # print(’已找到內錄設備,序號是 ’,i) return i print(’無法找到內錄設備!’) return -1

可以使用p.get_device_info_by_index()去查看系統有關聲音的設備,通過設置為立體聲混音就可以錄制系統聲音。

保存聲音

def save(fileName): # 創建pyAudio對象 p = pyaudio.PyAudio() # 打開用于保存數據的文件 wf = wave.open(fileName, ’wb’) # 設置音頻參數 wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) # 寫入數據 wf.writeframes(b’’.join(_frames)) # 關閉文件 wf.close() # 結束pyaudio p.terminate()

保存聲音是通過上述代碼進行保存,此處的_frames是個list,是通過每錄一個chunk(數據流塊),就把這一塊的數據添加進去

然后只需要重新創建PyAudio對象,把這個list轉為字節串保存到文件中就可以了

問題

上述一般可以錄到系統聲音,但在執行的時候發現,并不能。

原因是:win的輸入設備中沒有配置立體聲混音

設置步驟:

在win的聲音調節出,右擊打開聲音設置 找到管理聲音設備 在輸入設備處啟用立體聲混音

就此,就完成了錄制系統聲音的需求

注意

上述操作,可以外放,可以插入3.5mm耳機,但系統靜音和tpye-c耳機插入的時候不能錄到聲音

完整代碼

import osimport pyaudioimport threadingimport waveimport timefrom datetime import datetime# 需要系統打開立體聲混音# 錄音類class Recorder(): def __init__(self, chunk=1024, channels=2, rate=44100): self.CHUNK = chunk self.FORMAT = pyaudio.paInt16 self.CHANNELS = channels self.RATE = rate self._running = True self._frames = [] # 獲取內錄設備序號,在windows操作系統上測試通過,hostAPI = 0 表明是MME設備 def findInternalRecordingDevice(self, p): # 要找查的設備名稱中的關鍵字 target = ’立體聲混音’ # 逐一查找聲音設備 for i in range(p.get_device_count()): devInfo = p.get_device_info_by_index(i) # print(devInfo) if devInfo[’name’].find(target) >= 0 and devInfo[’hostApi’] == 0:# print(’已找到內錄設備,序號是 ’,i)return i print(’無法找到內錄設備!’) return -1 # 開始錄音,開啟一個新線程進行錄音操作 def start(self): threading._start_new_thread(self.__record, ()) # 執行錄音的線程函數 def __record(self): self._running = True self._frames = [] p = pyaudio.PyAudio() # 查找內錄設備 dev_idx = self.findInternalRecordingDevice(p) if dev_idx < 0: return # 在打開輸入流時指定輸入設備 stream = p.open(input_device_index=dev_idx, format=self.FORMAT, channels=self.CHANNELS, rate=self.RATE, input=True, frames_per_buffer=self.CHUNK) # 循環讀取輸入流 while (self._running): data = stream.read(self.CHUNK) self._frames.append(data) # 停止讀取輸入流 stream.stop_stream() # 關閉輸入流 stream.close() # 結束pyaudio p.terminate() return # 停止錄音 def stop(self): self._running = False # 保存到文件 def save(self, fileName): # 創建pyAudio對象 p = pyaudio.PyAudio() # 打開用于保存數據的文件 wf = wave.open(fileName, ’wb’) # 設置音頻參數 wf.setnchannels(self.CHANNELS) wf.setsampwidth(p.get_sample_size(self.FORMAT)) wf.setframerate(self.RATE) # 寫入數據 wf.writeframes(b’’.join(self._frames)) # 關閉文件 wf.close() # 結束pyaudio p.terminate()if __name__ == '__main__': # 檢測當前目錄下是否有record子目錄 if not os.path.exists(’record’): os.makedirs(’record’) print('npython 錄音機 ....n') print('提示:按 r 鍵并回車 開始錄音n') i = input(’請輸入操作碼:’) if i == ’r’: rec = Recorder() begin = time.time() print('n開始錄音,按 s 鍵并回車 停止錄音,自動保存到 record 子目錄n') rec.start() running = True while running: i = input('請輸入操作碼:') if i == ’s’:running = Falseprint('錄音已停止')rec.stop()t = time.time() - beginprint(’錄音時間為%ds’ % t)# 以當前時間為關鍵字保存wav文件rec.save('record/rec_' + datetime.now().strftime('%Y-%m-%d_%H-%M-%S') + '.wav')

以上就是python 錄制系統聲音的示例的詳細內容,更多關于python 錄制系統聲音的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久97视频| 国产在线观看91一区二区三区| 激情国产在线| 精品久久99| 亚洲特级毛片| 视频一区二区欧美| 国产精品一站二站| 国产中文在线播放| 国产日韩综合| 欧美日韩a区| 国产在线观看www| 日韩午夜在线| 日本成人在线一区| 成人台湾亚洲精品一区二区| 久久久久午夜电影| 午夜一级久久| 欧美黄色精品| 亚洲精品网址| 蜜臀av国产精品久久久久 | 日精品一区二区三区| 日本午夜精品| 日产精品一区二区| 欧美日韩国产在线观看网站 | 在线视频亚洲| 伊人久久大香伊蕉在人线观看热v| 欧美片第1页综合| 91亚洲国产| 夜夜嗨av一区二区三区网站四季av| 一级成人国产| 精品视频一二| 亚洲免费黄色| 麻豆久久一区| 亚洲一区黄色| sm久久捆绑调教精品一区| 免费在线观看成人| 国产高潮在线| 日韩一区二区三区精品| 欧美aa在线观看| 日韩国产在线一| 亚洲91久久| 国产日韩中文在线中文字幕| 日韩毛片在线| 国产精品嫩模av在线| 欧美不卡在线| 免费亚洲婷婷| 亚洲精品福利| 欧美日韩在线播放视频| 国产精品白丝久久av网站| 在线亚洲成人| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 久久久久免费| 日韩欧美精品一区二区综合视频| 日韩一区二区三区免费| 日本欧美大码aⅴ在线播放| 亚洲婷婷免费| 久久精品国产精品亚洲毛片| 亚洲一区激情| 久久婷婷丁香| 日韩av专区| 国产欧美三级| 亚洲影视一区| 日韩视频二区| 播放一区二区| 欧美激情综合| 天海翼亚洲一区二区三区| 亚洲性图久久| 欧美freesex黑人又粗又大| 国产黄色精品| 97成人在线| 石原莉奈在线亚洲三区| 欧美精品一卡| 午夜精品成人av| 精品亚洲成人| 免费一级欧美在线观看视频| 日韩精品a在线观看91| 日韩一区精品视频| 一区在线视频观看| 久久网站免费观看| 欧美成人基地| 国产成人精品亚洲线观看| 国产精品免费不| 国产精品一级在线观看| 国产九九精品| 久久gogo国模啪啪裸体| 国产精品久久久久毛片大屁完整版| 日韩精品免费一区二区夜夜嗨| 中文一区一区三区免费在线观 | 麻豆视频一区二区| 久久国产视频网| 日本亚洲最大的色成网站www| 日韩精品一二区| 亚洲一二av| 中文字幕亚洲影视| 在线国产日韩| 日韩成人精品一区二区三区| 日韩激情网站| 国产探花一区二区| 欧美精品不卡| 欧美精品二区| 精品一区二区三区的国产在线观看| 另类欧美日韩国产在线| 精品国产一区二区三区av片| 在线中文字幕播放| 激情偷拍久久| 蜜臀久久99精品久久久画质超高清 | 久久精品九色| 精品99在线| 久久久国产精品一区二区中文| 亚洲综合在线电影| 久久久人人人| 在线综合视频| 亚洲精品日本| 国产伦理一区| 亚洲一区资源| 99精品在线观看| 亚洲一区日韩在线| 日韩高清电影一区| 国产精品白丝一区二区三区| 国产精品久久久久久久久妇女| 久久精品二区三区| 热久久免费视频| 国产精品久久久久久久久免费高清 | 免费视频亚洲| 免费人成精品欧美精品| 日本视频一区二区| 精品亚洲免a| 免费久久久久久久久| 日韩三级精品| 久久久久久一区二区| 欧美一区久久久| 久久国产精品毛片| 欧美黑人巨大videos精品| 日韩精品欧美激情一区二区| 免费人成精品欧美精品| 久久中文字幕一区二区三区| 日本精品在线中文字幕| 视频一区在线视频| 风间由美中文字幕在线看视频国产欧美| 欧美日韩水蜜桃| 欧美日韩精品一区二区三区视频 | 六月婷婷一区| 美女在线视频一区| 午夜欧美精品久久久久久久| 国产精品亚洲成在人线| 欧美精品一区二区三区精品| 7777精品| 亚洲高清av| 国产精品资源| 伊人成人网在线看| 欧美国产三级| 黑丝一区二区三区| 欧美欧美黄在线二区| 亚洲天堂黄色| 国产精品亚洲综合久久| 欧美另类专区| 国产一区三区在线播放| 国产偷自视频区视频一区二区| 免费视频一区二区三区在线观看| 欧美日韩精品免费观看视频完整| 国产精品17p| 一区二区三区四区精品视频| 欧洲在线一区| 精品入口麻豆88视频| 亚洲精品三级| 伊人久久大香线蕉av超碰演员| 精品一区91| 一区二区三区国产盗摄| 成人欧美一区二区三区的电影| 亚洲精品乱码久久久久久蜜桃麻豆| 精品久久久网| 日韩av不卡一区二区| 99国产精品久久久久久久| 成人精品高清在线视频| 日韩va欧美va亚洲va久久| 黄色亚洲免费| 亚洲成人不卡| 成人午夜亚洲| 欧美激情福利| 欧美一区成人| 一区二区三区四区在线观看国产日韩| 久久国产电影| 久久三级中文| 国产美女久久| 91麻豆精品| 亚洲ww精品| 一区二区精彩视频| 亚洲一区二区三区四区五区午夜 | 日韩视频二区| 欧美手机在线| 午夜精品成人av| 国产成人a视频高清在线观看| 亚洲区国产区| 亚洲免费在线| 99国产精品视频免费观看一公开| 91精品啪在线观看国产18| 午夜影院一区| 日韩一区电影| 欧洲av一区二区| 秋霞影视一区二区三区| 国产亚洲一区二区手机在线观看|