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

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

python 錄制系統聲音的示例

瀏覽:177日期: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久久,三上悠亚国产精品一区二区三区
亚洲精品亚洲人成在线观看| 国产精品一区二区三区av麻| 精品国产乱码久久久久久樱花| 国产欧美日韩| 国产精品视频3p| 欧美久久一区二区三区| 欧美日韩精品一区二区三区视频 | 欧美一区自拍| 日韩激情精品| 国产一区 二区| 成人午夜亚洲| 亚洲h色精品| 国产韩日影视精品| 亚洲欧美久久| 日韩av三区| 久久99蜜桃| 国产美女高潮在线| 极品裸体白嫩激情啪啪国产精品| 国产精品试看| 日韩精品免费一区二区夜夜嗨 | 欧美gv在线| 99成人在线| 日韩精品三级| 国产一区二区三区成人欧美日韩在线观看 | 欧美激情视频一区二区三区免费| 精品一区二区三区在线观看视频 | 免费视频一区二区三区在线观看| 丰满少妇一区| 精品三级久久| 久热综合在线亚洲精品| 国产欧美日韩一级| 中文字幕人成乱码在线观看 | 日本少妇精品亚洲第一区| 久久不见久久见免费视频7| 亚洲国产成人二区| 日韩在线中文| 日韩精品一级中文字幕精品视频免费观看 | 新版的欧美在线视频| 欧美成人久久| 日韩国产欧美一区二区三区| 精品久久91| 亚洲欧美激情诱惑| 欧美精品国产| 久久精品卡一| 91免费精品国偷自产在线在线| 91免费精品| 美女日韩在线中文字幕| 国产精品成人自拍| 国产一区二区中文| 欧美伊人久久| 99精品视频在线观看免费播放| 亚洲资源在线| 欧产日产国产精品视频| 日韩成人精品一区二区三区 | 日韩av在线播放中文字幕| 四虎8848精品成人免费网站| 久久福利精品| 超碰在线99| 日本在线观看不卡视频| 日韩电影二区| 欧美日韩va| 亚洲免费观看| 激情久久一区二区| 免费看欧美美女黄的网站| 国产精品啊v在线| 五月综合激情| 精品免费av一区二区三区| 亚洲一区有码| 欧美日韩水蜜桃| 国产精品一区三区在线观看| 日韩精品看片| 精品一区二区三区中文字幕 | 高清日韩中文字幕| 石原莉奈在线亚洲三区| 91偷拍一区二区三区精品| 香蕉久久久久久| 欧美一级精品| 国产一区二区三区不卡av| 日韩精品五月天| 亚洲精品一二三区区别| 精品入口麻豆88视频| 婷婷久久免费视频| 免费av一区| 91亚洲人成网污www| 国产精品亲子伦av一区二区三区| 蜜臀精品久久久久久蜜臀| 日本美女一区| 麻豆视频观看网址久久| 7777精品| 中文字幕亚洲影视| 黑丝一区二区三区| 成人午夜国产| 国产白浆在线免费观看| 国产精品一卡| 日韩手机在线| 老司机久久99久久精品播放免费| 欧美日韩免费看片| 久久精品一区| 国产精品久久久久久久久久齐齐 | 99久久婷婷| sm久久捆绑调教精品一区| 国产欧美高清| 中文字幕av一区二区三区四区| 午夜国产欧美理论在线播放 | 黑森林国产精品av| 国产精品亚洲一区二区在线观看| 日韩成人午夜精品| 亚洲人成高清| 无码日韩精品一区二区免费| 视频一区二区三区入口| 亚洲免费精品| 婷婷亚洲综合| 亚洲特色特黄| 今天的高清视频免费播放成人| 夜鲁夜鲁夜鲁视频在线播放| 在线中文字幕播放| 国产一区二区三区天码| 久久精品国产亚洲aⅴ| 精品亚洲精品| 吉吉日韩欧美| 久久精品青草| 激情久久中文字幕| 韩日一区二区三区| 亚洲精品va| 日韩在线一二三区| 亚洲精品在线国产| 日本视频中文字幕一区二区三区| 日本不卡视频在线| 国产区精品区| 国产极品一区| 福利精品在线| 麻豆理论在线观看| 日韩欧美另类一区二区| 久久要要av| 首页国产欧美日韩丝袜| 亚洲另类av| 日韩av一区二区三区| 国产精品羞羞答答在线观看| 久久久国产精品网站| 国产精品伦理久久久久久| 欧美日韩免费观看视频| 欧美特黄a级高清免费大片a级| 一区二区三区国产在线| 国产剧情一区| 伊人久久视频| 亚洲激情久久| 午夜一级在线看亚洲| 日韩精品三区四区| 久久影院资源站| 99热精品久久| 一区二区三区四区精品视频| 国产日韩一区二区三区在线| 国产激情精品一区二区三区| 亚洲国产欧美日本视频| 夜夜嗨网站十八久久| 日本成人中文字幕| 久久一区国产| 久久精品国产大片免费观看| 亚洲理论在线| 久久精品国产福利| 欧美va亚洲va日韩∨a综合色| 欧美在线网站| 青草av.久久免费一区| 精品国产18久久久久久二百| 日韩综合精品| 亚洲制服一区| 国产一区二区三区探花| 在线国产一区二区| 免费视频最近日韩| 精品视频在线观看网站| 国产99精品| 7m精品国产导航在线| 国产麻豆久久| 蜜臀va亚洲va欧美va天堂| 国产精品www.| 精品一区欧美| 欧美亚洲tv| 高清av不卡| 日韩在线卡一卡二| 粉嫩av一区二区三区四区五区 | 国产午夜久久| 国产欧美自拍| 亚洲高清激情| 国产伦精品一区二区三区在线播放| 欧美二三四区| 日本欧美大码aⅴ在线播放| 日韩一区自拍| 欧美亚洲三级| 久久美女性网| 国产探花一区二区| 欧美jjzz| 精品久久久久中文字幕小说| 久久国产精品久久w女人spa| 成人午夜亚洲| 日韩一区二区三区免费视频| 日本在线精品| 麻豆视频观看网址久久| 美女久久一区| 成人在线网站| 国产精品一线|