audio - WAV 文件:如何存储数据子块
问题描述
我目前正在尝试了解如何处理和存储 WAV 文件。我看过的大多数资源都清楚地解释了如何处理头块,但没有解释数据(这是我发现最有用的资源)。从我正在检查的 WAV 文件中,我得到:
NumChannels = 2
SampleRate = 44100 BitsPerSample
= 16
Subchunk2Size = 2056192(11.65s 音频文件)。
NumSamples = 514048
所以据我了解,每秒播放 44100 个样本,每个样本都是 16 位的。本次录音共有 514048 个样本。但是频道的数量呢?这对读取数据有何影响?我提到的资源显示:
但我不太明白这是什么意思。这不是显示样本是 32 位的吗?那么左右声道呢?他们不会交替吗?为什么他们在切换到另一个频道之前是 2 人一组?
解决方案
该图有些不清楚,但这是我从中了解到的,以及您提供的其他信息:
- 每个椭圆包含 16 位(两个字节,四个十六进制数字),所以一个样本;
- 有成对的样本;
- 标签“右通道样本”指向每对的右侧样本;
- 同样,“左通道样本”指向左侧样本。
所以在我看来左右通道样本确实交替出现。
至于编号,我想是为了表明第一对样本在各自的通道中都是“样本 2”,然后是“样本 3”对,依此类推。我会将它们标记为“样本对 2”等。
推荐阅读
- vue.js - 如何在 vue composition api 中使用激活和停用?
- python-3.x - Jupyter Notebook 没有输出。未显示错误
- go - 使用 Go 客户端测试 GraphQL Go 服务器
- amazon-web-services - 每月最后一天的 AWS 自动快照计划
- sql - SQL 连接由第三个交叉表连接的两个表
- postgresql - 在 Postgres 11.7 中将 ORDINALITY 添加到扩展的 JSON 数组
- windows - 如何在任务栏按钮中显示进度?
- z3 - z3py 中的参数数据类型
- php - 使用 Queue 或 Schedule 来完成这个转换工作更好吗?
- sql - 大家好,我正在使用 apex 19.1 创建经典报告时遇到一些错误