【问题标题】:is it possible to change the pitch of the voice in AVSpeechSynthesizer's voice?是否可以更改 AVSpeechSynthesizer 语音中的语音音高?
【发布时间】:2016-12-29 20:38:42
【问题描述】:

我可以在 AVSpeechSynthesizer 中更改语音的音高,或者对它的输出语音添加任何效果,使其听起来不同吗?

【问题讨论】:

    标签: ios iphone xcode avspeechsynthesizer


    【解决方案1】:

    是的,您可以更改口语句子的音高速率

    AVSpeechUtterance 类有两个相关属性:

    • pitchMultiplier: Float(值介于 0.5(最低音高)到 2.0(最高音高)之间)。默认音高为 1.0
    • rate: Float(两个常数之间的值:AVSpeechUtteranceMinimumSpeechRate(最慢的语速)和AVSpeechUtteranceMaximumSpeechRate(最高的语速)。

    当您创建 AVSpeechUtterance 时,只需适当地设置这些属性,然后让您的 AVSpeechSynthesizer 说出话语。

    注意:您还可以更改AVSpeechUtterance声音(重音)。

    我希望这会有所帮助。如果我说的有什么不清楚的地方,请告诉我。

    【讨论】:

    • 谢谢,有什么方法可以录制/保留 AVSpeechSynthesizer 的输出语音文件而不播放它并对其应用任何更改(例如音调变化等)?让我们假设它是一个应用程序,可以读取您在导出的视频中输入的内容给用户,其中语音已更改......如果这样的事情是不可能的,您知道 AvSpeechSynthesizer 的任何免费开源替代品吗?跨度>
    • 我很确定你不能这样做,而且恐怕我也不知道有任何这样的开源替代品。你当然可以自己录制一些东西(如果你知道要说的句子)然后回放?
    • 没错,我可以轻松地在我的应用程序中录制用户的声音,但由于某些原因,我需要找到一种方法来录制它或使用类似于 AvSpeechSynthesizer 的开源 API 来做类似的事情
    • 也许看看 AVFoundation 框架?这是一个不错的教程的链接:appcoda.com/ios-avfoundation-framework-tutorial 这里是苹果的一些资源的链接developer.apple.com/av-foundation
    • 我终于解决了保存语音的问题,方法是使用一个开源的 TTS API,称为 iOS 的 open ear。它有一个用于保存输出 TTS 语音的付费选项。
    【解决方案2】:

    默认间距为 0.5。

    AVSpeechUtteranceMinimumSpeechRate 为 0.0

    AVSpeechUtteranceMaximumSpeechRate 为 1.0(最高语速)。

    AVSpeechSynthesizer *synthesizer= [[AVSpeechSynthesizer alloc]init];
    synthesizer.delegate=self; 
    AVSpeechUtterance *utterances =
    [AVSpeechUtterance speechUtteranceWithString:text];utterances.voice
    = [AVSpeechSynthesisVoice voiceWithLanguage:@"de-DE"];//change voice utterances.rate=0.5;//default rate
    [synthesizer
    speakUtterance:utterances];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-10
      相关资源
      最近更新 更多