首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改AudioPitch withOut noise的最佳方法是什么

更改AudioPitch withOut noise的最佳方法是什么
EN

Stack Overflow用户
提问于 2016-12-30 17:54:22
回答 1查看 197关注 0票数 2

我是一个非常新的声音转换器apps.Can任何人请给我建议的方式来改变音高,像女孩的声音。

这是我使用的代码。

代码语言:javascript
复制
audioPlayerNode=[[AVAudioPlayerNode alloc]init];

    [audioEngine attachNode:audioPlayerNode];

    changePitchEffect=[[AVAudioUnitTimePitch alloc]init];
      changePitchEffect.pitch=pitch;
 [audioEngine attachNode:changePitchEffect];


[audioEngine connect:audioPlayerNode to:changePitchEffect format:audioFile.processingFormat ];

[audioEngine connect:changePitchEffect to:audioEngine.outputNode format:processingFormat];

[audioPlayerNode scheduleFile:audioFile atTime:nil completionHandler:nil ];

    AVAudioInputNode *input = [audioEngine inputNode];
    AVAudioFormat *format = [input outputFormatForBus: 0];

    [audioEngine prepare];

    [audioEngine startAndReturnError:nil];

在改变了audioFile的音高后,我失去了清晰度,并获得了更多的disturbance.can任何人建议解决这个问题的方法

EN

回答 1

Stack Overflow用户

发布于 2016-12-30 19:12:52

这不是一项微不足道的任务。基本上,你必须改变声音的formants,而不是整个音高。

想象一下,一个男人和一个女人唱着同样的音符。尽管他们唱的是相同的音符(意思是他们的声音实际上是相同的音调),你仍然可以辨别出男人和女人之间的区别。因此,原因是formants不同。你可以把formants看作是频谱中的一个预先确定的范围。

我不知道有Obj-C/Swift框架提供共振峰变换。我假设您会找到基本的C++解决方案。

如果你想/必须自己实现它,你很可能必须使用Core Audio并自己做DSP。在这种情况下,我建议在开始在Obj-C/Swift中实现之前,在Matlab/Octave中创建一个工作原型,或者创建一个图形DSP编程软件,如Native Instrument的"Reaktor“。

如上所述,这不是一项微不足道的任务。

根据你的要求,你当然可以尝试不同的音高变化和均衡器的组合和设置,但结果总是“像玩具一样”。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41394134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档