在Python中,我们可以使用多个库来接收语音输入,这里我们将介绍两个常用的库:SpeechRecognition
和 pyaudio
。
1. 安装所需库
我们需要安装这两个库,在命令行中运行以下命令:
pip install SpeechRecognition pyaudio
2. 使用 SpeechRecognition 库
SpeechRecognition
是一个 Python 库,用于将语音转换为文本,以下是一个简单的示例,演示如何使用 SpeechRecognition
从麦克风捕获音频并将其转换为文本:
import speech_recognition as sr 创建 Recognizer 对象 recognizer = sr.Recognizer() 使用麦克风作为音频源 with sr.Microphone() as source: print("请说话:") audio = recognizer.listen(source) try: # 尝试识别音频 text = recognizer.recognize_google(audio, language='zhCN') print("你说的是:", text) except sr.UnknownValueError: print("无法识别音频") except sr.RequestError as e: print("请求出错; {0}".format(e))
3. 使用 pyaudio 库
pyaudio
是一个 Python 库,用于录制和播放音频,以下是一个简单的示例,演示如何使用 pyaudio
从麦克风捕获音频:
import pyaudio 定义参数 CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 16000 创建 PyAudio 对象 p = pyaudio.PyAudio() 打开录音流 stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("开始录音,请说话...") frames = [] 循环录音 for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("录音结束") 停止录音并关闭流 stream.stop_stream() stream.close() p.terminate() 将录音数据保存为文件 wf = wave.open("output.wav", 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close()
这个示例将录制一段音频并将其保存为 output.wav
文件,你可以使用其他库(如 librosa
)将音频文件转换为文本。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。