将浮点数组转换为 Wav 文件 Swift [关闭]

Posted

技术标签:

【中文标题】将浮点数组转换为 Wav 文件 Swift [关闭]【英文标题】:Convert Array of Floats to Wav File Swift [closed] 【发布时间】:2020-06-04 22:57:27 【问题描述】:

我想将浮点数组(一维)转换为音频文件——然后我想将此音频文件发送到带有 put 请求的服务器,因此我需要将其转换为数据。

我怎么能这样做?我看过有关如何将浮点数组转换为 wav 文件的堆栈溢出帖子,如下所示:Write array of floats to a wav audio file in swift

但我不想存储任何东西,只需将其转换为 wav 文件,将其转换为 Data 并通过 Put 请求将其发送到我的数据库。我怎样才能做到这一点?非常感谢您的帮助!!

【问题讨论】:

【参考方案1】:

我建议创建一个临时的AVAudioFile 发送到服务器,并在发送完所有数据后将其删除。这将避免在连接断开或出现其他问题时重新创建文件。它也是一个易于使用的高级 API。

如果您想避免写入文件,可以这样做,但级别要低得多。您可以使用AudioFileInitializeWithCallbacks 创建一个带有基于Data 的自定义回调的AudioFileID,使用ExtAudioFileWrapAudioFileID 包装它,然后在设置客户端数据格式后使用ExtAudioFileWrite 编写浮点数。

【讨论】:

您介意提供一些代码来展示第一个版本的工作原理吗?我似乎无法在网上找到太多关于如何将 AVAudioFile 实际发送到服务器的信息,因为我需要将其转换为 Data。谢谢! 文件写入后,您可以使用Data.init(contentsOf:)将其作为数据读取并正常发送到您的服务器。

以上是关于将浮点数组转换为 Wav 文件 Swift [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将音频数据数组转换为 wav 文件?

Python 将数组转换为 Wav

Python:将 wav 文件写入 numpy 浮点数组

在 C# 中将对象数组转换为浮点数组 [关闭]

使用 Python 将 WEBM 文件转换为 WAV 文件 [关闭]

如何将wav文件转换为浮动幅度