2017-10-16 350 views
-1

我正在從用戶(使用麥克風)接收音頻並播放它的應用程序。有沒有人有方法/模塊可以將麥克風作爲對象存儲(而不是.wav/.mp3)?Python - 錄製和播放麥克風輸入

順便說一句,它在Windows上,如果它很重要。

謝謝大家的幫助!

+0

的可能的複製【如何從Python中的麥克風來獲取聲音輸入,並處理它在飛行?](https://stackoverflow.com/questions/1936828/how-get-sound-input-from- python-and-process-it-on-the-fly) – Shubham

+0

使用speech_recognition模塊... – DRPK

回答

1

pyaudio可用於將音頻存儲爲流對象。

在Windows中可以安裝pyaudio作爲python -m pip install pyaudio

下面是從pyaudio site截取的示例這需要從音頻麥克風5秒的持續時間則存儲音頻流作爲對象和後面立即播放。

您可以修改以存儲不同持續時間的流對象,然後操作並播放它。 小心:持續時間增加會增加內存需求。

""" 
PyAudio Example: Make a wire between input and output (i.e., record a 
few samples and play them back immediately). 
""" 

import pyaudio 

CHUNK = 1024 
WIDTH = 2 
CHANNELS = 2 
RATE = 44100 
RECORD_SECONDS = 5 

p = pyaudio.PyAudio() 

stream = p.open(format=p.get_format_from_width(WIDTH), 
       channels=CHANNELS, 
       rate=RATE, 
       input=True, 
       output=True, 
       frames_per_buffer=CHUNK) 

print("* recording") 

for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
    data = stream.read(CHUNK) #read audio stream 
    stream.write(data, CHUNK) #play back audio stream 

print("* done") 

stream.stop_stream() 
stream.close() 

p.terminate()