问题描述
我正在使用机器人与志愿者进行对话。我正在使用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将音频数据输入以进行语音转录。同时,您的应用程序可以捕获/处理满足您需求的音频。