Swift:如何将文本转换为语音生成的音频转换为.mp3?

6
我已经使用AVSpeechSynthesizer将文本转换为语音。当点击播放时,转换后的语音会播放。我不知道这个音频文件的扩展名。
我的目标是将创建的音频文件转换为.mp3格式。我在Google上搜索了一下,但没有找到任何有用的信息。欢迎提供帮助。

我的代码如下:将文本转换为语音。

text = UserDefaults.standard.string(forKey: "TextString")!
voice = selectCountryDic["Clanguage"]!
let speechText = AVSpeechUtterance(string:text)
speechText.voice = AVSpeechSynthesisVoice(language:voice)

let synthesizer = AVSpeechSynthesizer()
synthesizer.speak(speechText)
1个回答

5

2021-02-20 更新:
现在可以做到了,请参见此贴: AVSpeechSynthesizer output as file?

2017 年回答(已过时):
一个简单的策略是首先将AVSpeechSynthesizer的输出保存到目录中,然后更改其格式。
但据我所知,AVSpeechSynthesizer不允许您保存输出。 我建议您查看以下帖子:Save audio stream to mp3 file (iOS)
引用IanStallings的话:

不幸的是,没有公共 API 可以捕获扬声器输出,并且查看 AVSpeechSynthesizer 和相关类的文档,我没有找到从中捕获任何音频的方法。您可能想要查看第三方库来帮助解决此问题。

另一篇帖子:AVSpeechSynthesizer output as file?
再次引用Bhumit Mehta的话:

截至目前 AVSpeechSynthesizer 不支持此功能。使用 AVSpeechSynthesizer 无法获取音频文件。我几周前为我的一个应用程序尝试过这个功能,并发现这是不可能的,而且在 iOS 8 中,AVSpeechSynthesizer 没有任何变化。


现在可以实现了:https://dev59.com/rV8e5IYBdhLWcg3wNYQn - Daniel
感谢你指出来,@Daniel!我会相应地更新我的回答。 - mert dökümcü

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接