我使用的是iOS 13的语音识别,但没有返回正确的讲话率,平均暂停时间或语音分析。
正确打印了口语单词,但这是我打印出的段信息:
segment:,substringRange = {0,2}, 时间戳= 0,持续时间= 0,置信度= 0,子字符串=因此, 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)")
}
}
}
}
答案 0 :(得分:1)
最终的工作是从
更改SFSpeechRecognizer的语言环境。var speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en_US"))!
到
var speechRecognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))!