在 iOS 上渲染非常高频的声音

Posted

技术标签:

【中文标题】在 iOS 上渲染非常高频的声音【英文标题】:Rendering very high frequency sounds on iOS 【发布时间】:2011-04-13 16:26:04 【问题描述】:

我正在尝试使用 AudioUnit 为 iPhone 项目渲染一系列高频声音(大约 8-20KHz),但是 12KHz 以上的所有声音都严重失真和/或完全错误的音调。我已经将波形渲染为图像,并意识到,因为 iPhone 的硬件采样率为 44,100Hz,所以应该归咎于混叠(我的 22KHz 正弦波更像是 100Hz 正弦波)。

有什么解决办法吗?我在商店里看到了许多“狗哨”应用程序,但我猜它们不太可能是“真实的”。更改 AudiostreamBasicDescription 的采样率似乎没有太大帮助,但也许我做错了。

【问题讨论】:

【参考方案1】:

您无法真正以 44.1K 样本/秒的速度渲染 22KHz 正弦波,而且我相信您无法将最大采样率提高到该值之上。您可能能够使用 48KHz,我依稀记得这是支持的速率。

另一方面,您绝对可以以 44.1ks/s 的速度制作 22.05 KHz 的方波,这会产生一些非常高的谐波频率。也许这就是狗哨应用程序的工作原理?

如果绝对频率控制不重要,则将频率四舍五入为采样率的倍数可以获得更好的结果。这样,您至少可以确保混叠不会给您带来低频节拍。

【讨论】:

在 44KHz 采样率下,22KHz 正弦波和相同频率的方波没有区别。你得到两个样本:高和低。输出 DAC 几乎可以肯定地呈现它们,而不会出现任何异常高的谐波。 好提示!我最终在 freemosquitoringtones.org 上模仿了 mp3(我注意到一些应用程序只是嵌入)。

以上是关于在 iOS 上渲染非常高频的声音的主要内容,如果未能解决你的问题,请参考以下文章

解读金融高频交易不出错的金手指:分布式事务管理

10个常见触发IO瓶颈的高频业务场景

Unity3D面试高频知识点

京东前端高频react面试题及答案

京东前端高频react面试题及答案

京东前端高频react面试题及答案