SFSpeechRecognizer 多种语言

问题描述 投票:0回答:2

我正在构建一个支持语音识别并将语音转换为文本的搜索,因此我使用

SFSpeechRecognizer
。但问题是我需要同时支持多种语言比如("
en_US
", "
fr
",
vi
,
ar
).

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

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

英语:

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

法语:

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

每种语言我都需要单独设置。

有没有办法让

SFSpeechRecognizer
同时支持多种语言?

ios swift speech-recognition voice-recognition sfspeechrecognizer
2个回答
1
投票

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

您不能在一个

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 个英语单词 另一个是法语,我希望引擎能够检测到这一点。

恐怕您需要处理所有输出并比较它们。无论如何,我注意到,如果我设置一种语言环境(例如意大利语),然后用户用英语说话,系统也会得到一些英语。这仅适用于英语...我不确定,但我想无论您设置什么区域设置,默认情况下总是可以理解英语。


0
投票

多语言同时识别似乎还是不行。我将语言环境设置为中文,如果说话者将英语与中文混合,它确实可以识别一些英语,但如果说话者只用英语说一些东西,识别器就会感到困惑。

© www.soinside.com 2019 - 2024. All rights reserved.