SFSpeechRecognizer多种语言

时间:2019-05-23 08:07:10

标签: ios swift speech-recognition voice-recognition sfspeechrecognizer

我正在建立一个支持语音识别并将语音转换为文本的搜索,因此我正在使用SFSpeechRecognizer。但是问题是我需要同时支持多种语言,例如(“ en_US,” fr“,viar)。

主要思想是,用户可以说一个英语单词,另一个可以说法语,我希望引擎能够检测到这一点。

当前,我正在使用它来设置主要语言

英语:

private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "en_US"))!

法语:

 private let speechRecognizer = SFSpeechRecognizer(locale: Locale.init(identifier: "fr"))!

每种语言我都需要分别设置。

有没有办法让SFSpeechRecognizer同时支持多种语言?

1 个答案:

答案 0 :(得分:0)

老问题,但没有答案...

您不能仅在一个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
})

以此类推...

对于您的特定请求:

主要思想是用户可以说1个英语单词 另一个是法语,我希望引擎能够检测到。

我深感您需要处理所有输出并进行比较。无论如何,我注意到如果我设置了一种语言环境(例如意大利语),然后用户说英语,系统也会获得一些英语。这仅适用于英语...我不确定,但是我想无论您设置的语言环境如何,默认情况下始终会理解英语。