Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Azure语音到文本-连续识别_Python_Azure_Speech Recognition_Speech To Text - Fatal编程技术网

Python Azure语音到文本-连续识别

Python Azure语音到文本-连续识别,python,azure,speech-recognition,speech-to-text,Python,Azure,Speech Recognition,Speech To Text,我希望看到Azure语音服务的准确性,特别是使用音频文件的语音到文本 我一直在阅读文档,并使用MS quickstar页面中建议的代码进行操作。代码工作正常,我可以得到一些转录,但它只是转录音频的开头(第一句话): 根据文档,看起来我必须使用信号和事件来捕获完整的音频,方法是start\u continuous\u recognition(这没有为python编写文档,但看起来实现了该方法和相关类)。 我试着学习c#和Java中的其他示例,但无法在Python中实现这一点 有人能做到这一点并提供

我希望看到Azure语音服务的准确性,特别是使用音频文件的语音到文本

我一直在阅读文档,并使用MS quickstar页面中建议的代码进行操作。代码工作正常,我可以得到一些转录,但它只是转录音频的开头(第一句话):

根据文档,看起来我必须使用信号和事件来捕获完整的音频,方法是start\u continuous\u recognition(这没有为python编写文档,但看起来实现了该方法和相关类)。 我试着学习c#和Java中的其他示例,但无法在Python中实现这一点

有人能做到这一点并提供一些指导吗? 多谢各位

您可以尝试以下方法:

import azure.cognitiveservices.speech as speechsdk
import time
speech_key, service_region = "xyz", "WestEurope"
speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region, speech_recognition_language="it-IT")
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config)

speech_recognizer.session_started.connect(lambda evt: print('SESSION STARTED: {}'.format(evt)))
speech_recognizer.session_stopped.connect(lambda evt: print('\nSESSION STOPPED {}'.format(evt)))
speech_recognizer.recognized.connect(lambda evt: print('\n{}'.format(evt.result.text)))

print('Say a few words\n\n')
speech_recognizer.start_continuous_recognition()
time.sleep(10)
speech_recognizer.stop_continuous_recognition()

speech_recognizer.session_started.disconnect_all()
speech_recognizer.recognized.disconnect_all()
speech_recognizer.session_stopped.disconnect_all()

记住设置您的首选语言。虽然不算太多,但这是一个很好的起点,而且很有效。我将继续试验。

检查Azure python示例:

或其他语言样本:

基本上如下:

def speech_recognize_continuous_from_file():
    """performs continuous speech recognition with input from an audio file"""
    # <SpeechContinuousRecognitionWithFile>
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    audio_config = speechsdk.audio.AudioConfig(filename=weatherfilename)

    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)

    done = False

    def stop_cb(evt):
        """callback that stops continuous recognition upon receiving an event `evt`"""
        print('CLOSING on {}'.format(evt))
        speech_recognizer.stop_continuous_recognition()
        nonlocal 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)

    # Start continuous speech recognition
    speech_recognizer.start_continuous_recognition()
    while not done:
        time.sleep(.5)
    # </SpeechContinuousRecognitionWithFile>
def speech_从_文件()中识别_continuous_:
“”“使用音频文件的输入执行连续语音识别”“”
# 
speechsdk.SpeechConfig(订阅=语音密钥,区域=服务区域)
audio\u config=speechsdk.audio.AudioConfig(文件名=weatherfilename)
语音识别器=speechsdk.SpeechRecognizer(语音配置=语音配置,音频配置=音频配置)
完成=错误
def停止_cb(evt):
“”“在接收到事件'evt'时停止连续识别的回调”
打印({}结束。格式(evt))
语音识别器。停止连续识别()
非局部完成
完成=正确
#将回调连接到语音识别器触发的事件
语音识别器。识别。连接(lambda evt:print('recogniting:{}'。格式(evt)))
语音识别器.recognized.connect(lambda evt:print('recognized:{}.format(evt)))
语音识别器.session\u started.connect(lambda evt:print('session started:{}'.format(evt)))
语音识别器.session\u stopped.connect(lambda evt:print('session stopped{}.format(evt)))
语音识别器.cancelled.connect(lambda evt:print('cancelled{}.format(evt)))
#在会话已停止或已取消的事件上停止连续识别
语音识别器。会话已停止。连接(停止\u cb)
语音识别器。已取消。连接(停止\u cb)
#启动连续语音识别
语音识别器。启动连续语音识别()
虽然没有这样做:
时间。睡眠(.5)
# 
def speech_recognize_continuous_from_file():
    """performs continuous speech recognition with input from an audio file"""
    # <SpeechContinuousRecognitionWithFile>
    speech_config = speechsdk.SpeechConfig(subscription=speech_key, region=service_region)
    audio_config = speechsdk.audio.AudioConfig(filename=weatherfilename)

    speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config)

    done = False

    def stop_cb(evt):
        """callback that stops continuous recognition upon receiving an event `evt`"""
        print('CLOSING on {}'.format(evt))
        speech_recognizer.stop_continuous_recognition()
        nonlocal 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)

    # Start continuous speech recognition
    speech_recognizer.start_continuous_recognition()
    while not done:
        time.sleep(.5)
    # </SpeechContinuousRecognitionWithFile>