Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 音频波形到整数序列_C++_Audio_Waveform - Fatal编程技术网

C++ 音频波形到整数序列

C++ 音频波形到整数序列,c++,audio,waveform,C++,Audio,Waveform,我需要从音频文件创建一个整数序列。我正在检查波形库,以便绘制线性图。但是我在搜索关键信息,用来绘制图形的整数的来源是什么?是振幅吗?频率还是别的什么?有可用的库,但我需要知道我需要提取什么信息单位才能将数据提供给图表。然而,绘制图表不是我的目标。我只需要原始整数数组。当然,这是获得波形图所需的振幅,这是PCM数据存储在wav文件中的方式,例如(直接位于文件头之后的数据)。请注意,有8位和16位格式,后者也可能是大端或小端,具体取决于字节顺序(只是为了让您了解它).音频只是一条曲线-当你在X轴上绘

我需要从音频文件创建一个整数序列。我正在检查波形库,以便绘制线性图。但是我在搜索关键信息,用来绘制图形的整数的来源是什么?是振幅吗?频率还是别的什么?有可用的库,但我需要知道我需要提取什么信息单位才能将数据提供给图表。然而,绘制图表不是我的目标。我只需要原始整数数组。

当然,这是获得波形图所需的振幅,这是PCM数据存储在wav文件中的方式,例如(直接位于文件头之后的数据)。请注意,有8位和16位格式,后者也可能是大端或小端,具体取决于字节顺序(只是为了让您了解它).

音频只是一条曲线-当你在X轴上绘制它时,Y轴是振幅-类似于绘制一个正弦数学函数-曲线上的每个点都是一个存储在音频文件中的数字-WAV格式此数字通常是一个16位无符号整数-因此忽略44字节的头-文件的其余部分只是一个数字这些整数的序列。当该曲线随时间快速上下变化时,频率高于曲线随时间缓慢变化时的频率。如果下载audio workbench应用程序:Audacity,您可以查看任何音频文件(WAV、mp3等)的此曲线。

取决于您所谈论的音频文件的类型
.wav
非常简单(固定间隔的振幅)。压缩格式更复杂,但大多数使用某种变换(DCT、FFT等)将单个样本转换为基于频率的编码。任何类型都可以,我只需要知道过程。我同意,既然这样,你们需要处理。那个么频率在音乐中扮演什么角色呢?你能详细说明一下吗?粗略地说,快速变化的“局部振幅”产生一个包含各种频率的信号,可以用傅里叶级数表示。至于音乐,440赫兹是音叉的标准频率。在计算中,波形只是一组离散样本。那么频率在音乐中的作用是什么?如果它的幅值都在一张纸上,一个周期的正弦曲线——穿过它的360度,从左到右用整个纸张——让我们认为它是一个低频率,相对于当你画10个这样的循环在纸上时,振幅是曲线的高度,频率只是一个高数的计数。每单位时间的低振幅点-每秒的周期数-查找赫兹能够看到音频曲线可能会有所帮助-安装应用程序:Audacity并打开各种WAV、mp3音频文件-它可以让您在显示音频曲线的同时听到-简短的回答是-您可以控制的唯一变量是振幅,振幅变化的速度决定了频率-详情请参见: