Jho*_*awk 5 speech-recognition voice-recognition ios swift sfspeechrecognizer
我正在构建一个支持语音识别并将语音转换为文本的搜索,因此我正在使用SFSpeechRecognizer
. 但问题是我需要同时支持多种语言比如(" en_US
", " fr
", vi
, ar
)。
主要思想是用户可以说一个英语单词,另一个法语单词,我希望引擎能够检测到这一点。
目前,我正在使用它来设置我的主要语言
英语:
private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en_US"))!
Run Code Online (Sandbox Code Playgroud)
法语:
private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "fr"))!
Run Code Online (Sandbox Code Playgroud)
每种语言我都需要单独设置。
有没有办法SFSpeechRecognizer
同时支持多种语言呢?
老问题,但还没有答案......
您不能在一个 s 中使用更多语言环境SFSpeechRecognizeer
,但您可以SFSpeechRecognizer
同时管理多个 s,如下所示:
let italian = SFSpeechRecognizer(locale: Locale(identifier: "it-IT"))
let english = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))
Run Code Online (Sandbox Code Playgroud)
为所有这些设置委托:
italian.delegate = self
english.delegate = self
Run Code Online (Sandbox Code Playgroud)
根据需要创建双重、三重或多重逻辑,例如:
self.recognitionTaskOne = italian?.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
// Your code
})
self.recognitionTaskTwo = english?.recognitionTask(with: recognitionRequest, resultHandler: { (result, error) in
// Your code
})
Run Code Online (Sandbox Code Playgroud)
等等...
对于您的具体要求:
主要思想是用户可以说一个英语单词,另一个法语单词,我希望引擎能够检测到这一点。
我担心您需要处理所有输出并比较它们。无论如何,我注意到,如果我设置一种语言环境(例如意大利语),然后用户用英语说话,系统也会得到一些英语。这仅适用于英语...我不确定,但我想无论您设置什么区域设置,默认情况下总是可以理解英语。