【问题标题】:iPhone voice changeriPhone语音转换器
【发布时间】:2011-05-26 09:02:19
【问题描述】:

我正在开发一个 iphone 应用程序,它记录用户声音并将其转换为女性声音 像(会说话的汤姆和 iHOBO)。我是音频操作的新手。 请告诉我执行此操作需要哪个 api? 我可以使用 iphone sdk api 实现此功能吗? 是否有任何开源来实现此功能? 有什么教程可以重新评分吗?

提前致谢

【问题讨论】:

    标签: iphone ipad ios4


    【解决方案1】:

    没有内置的 iOS API 可以进行独立的时间音调修改。

    Audacity中有实现time-pitch stretching的开源代码,不知道有没有移植到iOS。与SoundTouch 相同。

    在 DSP Dimensions 网站上有一个 Time-Pitch Stretch Tutorial

    更新:在 2012 年底,kAudioUnitSubType_NewTimePitch 音频单元包含在 iOS 6 版本中并内置于其中,因此您现在可以使用 iOS API 实现(独立时间音高修改)语音更改。有关详细信息,请参阅 Apple 的 developer documentation

    【讨论】:

    • 非常感谢您的指导。
    【解决方案2】:

    看看Dirac。它是免费的,但不是免费软件。

    【讨论】:

      【解决方案3】:

      下载示例代码的绝佳链接可满足您的所有需求,here 也可参考 here 以获得有关您的问题的更多知识。

      在HelloWorldLayer.mm示例代码的init方法中,你可以看到三个浮点值

      time      = 0.7;  
      pitch     = 0.8;
      formant   = pow(2., 0./12.);
      

      只要把音高值调到1.9,真的是好听的猫声!!!

      【讨论】:

      • 但它只能捕捉几秒钟的声音,如果用户连续说话 15 秒......或者更多
      • @aloksinha 将您的值定义为#define AUDIOMONITOR_THRESHOLD 0.01 #define MAX_SILENCETIME 0.8 并在“-(void) monitorAudioController: ( ccTime) dt" 方法...它会工作...:) 现在你可以录制很长时间 n 播放它..
      • 感谢您的回复。我正在测试这个。然后我会告诉你!
      • 谢谢它有效,但请你解释一下为什么你在“-(void) monitorAudioController: (ccTime) dt 的“if (audioMonitorResults > AUDIOMONITOR_THRESHOLD)”循环中删除了“[audioMonitor stop]” " 方法..,谢谢
      • [audiomonitor stop]是短记录的原因。在'if'循环中开始录制音频后,[audiomonitor stop]退出录制并播放它。所以只有录制的剪辑太短。[audiomonitor stop] 方法需要几秒钟才能进行,这几秒钟是您录制声音剪辑的短暂时间。希望您理解。;)@aloksinha
      【解决方案4】:

      来自http://LittleEndian.com/Developers/ 的一些出色的声音处理 SDK 应该会有所帮助。

      【讨论】:

      • 你能解释一下这是如何回答这个问题的吗?
      猜你喜欢
      • 2010-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-22
      • 1970-01-01
      • 2011-01-17
      相关资源
      最近更新 更多