.wav 文件中的字节代表什么?

2024-01-10

当我将 .wav 文件中的数据存储到字节数组中时,这些值意味着什么? 我读到它们采用两字节表示形式,但是这些两字节值中到底包含什么?


您可能听说过,音频信号是由某种波表示的。如果您曾经见过带有上下直线的波形图 - 这基本上就是这些文件中的内容。看看这个文件图片http://en.wikipedia.org/wiki/Sampling_rate http://en.wikipedia.org/wiki/Sampling_rate

您会看到音频波(灰线)。该波的当前值被重复测量并以数字形式给出。这就是这些字节中的数字。可以通过此调整两个不同的内容:每秒进行的测量次数(即采样率,以 Hz 为单位,即每秒获取的次数)。另一个调整是测量的精确程度。在 2 字节的情况下,一次测量需要两个字节(通常是 -32768 到 32767 之间的值)。因此,利用那里给出的这些数字,您可以重新创建原始波形(当然,质量有限,但在以数字方式存储内容时总是如此)。重新创建原始波形是扬声器在播放时尝试执行的操作。

还有一些事情您需要了解。首先,由于它是两个字节,因此您需要知道字节顺序(大端、小端)才能正确重新创建数字。其次,您需要知道您有多少个频道以及它们是如何存储的。通常您会有单声道(一个通道)或立体声(两个),但也可以有更多。如果您有多个频道,您需要知道它们是如何存储的。通常您会将它们交错排列,这意味着您会在每个时间点为每个通道获得一个值,然后为下一个时间点获得所有值。

举例来说:如果您有两个通道的 8 字节数据和 16 位数字:

abcdefgh

Here a and b将组成第一个 16 位数字,即通道 1 的第一个值,c and d将是通道 2 的第一个数字。e and f是通道 1 的第二个值,g and h通道 2 的第二个值。您不会听到太多,因为这不会接近一秒的数据......

如果将您拥有的所有信息放在一起,您可以计算出您拥有的比特率,即记录器每秒生成多少比特信息。在我们的示例中,您为每个样本的每个通道生成 2 个字节。如果有两个通道,则为 4 个字节。每秒大约需要 44000 个样本来表示人类通常可以听到的声音。所以你最终会得到每秒 176000 字节,即每秒 1408000 位。

当然,它不是 2 位值,而是两个 2 字节值,否则质量会很差。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.wav 文件中的字节代表什么? 的相关文章

  • Java 原始音频输出

    只是想知道Java中是否有像模块这样的库皮奥迪埃 http pyaudiere org 在 Python 中 这仅允许您创建音调并播放它们 如以下示例 Python 代码 device audiere open device tone de
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • 如何比较两个音频数据?

    我会录制自己的声音并将其保存为wav文件在我的电脑中 稍后我会说话 计算机应该将我的语音命令与预先存在 预先录制的 wav 文件相匹配 问题 如何检查两个音频数据是否相等或两个音频之间是否有 80 匹配 if audio1 audio2 D
  • Android 视频循环缓冲区与声音

    我正在使用谷歌的开源示例 Grafika https github com google grafika 我正在使用它ContinuousCaptureActivity java https github com google grafik
  • AudioQueueNewInput 回调延迟

    无论我提供的缓冲区大小如何 提供给 AudioQueueNewInput 的回调都会以大致相同的时间间隔发生 例如 如果您有 0 05 秒的缓冲区并以 44k 录制 则回调将在大约 0 09 秒时首次调用 然后在 0 001 秒 之后立即发
  • 为什么我无法使用 HTML5 音频标签多次播放声音?

    这就是声音的 存储 方式
  • 如何通过触摸按钮在 swift 2 中播放 m4a 文件?

    当我触摸按钮时 如何播放音频文件 我在网上找不到任何东西 因为它都是 swift 1 我想要音频代码original功能 import UIKit import AVFoundation class ViewController UIVie
  • 在Java中一个接一个地播放WAV文件

    我正在尝试玩几个WAV http en wikipedia org wiki WAV文件一个接一个 我尝试了这个方法 for String file audioFiles new AePlayWave file start 但这会同时播放它
  • 音乐分析软件[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 问候 我可能已经想到了这一点 但有人知道 Last fm 之前是否使用某种形式的开源项目对音乐进行分析
  • 在python中将mp4声音转换为文本

    我想将 Facebook Messenger 中的录音转换为文本 以下是使用 Facebook 的 API 发送 mp4 文件的示例 所以这个文件只包含音频 不包含视频 我想将其转换为文本 此外 我希望尽可能快地完成此操作 因为我将在几乎实
  • PlaySystemSound 静音开关打开

    我知道 我必须设置AudioSession到 播放 类别 即使静音开关打开也允许播放音频 这就是我所做的 但打开开关时声音仍然静音 UInt32 sessionCategory kAudioSessionCategory MediaPlay
  • 如何降低iphone的sdk Audioqueue的声音?

    我正在使用 Aran Mulhollan 的 RemoteIOPlayer 在 SDK iphone 中使用音频队列 我可以毫无问题 添加两个信号来混合声音 通过乘以从 wav 文件中获得的 UInt32 来增加音量 但所有其他操作都会给我
  • Android:处理电话中的语音

    我目前正在寻找有关如何在 Android 上操作音频的选项 目标是在通话期间实时处理来自麦克风的音频 最好的解决方案是在本机调用中执行此操作 但重建一个电话应用程序 无 VOIP 也可以 有没有什么方法可以使用 Android API 来实
  • 在 Python 中使用音频流 RTMP 通过管道和 OpenCV 到 FFmpeg

    我正在尝试使用音频流式传输 FFmpeg 我将在下面展示我的代码 导入模块 import subprocess as sp 创建变量 rtmpUrl rtmp a rtmp youtube com live2 key camera path
  • C# 音频库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

    如果我需要能够 播放多个音频文件 具有不同的持续时间 例如 5 到 30 秒 独立设置右 左声道的音量 应用声音效果 如混响 失真 那么 我应该使用哪个 API 另外 我在 AudioTrack API 上找不到太多文档 有谁知道在哪里可以
  • 从 Nodejs 提供二进制/缓冲区/base64 数据

    我在从节点提供二进制数据时遇到问题 我开发了一个名为的节点模块节点说话它执行 TTS 文本到语音 并返回 Base64 编码的音频文件 到目前为止 我这样做是为了转换base64到缓冲区 二进制文件 然后提供它 var src Base64
  • 在网站上不间断地播放 mp3?

    客户请求在整个网站上播放单个曲目 一般来说 我建议不要这样做 但他们坚持这样做 那么 将 Flash 播放器嵌入到网站中并且当用户转到另一个页面时不会出现间隙 中断的最直接方法是什么 我认为需要一个 iframe 我正在使用具有自动恢复功能
  • 无限实时连续传输音频信号,Python

    我有一个简单的问题 在 Python 中从音频插孔流式传输音频信号时 使用 pyaudio 库如何继续流式传输音频信号 直到我选择 停止 程序 示例 我们的方式捕捉我们的网络摄像头 https docs opencv org 3 0 bet

随机推荐

  • 编程语言中的构造函数

    Why constructor不被视为member一个班级的 有什么具体原因吗 感谢致敬 我拒绝这个问题的前提 构造函数isC 中的类或结构的成员 我建议您参考 C 规范的第 3 4 4 节 类成员 其中枚举了类的成员 类声明可以包含 常量
  • 模板模板非类型参数

    我不太确定 C 中是否有这样的功能 如果有的话我似乎无法让它工作 所以我决定问一下 我可以有一个模板模板非类型参数吗 像这样的事情 template
  • 了解如何在没有 C# Cmdlet 定义的情况下将详细或调试字符串消息写入 PowerShell 运行空间

    我有一个 C 类库 它提供了许多可以从 PowerShell 脚本 PS1 和高级模块 PSM1 调用的接口 我有一个静态方法可以使用以下命令将详细消息和调试消息写入控制台System Console class public class
  • 基于 geom_map 或 ggplot2 中的列联表 (2x2) 创建唯一的图例?

    我该如何根据这个列联表来做到这一点 我不完全确定如何根据我制作的指标表 犯罪 在 R 中创建自定义图例 R 中的可重现代码 require maps set seed 123 randomly assign 2 variables to e
  • 如何在MAUI中设置ContentPage全屏(或沉浸式)?

    是否有一个属性可以设置页面全屏显示 在 Xamarin 中 可以为 Android 等设置沉浸式模式 对于Maui项目 不需要再次在ContentPage中设置全屏 在 Android 中设置全屏也可以 您可以在 Maui 项目的 Main
  • iOS 模拟器上缺少语言

    当我运行我的应用程序时 我的 iPhone iPad 模拟器只提供 6 种语言选择 英语 德语 日语 意大利语 西班牙语和匈牙利语 在 Google 上搜索后 似乎应该至少有 18 种语言可供选择 我重新安装了 Xcode 4 3 1 并安
  • 切换到异步网络 API,例如 URLSession

    这是什么意思 我尝试了这个 仍然 它给了我同样的信息 DispatchQueue main async if let imageData try Data contentsOf url self image UIImage data ima
  • 默认 cakephp 库翻译的 .po 文件

    如何将 cakephp 库文件的翻译添加到 default po 文件例如 月份名称 日期的名称 过去的时间 我尝试手动将字符串添加到default po但每次我从default pot更新它 使用poedit 琴弦不见了 请帮我解决它可以
  • Bigquery - 提取包含表情符号的 json 字段?

    在我的 BQ 数据库表中 我有一列名为payload其中包含原始 facebook webhooks JSON 有效负载作为字符串 其中一个包含带有表情符号的文本 例如Sample 在大查询中它看起来像 object page entry
  • 从各种来源选择商品,并按日期订购

    我想实现以下目标 但遇到困难 1 从两个查询 item title 或 item keywords 之一中选择一个项目 从某种意义上说 当用户搜索时 它将查看是否在 item title 或 item keywords 中找到该项目 2 按
  • 获取隐藏列时的最后一个列号

    我需要获取第二行的最后一个列号 而引用的列是隐藏的 如果隐藏最后一列 下面的代码将输出错误的结果 Sub Last column number even is hidden Dim ws As Worksheet lastCol n As
  • 从同一编译单元覆盖 C 中的函数调用

    我在尝试着重写 C 中的函数调用 https stackoverflow com questions 617554 override a function call in c 但是当该函数在同一编译单元中使用时 我遇到了问题 在下面的代码中
  • MBProgressHUD 和 UITableView

    我在填充 TableView 时显示 HUD 但它似乎显示在 TableView 后面 表视图分隔符破坏了 Hud 这是 TableViewController 中的代码 void viewDidLoad super viewDidLoad
  • 删除createMediaElementSource

    我已经用谷歌搜索了这个问题 但找不到任何东西 我现在的情况需要删除source createMediaElementSource这样我就可以再次创建它 我正在使用音频分析器 每次使用 ajax 加载指定曲目时都必须加载该分析器 一旦您转到另
  • 如何定义一个返回其自身类型的 Rust 函数类型?

    我正在学习 Rust 并且仍然非常努力地理解它 考虑以下 Go 定义 type FnType func paramType FnType 它只是一个返回相同类型的函数的函数 Rust 中可以实现类似的功能吗 而且 理想情况下 它可以通用地完
  • 抽象类中内部抽象方法的目的是什么?

    抽象类中内部抽象方法的目的是什么 为什么要在抽象类中创建一个内部抽象方法 如果我们想限制程序集外部的抽象类 为什么我们不直接创建抽象内部类 背后是否还有其他逻辑 Adding internal的成员public抽象类使得不可能继承它abst
  • 是否可以使用 pyscript 在浏览器上运行 pygame 制作的游戏?

    我使用 pygame 制作了一个小型太空入侵者游戏 我想知道是否可以使用 pyscript 在浏览器上玩它 这可能吗 我必须重写所有内容吗 不 PyScript 目前不支持 Pygame 我不确定找出哪些软件包的最佳方法是什么are支持 但
  • 无法授权 Azure LogAnalytics 工作区

    I am trying to connect to my workspace in the Azure Portal I am getting the error as 操作返回无效状态代码 未经授权 creds 对象已获取身份验证令牌 并
  • 隐藏用户输入

    我正在尝试获取一个既可以在本机 Windows shell 中也可以在 cygwin shell 通过 ssh 中运行的脚本 该脚本会提示并读取用户输入的密码 到目前为止 我已经尝试过以下方法 using Term ReadKey and
  • .wav 文件中的字节代表什么?

    当我将 wav 文件中的数据存储到字节数组中时 这些值意味着什么 我读到它们采用两字节表示形式 但是这些两字节值中到底包含什么 您可能听说过 音频信号是由某种波表示的 如果您曾经见过带有上下直线的波形图 这基本上就是这些文件中的内容 看看这