2017-07-03 74 views
0

我目前的想法是在C#或Python中编写一个小型音频转换器(例如FLAC到MP3或m4a格式)应用程序,但是我的问题是我根本不知道音频转换是如何工作的。音频转换器如何工作?

经过研究,我听说过模拟到数字/数字到模拟转换器,但我想它会是数字到数字或类似的东西,不是吗?

如果有人能够精确地解释它是如何工作的,将不胜感激。

谢谢。

回答

0

数字音频被称为PCM,它是任何音频处理系统的基本原始音频格式...它的未压缩...只是一系列整数,表示曲线的每个样本的音频曲线的高度(Y轴,其中时间是沿着这条曲线的X轴)

...这个PCM音频使用一些编解码器压缩,然后捆绑在一个容器内,通常与视频或元数据通道一起...所以将音频从A转换到B您首先需要了解容器规格以及压缩音频编解码器,以便您可以将音频A解压缩为PCM格式...然后执行相反的操作...将PCM压缩到B的编解码器,然后将其捆绑到B的容器中

在进一步探讨这个之前,我建议你掌握WAVE音频文件的艺术...... WAVE的美妙之处在于它只是一个44字节的头部,后面是音频曲线的未压缩整数......编写一些代码来读取WAVE然后解析头文件(识别比特深度,采样率,通道数量,字节顺序),使您能够遍历每个样本...通过将您的字节发送到输出WAVE文件来证明其工作... diff输入WAVE对输出WAVE,因为它们应该是相同的......一旦掌握了你准备冒险进入你的上述目标

现代音频压缩算法利用人们如何感知声音丢弃信息的知识,这是不可分辨的(有损),而不是无损算法它保留了源的所有信息负载... opus(http://opus-codec.org/)是目前最受欢迎的编解码器,其被专利所污染并且是开源的