c - 音频到 8 位文本样本转换

标签 c audio assembly 68000 8-bit

我今天有一个有趣的问题。

我需要将一些 Pokemon 音频文件转换为 8 位样本列表(0-255 值)。我正在 MC6800 芯片组上编写一个汇编例程,需要播放这些声音。我计划包含一个包含 8 位样本的数组,程序在调用函数时将循环遍历该数组。

有人知道将音频文件(wav/mp3)转换为逗号分隔的 8 位文本样本值列表的方法吗?或者这种相对方法的任何方法?

提前非常感谢您!

最佳答案

您可以使用命令行“sox”工具或 Audacity 音频编辑器将文件转换为原始、未签名的 8 位单声道音频文件。

在 Audacity 1.3 或更高版本中,打开音频,然后选择“导出”,选择“Wave、AIFF 和其他未压缩类型”作为格式,然后单击“选项...”- 然后选择“其他...”作为格式, header 为“RAW”,编码为 Signed 8 位 PCM。 (抱歉,未签名不可用。)

从命令行,尝试使用 sox -c 1 表示 1 个 channel ,-t raw 表示无 header ,-u 表示无符号线性,-1 表示每个样本 1 个字节。

然后您可以使用“hexdump”等工具将文件的字节转储为数字并将它们粘贴到您的代码中。

关于c - 音频到 8 位文本样本转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1863049/

相关文章:

assembly - 如何将 NASM "push byte"转换为 GAS 语法?

java - 以 3.5 字节存储纬度

c - 如何在 C 中创建静态 volatile 结构数组?

后台 iOS 文字转语音

c - 优化用于模式填充数组的嵌套循环,以帮助编译器生成高效的 ARM 程序集?

assembly - 是否可以将 ymm16 - ymm31 用于 AVX2 vpcmpeq{size} 指令?

c - MPI_Bcast : Efficiency advantages?

c - 通过 C 将线程固定到 cpuset 中的核心

audio - id3中的同步

iphone - 在IOS核心音频中,如何找到文件播放器音频单元的真实当前播放头位置?