我目前正在开展一个关于语音识别的项目,并使用WebAPI翻译成另一种语言。英语到任何语言都已完成,但我想用其他语言进行识别。
Speech Framework只识别英语吗?我可以将此框架用于其他语言吗?
感谢您的帮助!
答案 0 :(得分:4)
Speech Framework是否只识别英语?
不,不,如Apple Speech Recognition API Session中所述 (2点55):
“iOS 10支持超过50种语言和方言......”
此外,改编自Speech Framework Documentation:
Speech API通过与之通信来执行语音识别 Apple的服务器或使用设备上的语音识别器(如果有)。 查明语音识别器是否适用于特定的 语言,您采用 SFSpeechRecognizerDelegate 协议。
SFSpeechRecognizerDelegate
协议只包含一个可选方法:
speechRecognizer(_:availabilityDidChange:):
告知代表语音识别器的可用性 改变。
你可以实现 - 例如:
func speechRecognizer(_ speechRecognizer: SFSpeechRecognizer, availabilityDidChange available: Bool) {
if available {
// you could display is as enabled in the app
} else {
// you could display is as disabled in the app
}
}
实施此方法的实际目的是跟踪可用性更改,如果语音识别可用,则available
将设置为true
。
答案 1 :(得分:3)
试试这个:
SFSpeechRecognizer(locale: Locale.init(identifier: "vi"))
identifier
是您要使用的语言。语言指示符示例:
//English : en
//French : fr
//Japanese : ja
//VietNamese : vi
答案 2 :(得分:3)
只需运行print(SFSpeechRecognizer.supportedLocales())
即可获得
[es-419(固定),th-TH(固定),ca-ES(固定),fr-BE(固定),de-CH (固定),sk-SK(固定),en-ZA(固定),es-CL(固定),hi-IN(固定), zh-CN(固定),zh-TW(固定),da-DK(固定),hi-IN-translit(固定), el-GR(固定),he-IL(固定),pt-BR(固定),en-AE(固定),pt-PT (固定),fr-CH(固定),ro-RO(固定),vi-VN(固定),en-SA(固定), pl-PL(固定),es-US(固定),hi-Latn(固定),en-SG(固定),tr-TR (固定),hr-HR(固定),ko-KR(固定),uk-UA(固定),it-CH(固定), ar-SA(固定),id-ID(固定),en-IN(固定),es-ES(固定),de-AT (固定),en-IE(固定),cs-CZ(固定),es-CO(固定),zh-HK(固定), sv-SE(固定),en-PH(固定),en-ID(固定),en-CA(固定),nl-NL (固定),yue-CN(固定),en-NZ(固定),en-GB(固定),ja-JP(固定), it-IT(固定),ru-RU(固定),en-US(固定),ms-MY(固定),es-MX (固定),hu-HU(固定),fr-CA(固定),wuu-CN(固定),de-DE(固定), fr-FR(固定),fi-FI(固定),nb-NO(固定),nl-BE(固定),en-AU (固定)]
答案 3 :(得分:1)
我花了几个小时寻找一种解决方案,以一种人类可读的形式获得所有受支持的语言,这对我很有效。 首先,为语言创建模型:
struct SupportedLanguage {
let code: String?
let name: String?
}
接下来在SFSpeechRecognizer.supportedLocales()
中运行“ for”循环,创建SupportedLanguage
实例并将其添加到数组availableLanguages
中:
let availableLanguages: [SupportedLanguage] = []
for locale in SFSpeechRecognizer.supportedLocales() {
let language = SupportedLanguage (
code: locale.languageCode,
name: Locale.init(identifier: "en").localizedString(forIdentifier: locale.identifier)
)
availableLanguages.append(language)
}
就是这样-对于每种语音框架支持的语言,您都有SupportedLanguage
实例的数组。可以巧妙地选择语言。
答案 4 :(得分:0)
//Usage for Locales
SFSpeechRecognizer(locale: Locale.init(identifier: "vi"))
//list to get all supported Locales
SFSpeechRecognizer.supportedLocales()