问题标签 [riff]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 从字节数组中提取 WAV 文件
发送 REST 请求后,服务器会返回一个非常长的字符串,如下所示:
RIFF\nt WAVEfmt ...(a lot of extra characters)
这应该是一个 .wav 文件。从那里我得到一个使用Java的字节数组:
byte[] audio = restResponse.getResponseBody().getBytes();
它返回如下内容:
[82, 73, 70, 70, 10, 116, 32, 0, 87, 65, 86, 69, 102, 109, 116, 32, 18...
之后,我将该数组写入文件:
FileUtils.writeByteArrayToFile(new File("C:/Users/user/Desktop/temp.wav"), audio);
问题是,我尝试了 2-3 个音频播放器 + 将原始数据导入 Audacity(尝试了不同的频率、频道……),但我听到的只是静态的。
go - 从 url 存储图像时如何编写 RIFF 块头?
我只是尝试从 url 下载 webp 图像,但是当我尝试处理存储的图像时发现了一些不同的东西。
如果我从浏览器下载图像,可以使用x/image/webp
包对其进行解码,但是如果我使用存储图像http.Get()
然后创建一个新文件然后创建io.Copy()
图像,它会显示:
“缺少 RIFF 块头”
我假设我在使用 golang 代码存储它时需要编写一些 RIFF 块头。
这是网址IMG 网址
c++ - 对于 AIFF 格式的数据块中的字节,二进制补码如何工作?
我知道数据块应该保存音频样本。它在规范中说它们是互补的,但我无法弄清楚它在上下文中是如何工作的。有谁知道这对 AIFF 文件是如何工作的?
c++ - 处理 .wav 文件时输出失真
我想处理一个 .wav 文件,例如降低幅度;当我使用以下代码时,输出会失真,这并不令人愉快。
如何修复失真?
audio - PCM / WAVE 文件样本到实际声音/频率
我开始接触数字音频和波形文件格式/pcm,我想我理解了。但我不明白你如何从文件中的值转换为“实际”音频的部分获得频率。并且无法在互联网上找到它。
所以在波形文件中我的采样率有点深,现在我想从中得到一个准确的频率。
我将十六进制值修改为完全相同(肯定是在标题之后),预计会听到稳定的音调。但它没有用。所以我的另一个结论是我必须调制实际的“波”。如果我有 8k hz 的采样率,我可以通过在每秒 8k 次所选位深度的范围内选择一个值来定义“强度”。并且必须像 Wave 一样“绘制”以获得正弦音,如果我想让它更响亮,我会用更高的值绘制相同的东西,例如 0 到 256 的 8 位。
立体声是如何保存的?第一个左声道,然后是右声道,还是像一个左声道采样右声道?
如果文件中的信息字节多于数据块中给出的信息,会发生什么?我觉得音频在定义的值之后就停止了,对吗?
抱歉英语不是我的母语希望你能理解
ios - 如何从 Swift 中的 wav 文件中删除 riff 标头?
我只想拥有 .wav 文件的数据块并排除所有其他块,即 riff 标头。
我确实尝试过,但由于某种原因,在实际音频之前仍有一些包袱。谁能帮我解决这个问题。如果有一种有效的方法来读取 .wav 文件并且只包含数据部分?
wav - RIFF/Wav 标头中的“LIST”块是什么?
我正在编写一个 wav 播放器,我正在使用这个文件格式规范:http ://soundfile.sapp.org/doc/WaveFormat/ 。
如您所见,它期望:
- 一个初始的“Riff Chunk”(告诉我们这是 wav 文件还是其他 RIFF 文件类型)
- 后面是“格式”块(它告诉我们比特率和通道数等信息)。
- 后跟一个“数据”块,其中包含所有音频数据。
我有一个音频文件,它在格式块和数据块之间有一个“列表”块,当我对文件进行十六进制编辑时,您可以直观地看到:
这个 LIST 块是什么,它是某些标准化文件格式的一部分,是否有某个地方有解析它的信息?
c++ - 如何正确读取所有 wav 文件的正确 Riff Wav fmt 标头数据
我有一个程序可以从使用 RIFF wav fmt 的 .wav 文件中读取诸如通道数等标题信息。我想让它与 riff wav fmt 之后的任何 .wav 扩展文件兼容。这是我到目前为止的代码。
WaveReader.h:
WaveReader.cpp
我在使用此代码时遇到的问题是它并不总是自己读取每个 .wav 文件的正确信息,我必须使用 fseek 函数来定制 fread 函数以从每个文件中读取正确的标头数据具体文件。
如果我不使用 fseek 函数,程序会从大多数 .wav 文件中读取正确的数据,但少数除外。
有没有一种方法我不必使用 fseek 函数来使该程序与任何 RIFF wav fmt 文件兼容?
编辑:我使用在线 .wav 文件阅读器手动选择了 fseek 偏移量,然后我使用 Visual Studio 查看了标头数据的偏移量。
在上下文中,根据在线 .wav 文件阅读器,其中一个文件的通道数为 2,该程序的通道数为 5200,BitsPerSample 等于 2。因此,使用 fseek(InFile, 12, SEEK_SET)
标题数据后读取的数据是正确的。
c++ - 解析 Riff wav 标头
我有一个程序应该读取所有 wav 文件的元数据。我使用了以下解析的 struct 和 fread 函数。
这段代码遇到的问题是,对于一些 .wav RIFF 标头 fmt 文件,即使在解析如下所示的结构之后,读取的元数据也不正确,如果我在每个读取函数之间使用 fseek 函数会有所帮助。
我使用多个结构的原因是为了确保正确读取头文件的所有数据,因为尽管大多数 wav 文件头数据是有序的,但这有时不是真的。