【问题标题】:SFSpeechRecognizer multiple languagesSFSpeechRecognizer 多种语言
【发布时间】:2019-10-09 18:17:09
【问题描述】:

我正在构建一个支持语音识别并将语音转换为文本的搜索,因此我使用的是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同时支持多种语言?

【问题讨论】:

  • 我也在努力实现同样的目标,但我仍然没有运气。你有什么解决办法?请告诉我。
  • 您需要为 Speech to text 创建自己的核心 ml 模型以检测多语言支持。

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


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

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

【讨论】:

    猜你喜欢
    • 2018-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-16
    • 2019-01-20
    相关资源
    最近更新 更多