swift - 语音识别语音分析返回 Null (Swift iOS 13)
问题描述
我正在使用 iOS 13 的语音识别,但它没有返回正确的语速、平均暂停时间或语音分析。
口语已正确打印出来,但这是我打印出的段信息:
段:,substringRange={0, 2},timestamp=0,duration=0,confidence=0,substring=So,alternativeSubstrings=(),phoneSequence=,ipaPhoneSequence=,voiceAnalytics=(null)
谢谢你的帮助!
func startSpeechRecognition() throws{
if let recognitionTask = recognitionTask {
recognitionTask.cancel()
self.recognitionTask = nil
}
try audioSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
try audioSession.setMode(AVAudioSessionModeMeasurement)
try audioSession.setActive(true, with: .notifyOthersOnDeactivation)
recognitionRequest = SFSpeechAudioBufferRecognitionRequest()
let inputNode = audioEngine.inputNode
if speechRecognizer.supportsOnDeviceRecognition {
print("support on device recognition")
recognitionRequest?.requiresOnDeviceRecognition = true
}
guard let recognitionRequest = recognitionRequest else {
fatalError("Unable to created a SFSpeechAudioBufferRecognitionRequest object")
}
recognitionTask = speechRecognizer.recognitionTask(with: recognitionRequest) { result, error in
if let result = result {
let bestString = result.bestTranscription.formattedString
self.spokenWords = bestString
if self.spokenWords != nil{
self.numberOfWordsRecorded = self.spokenWords!.components(separatedBy: .whitespacesAndNewlines).count
print(bestString)
}
for segment in result.bestTranscription.segments {
print("segment: \(segment)")
}
}
}
}
解决方案
最终的工作是将 SFSpeechRecognizer 语言环境从
var speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en_US"))!
至
var speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!
推荐阅读
- c++ - 确定数组是否可以旋转 3 个连续的数组元素进行排序?
- vim - Vim 8.1 语法高亮已消失
- javascript - 在 React 事件处理程序中使用参数来操纵特定状态
- python - 如何使用 GloVe 生成向量矩阵?
- opentok - 使用 tokbox api 流式传输 pdf 或图像
- c++ - 对有关“按引用调用函数”的声明感到困惑。
- applescript - 链接到转义键的对话框“取消”按钮
- mysql - 存储具有可变数量字段的电子邮件列表
- case-sensitive - 如何使 spaCy 不区分大小写
- json - 有没有办法如何使用带有 sqlite 后端的 flask_sqlalchemy 保存 json