2015-01-26 43 views
0

我正在用Python編寫一個程序,用pyaudio創建和記錄音頻文件。音頻文件創建已成功完成,但在錄製中,我面臨麻煩,因爲它沒有捕獲任何內容。用pyaudio在Python中添加記錄時間

import pyaudio 
import wave 
import time 
import sys 
from datetime import datetime 

CHUNK = 1024 
FORMAT = pyaudio.paInt16 
CHANNELS = 1 
RATE = 44100 
RECORD_SECONDS = 5 

WAVE_OUTPUT_FILENAME = 'Audio.wav' 

p = pyaudio.PyAudio() 
stream = p.open(format=FORMAT, 
       channels=CHANNELS, 
       rate=RATE, 
       input=True, 
       frames_per_buffer=CHUNK) 


frames = [] 
print('* done recording') 

stream.stop_stream() 
stream.close() 
p.terminate() 

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') 
wf.setnchannels(CHANNELS) 
wf.setsampwidth(p.get_sample_size(FORMAT)) 
wf.setframerate(RATE) 
wf.writeframes(b''.join(frames)) 
wf.close() 

如何在音頻錄製中添加持續時間?

+0

我不知道whts回事.. plz幫助我解決這個問題 – Fahadkalis 2015-01-26 19:57:55

回答

0

我得到了我的答案,這我在這裏分享

import pyaudio, wave, sys 

CHUNK = 8192 
FORMAT = pyaudio.paInt16 
CHANNELS = 1 
RATE = 44100 
RECORD_SECONDS = 10 

WAVE_OUTPUT_FILENAME = 'Audio_.wav' 
p = pyaudio.PyAudio() 
stream = p.open(format=FORMAT, 
       channels = CHANNELS, 
       rate = RATE, 
       input = True, 
       input_device_index = 0, 
       frames_per_buffer = CHUNK) 

print("* recording") 

frames = [] 
for i in range(0, int(RATE/CHUNK * RECORD_SECONDS)): 
    data = stream.read(CHUNK) 
    frames.append(data) 
print("* done recording") 

stream.stop_stream() 
stream.close() 
p.terminate() 

wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') 
wf.setnchannels(CHANNELS) 
wf.setsampwidth(p.get_sample_size(FORMAT)) 
wf.setframerate(RATE) 
wf.writeframes(b''.join(frames)) 
wf.close()