【问题标题】:Storing continuous speech recognition from microphone on MS Azure to a separate variable将来自 MS Azure 上麦克风的连续语音识别存储到单独的变量中
【发布时间】:2021-05-28 14:42:11
【问题描述】:

我有以下 Python 代码可以持续识别你的声音。它工作得很好,我只需要将最终结果(肯定是长时间的演讲结束后)存储到一个变量中......

import azure.cognitiveservices.speech as speechsdk
import os
import time


path = os.getcwd()
# Creates an instance of a speech config with specified subscription key and service region.
# Replace with your own subscription key and region identifier from here: 
https://aka.ms/speech/sdkregion
speech_key, service_region = "6.....9", "eastus"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)

# Creates a recognizer with the given settings
speech_config.speech_recognition_language="en-US"
#source_language_config = speechsdk.languageconfig.SourceLanguageConfig("en-US", "The Endpoint ID for 
your custom model.")
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)

done = False 
def stop_cb(evt):
print('CLOSING on {}'.format(evt))
speech_recognizer.stop_continuous_recognition()
global done
done= True


#Connect callbacks to the events fired by the speech recognizer    
speech_recognizer.recognizing.connect(lambda evt: print('RECOGNIZING: {}'.format(evt)))
speech_recognizer.recognized.connect(lambda evt: print('RECOGNIZED: {}'.format(evt)))
speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
# stop continuous recognition on either session stopped or canceled events
speech_recognizer.session_stopped.connect(stop_cb)
speech_recognizer.canceled.connect(stop_cb)

speech_recognizer.start_continuous_recognition()

while not done:
    time.sleep(.5)

是否可以制作一个单独的变量并将最终结果存储在其中?不知道怎么...

【问题讨论】:

    标签: python python-3.x azure speech-recognition speech-to-text


    【解决方案1】:

    试试这个:

    import azure.cognitiveservices.speech as speechsdk
    import os
    import time
    
    path = os.getcwd()
    
    speech_key, service_region = "", ""
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    
    speech_config.speech_recognition_language="en-US"
    
    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)
    
    result = ''
    done = False 
    
    def stop_cb(evt):
        print('CLOSING on {}'.format(evt))
        speech_recognizer.stop_continuous_recognition()
        global done
        done= True
    
    
    
    
    def collectResult(evt):
       global result 
       result += evt.result.text
    
    speech_recognizer.recognized.connect(lambda evt: collectResult(evt))
    
    speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
    speech_recognizer.session_stopped.connect(lambda evt: print('SESSION STOPPED {}'.format(evt)))
    speech_recognizer.canceled.connect(lambda evt: print('CANCELED {}'.format(evt)))
    
    speech_recognizer.session_stopped.connect(stop_cb)
    speech_recognizer.canceled.connect(stop_cb)
    
    speech_recognizer.start_continuous_recognition()
    
    while not done:
        print(result)
        time.sleep(.5)
    

    【讨论】:

    • 这似乎工作正常。谢谢! :D 我现在如何在代码的其他地方访问变量?例如,如果我想在处理完成后单独打印它(与整个文本一起变化)。
    • @scrap_tech_guy,我已经更新了我的代码,只需打印 result 即可获得所有结果
    • 非常感谢!珍惜你的时间。 :D
    • @scrap_tech_guy,很高兴知道我的帖子很有帮助,请点击我帖子旁边的复选标记,这样它就会关闭问题,它也会帮助其他人:)
    • 是的,先生。完成!
    猜你喜欢
    • 2021-08-13
    • 2020-09-12
    • 2021-07-15
    • 2021-10-03
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2023-02-12
    • 2013-03-19
    相关资源
    最近更新 更多