根据最佳做法,google documentation中建议了以下信息 .
“Cloud Speech API包含非常大的词汇表 . 但是,如果专有名称或特定领域的单词不在词汇表中,您可以将它们添加到提供给请求的speechContext的短语中 . “
所以,我在google sample application中的speechContextsArray中添加了短语,如下所示:
let recognitionConfig = RecognitionConfig()
recognitionConfig.encoding = .linear16
recognitionConfig.sampleRateHertz = Int32(sampleRate)
recognitionConfig.languageCode = "en-US"
recognitionConfig.maxAlternatives = 0
recognitionConfig.enableWordTimeOffsets = false
// My line:
recognitionConfig.speechContextsArray = [["phrases": ["BalaKrishnan", "Liu Xiang", "Tirupati", "Pushpanathan", "Ashraf"]]]
但是当我从示例应用程序点击开始流式按钮时遇到了运行时问题:
***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [_ TtGCs26_SwiftDeferredNSDictionarySSGSaSS__ isInitialized]:无法识别的选择器发送到实例0x60000023c3a0'
阅读下面的行:
let streamingRecognizeRequest = StreamingRecognizeRequest()
streamingRecognizeRequest.audioContent = audioData as Data // crash here - on run time
我现在应该怎么做?我将实现语音到文本功能,以搜索数据库中的人名 . 所以,我的输入始终是任何语言的任何人名 . 所以,请给出如何添加短语的解决方案 . 并建议任何其他语音文本最佳服务 .
1 回答
我遇到了同样的问题,但后来注意到
recognitionConfig.speechContextsArray
需要一个speechContext
的数组,而不是短语本身 .这是我的解决方案: