【问题标题】:Swift: How to make positional audio more realistic for sound localization?斯威夫特:如何让位置音频更真实地进行声音定位?
【发布时间】:2018-11-08 07:26:57
【问题描述】:

我正在编写一些关于声音定位的应用程序,我在SCNAudioPlayer 中使用.isPositionalSCNNode 上产生空间音频。这是我的代码:

func spatialAudio(inputNode: SCNNode){
    let audio = SCNAudioSource(fileNamed: "source.wav")
    audio!.isPositional = true
    audio?.load()
    let player = SCNAudioPlayer(source: audio!)
    inputNode.addAudioPlayer(player)
}

但空间音频的结果不是很好,用户很难定位声源。有没有其他方法可以在 Swift 中产生更逼真的空间音频?

我听说过一些用于声音定位的算法,例如头部相关传递函数 (HRTF)、耳间时间差 (ITD) 和耳间电平差 (ILD)。 Swift 的定位音频是否使用这些算法?如果没有,我该如何更改音频以使用这些算法?

【问题讨论】:

    标签: swift audio localization stereo-3d


    【解决方案1】:

    对我来说,问题基本上是声音衰减太弱了。我可以从源头移动十到二十米,它几乎和我在它上面时一样响亮。这使得 3D 音频效果很难确定。我的解决方案是更改音频环境节点上的设置。你可以在你的SCNView 上找到它——它叫做audioEnvironmentNode

    我发现以下设置提供了非常强大的效果,但您可能希望尝试使用它们以获得适合您情况的效果:

    view.audioEnvironmentNode.distanceAttenuationParameters.maximumDistance = 2
    view.audioEnvironmentNode.distanceAttenuationParameters.referenceDistance = 0.1
    view.audioEnvironmentNode.renderingAlgorithm = .HRTFHQ
    

    (如果您的 3D 场景的计算成本特别高,您可能希望使用 HRTF 而不是 HRTFHQ,或者甚至是其他一些不太准确但性能更高的算法。在我的情况下,音频质量比图形更重要。)

    【讨论】:

      猜你喜欢
      • 2018-08-12
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多