ios - Swift - 如何将保存的音频文件对话转换为文本?

标签 ios swift speech-recognition avaudioplayer text-to-speech

我从事语音识别方面的工作。我用IOS框架解决了文字转语音和语音转文字的问题。但现在我想将保存的音频文件对话转换为文本。我该如何解决这个问题?感谢大家的回复。

最佳答案

我做过同样适合我的事情。

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

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")
}

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

recognitionTask 会给你结果和错误。结果包含 bestTranscription.formattedStringformmatedString 是你的音频文件的测试结果。

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

希望对您有所帮助。

关于ios - Swift - 如何将保存的音频文件对话转换为文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49443493/

相关文章:

ios - 如何快速设置文本字段的布局边距?

ios - AVAudioPlayer mp3 文件无法播放

ios - Typhoon:将子类属性从 withFactory:selector: 注入(inject)样式注入(inject)到定义中

swift - 如何在属性 getter 中强制使用钩子(Hook)函数?

audio - 查找音频中单词的时间戳

android - Android 中的连续语音识别

ios - 将字符串格式化为 HH :mm in Swift

objective-c - Swift 版本的 Objective C rstrip : index problems

ios - 无法构建 Objective-C 模块 'zipzap'

xml - 用于语音识别语法规范 (SRGS) 的 XML 编辑器