Python语言检测API是否支持多语言?如何实现语音转文本自动语种检测
调整方案
核心思路
谷歌语音识别接口本身自带多语种检测能力,不需要额外引入第三方检测工具,仅需要调整recognize_google的调用参数,提取返回结果中自带的语种检测字段即可实现需求。
具体修改步骤
- 移除
recognize_google方法中固定的language='ko'参数,新增show_all=True参数,获取接口返回的完整识别数据,数据中会包含匹配度最高的语种信息 - 从返回的完整数据中提取检测到的语种代码和对应识别文本
- 保留原有翻译和异常处理逻辑即可
修改后完整代码
import speech_recognition as sr from googletrans import Translator from textblob import TextBlob translator = Translator() speech = sr.Recognizer() with sr.Microphone() as source: print("say something!") audio = speech.listen(source) try: # 开启show_all获取完整返回结果,不固定识别语种 full_result = speech.recognize_google(audio, show_all=True) if not full_result: raise sr.UnknownValueError # 提取匹配度最高的识别结果和对应检测到的语种 best_match = full_result['alternative'][0] detected_lang = full_result['language'] ToTranslate = best_match['transcript'] print("The language used is: " + detected_lang) print("You said: " + ToTranslate) translation = translator.translate(ToTranslate).text print("In english: " + translation) except sr.UnknownValueError: print("Sorry I can't understand you.") except sr.RequestError: print("Error connecting to speech recognition service.")
补充说明
如果需要限制可识别的语种范围,可以给recognize_google传入language_hints参数,传入优先匹配的语种代码列表,例如language_hints=['ko','en','zh-CN'],可提升指定语种的识别准确率。
内容的提问来源于stack exchange,提问作者Daniel Bueno
相关产品推荐
相关产品推荐

