【问题标题】:extAudioFile data... am I getting the right stuff?extAudioFile 数据...我得到正确的东西了吗?
【发布时间】:2010-09-10 23:29:03
【问题描述】:

我正在使用 Core Audio SDK 文档中提供的 EXTAudioFileReadTest 应用程序,我正在尝试从 mData 缓冲区中获取所有浮点值,以便使用它们绘制波形。

目前,我正在打印单通道的浮点值,这就是我在控制台中得到的:

2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] 0.127136
2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] -0.057033
2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] -0.146455
2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] 0.090759
2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] 0.240837
2010-09-10 19:22:43.360 ExtAudioFileReadTest[71828:a0f] -0.072719
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] -0.258782
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] -0.063972
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] 0.088692
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] 0.153571
2010-09-10 19:22:43.361 ExtAudioFileReadTest[71828:a0f] 0.080644
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] -0.087060
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.196455
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.167777
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] -0.192430
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] -0.209936
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.012049
2010-09-10 19:22:43.383 ExtAudioFileReadTest[71828:a0f] 0.110493
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.150715
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.016413
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] -0.056843
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.206117
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.020673
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] -0.561129
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] -0.184265
2010-09-10 19:22:43.384 ExtAudioFileReadTest[71828:a0f] 0.620910
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0.309018
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0.371634
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0.238362
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0.125136
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0.139757
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0.023419
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] -0.142903
2010-09-10 19:22:43.385 ExtAudioFileReadTest[71828:a0f] 0.041068
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] 0.252621
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] -0.002240
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] -0.261686
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] -0.105053
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] 0.072798
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] 0.141572
2010-09-10 19:22:43.386 ExtAudioFileReadTest[71828:a0f] 0.110190

我想我很困惑......因为我期待找到某种类型的电压样本,而不是 -1 和 1 之间的数字。这些值实际上意味着什么?将这些值转换为介于 0 和 1 之间的某个上限/下限的好的公式是什么?

提前致谢。我一直在到处搜索,但在任何地方都找不到这些信息……尤其是在文档中。

【问题讨论】:

  • 嗨科里,你向前迈出了一步,尊重我在我的项目中要实现的目标:你能分享输出 ExtAudioFileReadTest 浮点值的解码代码吗?谢谢

标签: iphone audio core-audio waveform


【解决方案1】:

这是正常的。

从 [-1...1] 调制的音频样本的通用浮点表示;其中值 -1 和 1 表示 0 dBFS 的一个样本。

浮点值“0.0”的连续流表示无声信号。

没有直流偏移的信号在正域和负域中的权重相同。

如果您想将这些值转换为 [0...1],请使用公式:

result = (0.5 * inputSample) + 0.5;

但如果信号超出 [-1...1],您可能必须使用更复杂的算法。

在大多数情况下,如果要将其存储为浮点数,则应将其保持为 [-1...1]。

【讨论】:

  • 根据音频转换为浮点数的方式,采样范围可能不是 [-1, 1]。具体来说,在 OS X 上,浮点音频通常(尽管不总是)在 [-1, 1) 范围内。例如,使用 Apple 的 AudioConverter,对于 16 位音频,最小样本 -32768 转换为 -1,但最大样本 32767 转换为 (32767/32768) ≈ 0.999969
  • @Justin - 我希望你在这个线程上问的时间不会太长,但是应该如何处理 -1 .. 1 浮点值?它们代表什么?为了绘制波形,将它们全部转换为 0 .. 1 范围会更好吗?我有 2 个音频通道和平均通道 1 和 2,因此我可以使用它们来绘制波形,但是我不确定您所说的“值 -1 和 1 代表 0 dBFS 的一个样本”是什么意思。我的前 20 帧平均低于 0,负值。
  • @user773578 好吧,这些可能值得他们自己的问题。相关讨论:stackoverflow.com/questions/4849076/… 简短回答:1)pcm 样本的幅度 2)不一定。在我的实现中需要多次转换,将信号转换为屏幕上的波形(见链接) 3)如果您提供硬件样本,0dBFS 是它将代表的最大输出样本值。除此之外,您还可以剪辑输出(在介绍性方面非常简化)。
  • 这让我更加困惑,因为我不知道完整的故事
  • @user773578 好的。该主题并不真正适合评论字段。如果搜索没有帮助,请随意创建新问题。
【解决方案2】:

我想我已经想通了。我只是在 excel 中绘制了上面的这些点,它看起来像一个波形。我没有意识到它也会产生负电压……但这是有道理的。

【讨论】:

    猜你喜欢
    • 2017-10-19
    • 2012-02-11
    • 2021-03-14
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-06
    • 1970-01-01
    相关资源
    最近更新 更多