如何从Microsoft Speech Service识别结果对象中提取纯文本内容
Azure Speech SDK提取识别结果text字段方法
原生属性调用(推荐)
Azure Speech SDK的识别事件返回对象中,text是SpeechRecognitionResult类的原生属性,直接调用对应属性即可获取,无需手动解析输出字符串,稳定性更高,不同开发语言的实现如下:
- Python 示例
运行后即可直接输出示例中的识别文本:import azure.cognitiveservices.speech as speechsdk def recognized_handler(evt): # 过滤识别成功的结果,跳过取消、无匹配等异常场景 if evt.result.reason == speechsdk.ResultReason.RecognizedSpeech: recognized_text = evt.result.text print(recognized_text) # 绑定回调函数到识别器的识别完成事件 speech_recognizer.recognized.connect(recognized_handler)Hello good morning, my name is Arihant. How may I help you? - C# 示例
speechRecognizer.Recognized += (s, e) => { if (e.Result.Reason == ResultReason.RecognizedSpeech) { string recognizedText = e.Result.Text; Console.WriteLine(recognizedText); } };
字符串解析(仅适用于已输出的日志内容提取)
如果你需要从已经打印的完整日志字符串中提取text内容,可以使用正则匹配,匹配规则为text="([^"]*)",Python示例如下:
import re log_str = '''SpeechRecognitionEventArgs(session_id=e28f6907838640e191f214035d69f5e0, result=SpeechRecognitionResult(result_id=c27fa5b36bcd466f8162ca3c6ce5f935, text="Hello good morning, my name is Arihant. How may I help you?", reason=ResultReason.RecognizedSpeech))''' match_res = re.search(r'text="([^"]*)"', log_str) if match_res: text_content = match_res.group(1) print(text_content)
你提供的识别输出翻译如下:
- 语音识别事件参数(会话ID=e28f6907838640e191f214035d69f5e0,结果=语音识别结果(结果ID=c27fa5b36bcd466f8162ca3c6ce5f935,文本="Hello good morning, my name is Arihant. How may I help you?",状态=已识别语音))
- 已取消 语音识别取消事件参数(会话ID=e28f6907838640e191f214035d69f5e0,结果=语音识别结果(结果ID=5681af6a81994a76a11b7e94307c7c2e,文本="",状态=已取消))
- 正在关闭 会话事件参数(会话ID=e28f6907838640e191f214035d69f5e0)
内容的提问来源于stack exchange,提问作者Arihant Jain
相关产品推荐
相关产品推荐

