微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

语音识别无法识别所有单词

如何解决语音识别无法识别所有单词

我正在尝试使用 SFSpeechRecognizer 来识别单个 (!) 口语中的中文单词。到目前为止,这种认可是有效的,但我对认可的结果并不满意。系统无法识别某些单词。例如中文单词“nèi / 内”。它不认识这个词,而是其他一些听起来很熟悉的词,例如“mei,lei,...”。如前所述,我只需要检测一个单词。没有句子或其他东西。系统似乎没有检测到这个词,因为这个词经常在上下文中与其他词一起使用,而从不单独使用。但是对于我的用例,我需要单独识别这个单词。我还尝试检查每个段的所有 transcriptionsubstring + alternativeSubstrings,而不仅仅是 bestTranscription,但没有任何帮助。 有没有什么参数可以设置“我只想识别一个词,没有上下文,没有连续流”?

let audioEngine = AVAudioEngine()
let speechRecognizer: SFSpeechRecognizer? = SFSpeechRecognizer(locale: Locale.init(identifier: "zh-CN"))
let request = SFSpeechAudioBufferRecognitionRequest()
var recognitionTask: SFSpeechRecognitionTask?

    func recognizeSpeech() {
    let node = audioEngine.inputNode
    let recordingFormat = node.outputFormat(forBus: 0)
    audioEngine.inputNode.removeTap(onBus: 0)
    node.installTap(onBus: 0,bufferSize: 1024,format: recordingFormat) { buffer,_ in
        self.request.append(buffer)
    }
    
    audioEngine.prepare()
    do {
        try audioEngine.start()
    } catch {
        return print(error)
    }
    
    guard let myRecognizer = SFSpeechRecognizer() else { return }
    if !myRecognizer.isAvailable { return }

    recognitionTask = speechRecognizer?.recognitionTask(with: request,resultHandler: { (result,error) in
        if let result = result {
            let pinyinArray = result.transcriptions.map { $0.formattedString.transformToPinyin() }
            self.recognizedWord = pinyinArray.joined(separator: ",")
            self.recognitionTask?.finish()
        } else if let error = error {
            print(error)
        }
    })
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。