如何将实时音频从麦克风转换为文本?

时间:2019-07-30 09:23:10

标签: python speech-recognition speech-to-text google-speech-api

我需要使用python和Google语音到文本API构建语音到文本转换器。我想像本例enter image description here那样实时进行 到目前为止,我已经尝试了以下代码:

import speech_recognition as sr
import pyaudio


r= sr.Recognizer()
print("Running")

p = pyaudio.PyAudio()
for i in range(p.get_device_count()):
    print(p.get_device_info_by_index(i))

with sr.Microphone(1) as source:
    r.adjust_for_ambient_noise(source, 1)  # Adjust for ambient
    print("Say something!")
    audio=r.listen(source)
print("Runnnnnn")
try:
    print("Analyzing voice data  "+r.recognize_google(audio, language='hi-IN'))
except Exception:
    print("Something went wrong")

此代码首先通过麦克风侦听,然后转换为文本格式。我想在这里实现的是在收听的同时应该开始实时转换为文本,而不是等待完成。

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码将实时音频从麦克风转换为真实文本。

import speech_recognition as sr
import pyaudio

init_rec = sr.Recognizer()
print("Let's speak!!")
with sr.Microphone() as source:
    audio_data = init_rec.record(source, duration=5)
    print("Recognizing your text.............")
    text = init_rec.recognize_google(audio_data)
    print(text)

答案 1 :(得分:0)

如果您正在寻找可以克隆并开始使用 Speech API 的环境,您可以查看 realtime-transcription-playground 存储库。这是一个用于实时转录的 React<>Python 实现。

它还包括将音频数据流式传输到 Speech API 的 Python 代码,如果您只对 https://github.com/saharmor/realtime-transcription-playground/blob/main/backend/google_speech_wrapper.py 感兴趣。具体而言,以下方法是相关的:start_listenlisten_print_loopgenerator