【问题标题】:Python SpeechRecognition doesn't listen to full audio?Python SpeechRecognition 不听完整的音频?
【发布时间】:2021-12-22 10:57:16
【问题描述】:

我只是想简单地使用 python SpeechRecognition 从音频文件中获取成绩单。似乎无论我设置什么 pause_threshold 或持续时间或其他什么,它总是给我相同的确切输出,大约 80 秒音频中的 30 秒,然后它会切断。

import speech_recognition as sr

import moviepy.editor as mp

clip = mp.VideoFileClip(r"recording2.webm")

clip.audio.write_audiofile(r"converted.wav")

r = sr.Recognizer()

r.pause_threshold = 10

# r.energy_threshold = 4000

audio = sr.AudioFile("converted.wav")

with audio as source:
   audio_file = r.record(source, duration=90)

result = r.recognize_azure(audio_file, key=AZUREKEY, language="en-US", show_all=False, location="westeurope")

print(result)

不管我怎么设置,还是一样的结果。

【问题讨论】:

  • 我不确定,但它可能会受到转换它的谷歌服务器的限制。对于更长的音频,它可能需要在 Google API 中注册并使用特殊方法来发送更长的音频。
  • 我正在使用 Azure 语音服务。但我猜它也可能在他们的服务器和谷歌的服务器上受到限制。

标签: python speech-recognition speech-to-text azure-speech


【解决方案1】:

我不确定这是否是正确的方法,但目前它是解决问题的充分方法。我将音频分割成 30 秒的片段,然后构建整个脚本。

with audio as source:
    r.adjust_for_ambient_noise(source)
    for chunk in range(no_of_chunks):
        audio_data = r.record(source, duration=30)
        transcript = r.recognize_azure(audio_data, key=AZURE_KEY, language="en-US", show_all=False,
                                       location="westeurope")
        result += transcript + " "

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多