Spaces:
Runtime error
Runtime error
import wave | |
import pyaudio | |
class RecordAudio: | |
def __init__(self): | |
# 录音参数 | |
self.chunk = 1024 | |
self.format = pyaudio.paInt16 | |
self.channels = 1 | |
self.rate = 16000 | |
# 打开录音 | |
self.p = pyaudio.PyAudio() | |
self.stream = self.p.open(format=self.format, | |
channels=self.channels, | |
rate=self.rate, | |
input=True, | |
frames_per_buffer=self.chunk) | |
def record(self, output_path="audio/temp.wav", record_seconds=3): | |
""" | |
录音 | |
:param output_path: 录音保存的路径,后缀名为wav | |
:param record_seconds: 录音时间,默认3秒 | |
:return: 录音的文件路径 | |
""" | |
i = input("按下回车键开机录音,录音3秒中:") | |
print("开始录音......") | |
frames = [] | |
for i in range(0, int(self.rate / self.chunk * record_seconds)): | |
data = self.stream.read(self.chunk) | |
frames.append(data) | |
print("录音已结束!") | |
wf = wave.open(output_path, 'wb') | |
wf.setnchannels(self.channels) | |
wf.setsampwidth(self.p.get_sample_size(self.format)) | |
wf.setframerate(self.rate) | |
wf.writeframes(b''.join(frames)) | |
wf.close() | |
return output_path | |