Arrays 如何在JS中连接缓冲区数据和写文件?

Arrays 如何在JS中连接缓冲区数据和写文件?,arrays,speech-to-text,azure-speech,Arrays,Speech To Text,Azure Speech,我使用Azure语音SDK将一组文本文件转换为语音。成功转换所有文本,并为每个文本返回ArrayBuffer实例。然后,我将它们转换为缓冲区,并将所有缓冲区与Buffer.concat()连接成一个缓冲区。然后我将连接的缓冲区数据传递给fs.writeFile()以创建一个mp3文件。但是,音频文件中只包括第一个缓冲区,而不是连接的缓冲区。 我该怎么办?为了提供一点背景,音频文件通常包括一些包含音频信息的头数据(例如采样率、音频通道数等),然后是实际的音频数据。一般来说,每个音频文件应该只有一个

我使用Azure语音SDK将一组文本文件转换为语音。成功转换所有文本,并为每个文本返回ArrayBuffer实例。然后,我将它们转换为缓冲区,并将所有缓冲区与Buffer.concat()连接成一个缓冲区。然后我将连接的缓冲区数据传递给fs.writeFile()以创建一个mp3文件。但是,音频文件中只包括第一个缓冲区,而不是连接的缓冲区。
我该怎么办?

为了提供一点背景,音频文件通常包括一些包含音频信息的头数据(例如采样率、音频通道数等),然后是实际的音频数据。一般来说,每个音频文件应该只有一个头

如果您只是将音频数据连接在一起,媒体播放器将读取第一个文件的标题。因为它不包含任何关于连接的其他音频文件的信息,所以会出现一些不确定的行为。它可能只播放第一个文件中的音频,它可能会给您一个错误,或者它可能会尝试将剩余音频文件的头部分作为音频数据播放(这是不正确的)

为了使事情正常工作,您需要更新标题以反映所有音频数据,并去掉剩余的标题。您还需要确保字节对齐、格式化等。。。您所有的音频数据中有一个是一致的


在这里,您最好使用一些了解如何读取和解析音频文件的软件来缝合文件。使用您选择的搜索引擎进行搜索(例如,组合mp3文件)应该会有所帮助。

非常感谢。这真的很有帮助。问题是由于标题不一致造成的。