Swift - 如何将Saved Audio文件对话转换为Text?

Ali*_*RAL 4 speech-recognition text-to-speech avaudioplayer ios swift

我致力于语音识别.我用IOS框架解决了文本到语音和语音到文本的问题.但现在我想将保存的音频文件对话转换为文本.我怎么解决这个问题?谢谢你的回复.

Sag*_*han 11

我一直致力于为我工作的同样的事情.

我的项目包中有音频文件.所以我写了下面的代码来将音频转换为文本.

let audioURL = Bundle.main.url(forResource: "Song", withExtension: "mov")

let recognizer = SFSpeechRecognizer(locale: Locale(identifier: "en-US"))
let request = SFSpeechURLRecognitionRequest(url: audioURL!)

request.shouldReportPartialResults = true

if (recognizer?.isAvailable)! {

    recognizer?.recognitionTask(with: request) { result, error in
        guard error == nil else { print("Error: \(error!)"); return }
        guard let result = result else { print("No result!"); return }

        print(result.bestTranscription.formattedString)
    }
} else {
    print("Device doesn't support speech recognition")
}
Run Code Online (Sandbox Code Playgroud)

首先从存储音频文件的位置获取音频URL.然后SFSpeechRecognizer使用您想要的语言环境创建实例.创建其实例SFSpeechURLRecognitionRequest用于请求recognitionTask.

recognitionTask会给你结果和错误.结果包含的地方bestTranscription.formattedString.formmatedString是你的音频文件的测试结果.

如果设置request.shouldReportPartialResults = true,这将给出每行的部分音频结果.

我希望这能帮到您.