计算机如何处理音频数据? [关闭]

2024-01-10

我使用过多种音频程序,例如 SDL Mixer、Audacity 等,但我想看看这些小音频玩具里面有什么。音频数据如何处理等等。我还看到了它使用的 C++ MP3 播放器的一些示例代码void*对于音频数据。

但所有这些并不能帮助我总体了解音频在计算机中的工作原理。那么有人可以向我解释(或向我介绍一些书籍)计算机如何存储和处理数字音频数据吗? (例如,如果将三角波形存储到 .wav 文件中,该波形如何存储为位模式?)


数字音频存储为一系列数字,称为样本。例子:

5、18、6、-4、-12、-3、7、14、4

如果将这些数字绘制为笛卡尔图上的点:样本值确定沿 Y 轴的位置,样本的序列号(0、1、2、3 等)确定沿 X 轴的位置。 X 轴只是一条单调递增的数轴。

现在,通过刚刚绘制的点绘制一条线。

恭喜,您刚刚渲染了数字音频的波形。 :-)

Y 轴是幅度,X 轴是时间。

“采样率”决定播放设备(例如声卡)在采样中前进的速度。这是样本的“时间价值”。例如,CD 质量的数字音频每秒遍历 44,100 个样本,读取每个样本点的幅度(Y 轴值)。

† 上面的讨论忽略了压缩。压缩对数字音频的本质变化不大。就像压缩位图图像一样,不会改变位图图像的核心性质。 (音频压缩的主题是一个丰富的主题 - 我并不是想过度简化它,只是所有压缩的音频最终在渲染之前都会被解压缩 - 也就是说,作为可听声音播放或绘制为波形 - 在从这一点来看,它的压缩起源并不重要。)

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

计算机如何处理音频数据? [关闭] 的相关文章

  • 如何使用 Soundcloud api 将流传输到 html5 音频播放器中?

    我刚刚开始学习 javascript 作为我的第一次尝试 我想创建自定义音频播放器 它使用 soundcloud 的 api 作为音乐源 到目前为止 这就是我的设置
  • c# AudioFingerprinting 和局部敏感哈希

    我之前发现过类似的帖子 但没有真正回答这个问题 在我的指纹识别中 我生成了一个包含 5 个整数的记录集 例如 33 42 88 121 194 这些对应于特定音乐样本的最高幅度的频率 例如 对于 30ms 的音频样本 我有以下频率的桶 0
  • 在 Windows Phone 8 中以编程方式下载媒体文件

    我们的应用程序是基于视频 音频的应用程序 我们已将所有媒体上传到 Windows Azure 上 但需要方便用户点播下载音视频文件 以便在本地播放 所以我需要以编程方式下载音频 视频文件并将其保存在IsolatedStorage中 我们有每
  • HTML5 音频暂停不起作用

    document getElementById s currentRadio currentSong pause 目前这并没有暂停音频 而播放它效果很好 document getElementById s currentRadio curr
  • 如何在 Android 上的 PhoneGap 中设置音频播放速率?

    有谁能够让音频播放速率在 Android 上工作吗 媒体播放器似乎覆盖 忽略音频标签的播放速率属性 None
  • 使用 iOS 修剪音频

    我想实现一项功能 让用户修剪他之前录制的音频文件 caf 录音部分已经可以工作了 但是我如何添加类似于 Voicememos 应用程序中的修剪功能 苹果使用的音频修剪器有API吗 任何帮助都会很棒 使用 AVFoundation 怎么样 将
  • 播放声音无延迟 iOS

    我找不到如何以低延迟播放真实声音的方法 我尝试使用 AVFoundation 音频播放器 巨大的延迟大约 500 毫秒 所以我尝试创建系统声音 如果运气不好 延迟大约为 200 毫秒 虽然不多 但对我来说没有用 我最多需要 50 毫秒 确保
  • 声音在模拟器中工作,而不是在真实 iPhone 中工作

    有几短音效播放的样本在模拟器中很好 但在真正的 iPhone 中根本不行3GS 以下是 Apple SysSound 示例中的代码 CFBundleRef mb CFBundleGetMainBundle CFURLRef soundFil
  • 在 Android 媒体播放器上播放 MediaStore 中的音频

    有没有办法通过使用 MediaPLayer 播放从 MediaStore 获得的音频 或者我走的方向完全错误 到目前为止 我已经查看了 MediaStore Audio 但没有什么能真正帮助我 我只需要知道我是否走在正确的轨道上 首先 我假
  • 使用 jQuery 1.4 跨平台、跨浏览器播放声音的方式?

    我试图让 jQuery 在元素悬停 单击时播放声音 就像一个没有flash的flash网站 我已经尝试过推荐的方法跨平台 跨浏览器的方式从 Javascript 播放声音 https stackoverflow com questions
  • 如何将 G.726 ADPCM 信号转换为 PCM 信号?

    我通常会使用 SoX 或 Windows 内置的音频库来获取这些内容 但似乎两者都没有 G 726 编解码器 因此 我有一个字节序列 我知道它被编码为 G 726 尽管目前尚不知道比特率以及它是 mu law 还是 A law 实验将确定这
  • 需要在状态改变时关闭MediaRecorder播放的声音

    我已尝试在下面的链接中找到的更改 但没有效果 如何在状态改变时关闭 MediaRecorder 播放的声音 https stackoverflow com questions 6804205 how to shut off the soun
  • 捕获设备活动时未触发 AVAudioSessionInterruptionNotification

    我遇到了问题 AVAudioSessionInterruptNotification 在 iOS 7 0 4 上 我在 NSNotificationCenter 上注册 然后激活 AVAudioSession 一切正常 但如果激活了摄像头
  • pygame.error:此编解码器不支持 set_pos

    我的 python 音频播放器有问题 我使用此功能来暂停正在播放的音乐 def pause event global time pygame mixer music pause time pygame mixer music get pos
  • 如何通过一键或链接切换音频播放()暂停()?

    我有一个在单击锚标记时播放的音频文件 如果再次单击锚标记 我希望音频暂停 我只是对 javascript 了解不够 无法完成后半部分 我不想更改他们单击的锚标记的内容 我只想让音频文件在他们单击标记时启动和暂停 这是我到目前为止所拥有的 它
  • C# 从mp4文件中提取mp3文件

    有没有简单的方法从 mp4 文件中提取 mp3 文件 我已经尝试过更改文件扩展名 但这不允许我编辑 mp3 描述 谢谢你 Use Xabe FFmpeg https xabe net product xabe ffmpeg 它是免费的 非商
  • 将音频从 PC 传输到智能手机?

    2016 年圣诞节 我和我爸爸想用灯光和灯光为我们的社区举办一场灯光秀music We have the lights set up but the music is a problem We don t want to put huge
  • 如何降低iphone的sdk Audioqueue的声音?

    我正在使用 Aran Mulhollan 的 RemoteIOPlayer 在 SDK iphone 中使用音频队列 我可以毫无问题 添加两个信号来混合声音 通过乘以从 wav 文件中获得的 UInt32 来增加音量 但所有其他操作都会给我
  • AVAudioPlayer只能在模拟器中播放,但不能在设备中播放,为什么?! (iPhone-SDK)

    我有以下播放声音的简单代码 NSString soundPath NSBundle mainBundle pathForResource sound ofType wav player AVAudioPlayer alloc initWit
  • C# 音频库 [关闭]

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

随机推荐

  • 如何在 Mac OS 上使用 homebrew 将 postgresql 从 10.1 降级到 9.6 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我的 Mac 上装有 postgresql 10 1 我的工作网站需要 9 6 才能在本地计算机上运行 找不到有关如何卸载或降级到 9 6
  • 如何解决此错误 (GWT)

    运行我的应用程序后出现此错误 编译过程中没有出现错误 另外 没有其他应用程序在运行 在端口 8888 警告 上启动 Jetty 失败 电子邮件受保护 cdn cgi l email protection 8888 java net Bind
  • 如何在java中为游戏实现双缓冲?

    因此 在我正在开发的游戏中 我有一个弹珠跟随鼠标 但当它这样做时 屏幕会闪烁 背景包括两个 jpeg 和 9 个矩形 我该如何进行双缓冲呢 这是主窗口的代码 Write a description of class Window here
  • R:分割数字字符串

    我正在尝试拆分 40 位数字的数字字符串 即拆分123456789123456789123456789 into 1 2 3 4 etc 很遗憾strsplit不起作用 因为它需要字符 并使用转换字符串as character不起作用 因为
  • Zappa/AWS - 电子邮件不会发送并且只是超时

    目前 我已经为我的交易电子邮件提供商 Postmark 尝试了普通的 Django SMTP 和一些不同的基于 api 的 Django 库 当我运行我的开发服务器时 一切都运行良好 通过 Postmark API 发送电子邮件没有任何问题
  • Get-ADPrincipalGroupMembership -Identity 不接受变量

    在几个不同的域中工作 这些域具有不同的命名模式 因此 我正在编写一个进入每个域的脚本 并检查它们的组成员身份 该脚本所做的第一件事是询问用户的姓氏 然后我用Get ADUser选择samaccountname并将其绑定到一个变量 samac
  • .NET 相当于 Java 资源包中的选择吗?

    在Java资源包中 我可能有以下资源包定义 en GB 英式英语 jobs search resultstr There 1 choice 0 are no jobs 1 is one job 1
  • 当有人点击特定链接时如何显示加载对话框?

    我确实有一个 URL 可以打开一个加载速度非常慢的网页 而且我无法控制它 我确实想在有人单击此 URL 时显示加载对话框 或者在发生这种情况时使用覆盖 div 阻止页面 注意 这与 ajax 相关的问题不是同一个问题 这是针对用户的正常 U
  • 如何在artifactory中配置更长的版本号

    我们的 jar 的版本号必须比 x x x 更长 我们宁愿需要 x x x x 来集成一些老式的自制机制 这是因为我们用 x x x 标记我们的软件 一旦我们交付给客户 就必须在此时准确地构建一个特定的 jar 以适应另一个后端 它与我们的
  • 无法将 SCSS 变量设置为 CSS 变量?

    考虑以下 SCSS color black 000000 body color color black 当用node sass编译时版本4 7 2 它会生成以下 CSS body color 000000 当我编译相同版本的SCSS时4 8
  • 如何加密用户数据,以便只有他们才能解密?

    我正在考虑创建一个 Web 应用程序 让人们输入文本 使用 SSL 连接 并且在保存到数据库之前将其加密 目标是只有用户才能解密它 您可以让用户输入密钥及其数据 并在他们想要查看数据时再次输入 而不是存储密钥 但这对用户来说会有点痛苦 但是
  • 32 位程序可以在 64 位操作系统上使用超过 4GB 的内存吗?

    在 64 位操作系统上运行的 32 位程序是否能够使用超过 4GB 的内存 如果可用 简短的回答是 是的 更长的答案取决于 硬件支持页面重新映射 这基本上为您的程序提供了一个将几个页面的窗口放入更大的内存区域的窗口 然而 该窗口应该由程序本
  • Azure 中的 SignalR 横向扩展适用于高频场景

    根据我对 Azure 中 SignalR 横向扩展的阅读 推荐的方法是使用 Azure ServiceBus 作为背板 但同时使用背板进行高频消息传递也存在限制 就限制章节而言SignalR 中的横向扩展 http www asp net
  • 了解 Java 中同步块与易失性变量的原子性、可见性和重新排序

    我试图理解volatile Java 并发实践 一书中的关键字 我比较synchronized关键字与volatile变量在三个方面 原子性 波动性和重新排序 我对此也有一些疑问 我在下面一一讨论过 1 可见性 同步 与 易变 书上说以下关
  • 从 X 射线图像中提取手骨

    我有一只手的 X 射线图像 我需要自动提取骨头 我可以使用不同的技术轻松分割手 但我需要得到骨头 而使用这些技术并没有帮助 有些骨头比其他骨头更亮 所以如果我使用阈值 其中一些骨头会消失 而另一些骨头会随着阈值上升而变得更清晰 我想也许我应
  • bookdown 错误“CTeX 字体集‘mac’在当前模式下不可用。”使用输出格式 pdf_book 和 pdf_document2 时

    我正在使用 bookdown RStudio tinyTex and pandoc用中文写一份报告 因为我需要使用交叉引用 所以我必须将输出格式设置为 pdf document2 但我有一个问题CTeX fontest 首先 这是 YAML
  • 在 Selenium Python 中执行鼠标操作

    我有以下脚本 from selenium import webdriver from selenium webdriver common by import By from selenium webdriver support ui imp
  • 仅当验证失败时,输入字段才会保留以前的值

    我想到了一个奇怪的问题 我试图隔离问题 因此以下是我的简化代码 public class MyBean private List
  • 如何根据pandas中的列合并两个数据框[重复]

    这个问题在这里已经有答案了 我有两个数据框 df1 pd DataFrame Req Req 1 Req 2 Req 3 Count 1 2 1 Req Count 0 Req 1 1 1 Req 2 2 2 Req 3 1 df2 pd
  • 计算机如何处理音频数据? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我使用过多种音频程序 例如 SDL Mixer Audacity 等 但我想看看这些小音频玩具里面有什么 音频数据如何处理等等 我还看到了