如何访问Microsoft Speech SDK记录的音频流

问题描述

我正在使用机器人与志愿者进行对话。我正在使用python3和Microsoft的Speech SDK抄录志愿者的回复。录制和转录都是使用Speech SDK完成的,我还找不到一种方法来访问和保存录制的音频文件。

最小代码示例:

import time
import azure.cognitiveservices.speech as speechsdk

# define callback
def handle_final_result(evt):
    global stop
    print('Heard:',evt.result.text)
    if 'stop' in evt.result.text:
        stop = True
        # TODO: somehow need to save all audio up to this point

# setup speech recognizer using microphone as input
audio_config = speechsdk.audio.AudioConfig(device_name='sysdefault:CARD=Microphone')
speech_key,service_region = "your-key-here","your-region-here"
speech_config = speechsdk.SpeechConfig(subscription=speech_key,region=service_region)
speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config,audio_config=audio_config)

# setup callback and start listening
speech_recognizer.recognized.connect(handle_final_result)
speech_recognizer.start_continuous_recognition()
stop = False
while not stop:
    time.sleep(0.2)
speech_recognizer.stop_continuous_recognition_async()

javascript也有类似的帖子/响应,但我一直无法使用该示例来使事情在python3中正常工作。

解决方法

当前,语音SDK不提供API来捕获用于语音转录的麦克风音频。将来的版本将支持该功能。如果您需要访问麦克风数据,当前建议的方法是在应用中的Speech SDK之外创建麦克风流,然后使用例如语音SDK的pushstream API将音频数据输入以进行语音转录。同时,您的应用程序可以捕获/处理满足您需求的音频。

https://docs.microsoft.com/en-us/python/api/azure-cognitiveservices-speech/azure.cognitiveservices.speech.audio.pushaudioinputstream?view=azure-python

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...