我正在构建一个支持语音识别和将语音转换为文本的搜索,所以我使用了SFSpeechRecognizer。但问题是,我需要同时支持多种语言,例如("en_US“、"fr”、vi、ar)。
主要的想法是,用户可以说,例如,一个词的英语和其他的法语,我希望引擎检测到这一点。
目前,我正在使用这个设置我的主要语言。
中文:
private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en_US"))!法语:
private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "fr"))!我需要把每一种语言都分开设置。
是否有一种方法使SFSpeechRecognizer同时支持多种语言?
发布于 2020-10-08 08:40:54
老问题,但还没有答案..。
您不能只在一个SFSpeechRecognizeer中使用更多的区域设置,但是可以同时管理多个SFSpeechRecognizer,如下所示:
let italian = SFSpeechRecognizer(locale: Locale(identifier: "it-IT"))
let english = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))为所有这些人设置代表:
italian.delegate = self
english.delegate = self根据需要创建双重、三重或多个逻辑,如:
self.recognitionTaskOne = italian?.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
// Your code
})
self.recognitionTaskTwo = english?.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
// Your code
})等等..。
对于您的具体要求:
主要的想法是,用户可以说,例如,一个词的英语和其他的法语,我希望引擎检测到这一点。
我觉得你需要处理所有的输出并进行比较。无论如何,我注意到,如果我设置一个地区(例如意大利语),然后用户用英语发言,系统也会得到一些英语。这只适用于英语。我不确定,但我想无论你设置什么语言环境,英语都是默认的。
https://stackoverflow.com/questions/56270710
复制相似问题