【问题标题】:Recording synthesized text-to-speech to a file in Python在 Python 中将合成的文本转语音记录到文件中
【发布时间】:2012-04-11 14:38:27
【问题描述】:

我正在尝试找到一种方法来获取合成语音并将其录制到音频文件中。我目前使用pyttsx 作为我的文本转语音库,但没有将输出保存到文件的机制,只能直接从扬声器播放。我查看了detecting and recording audioPyAudio,但它们似乎从麦克风获取输入,而不是将传出的音频重定向到文件。有没有已知的方法可以做到这一点?

【问题讨论】:

    标签: python text-to-speech


    【解决方案1】:

    您可以使用subprocess 使用-w 参数调用espeak

    import subprocess
    
    def textToWav(text,file_name):
       subprocess.call(["espeak", "-w"+file_name+".wav", text])
    
    textToWav('hello world','hello')
    

    这将写入 file_name.wav 而不会大声读出。如果您的文本在文件中(例如 text.txt),您需要使用 -f 参数(“-f”+text)调用 espeak。我建议阅读espeak man pages 以查看您拥有的所有选项。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您可以使用更高级的 SAPI 包装器将输出保存到 wav 文件。比如你可以试试

      https://github.com/DeepHorizons/tts

      代码应如下所示:

      import tts.sapi
      voice = tts.sapi.Sapi()
      voice.set_voice("Joey")
      voice.create_recording('hello.wav', "Hello")
      

      【讨论】:

        【解决方案3】:

        这是一个让您可以访问 NSSpeechSynthesizer API 的示例

        #!/usr/bin/env python
        
        from  AppKit import NSSpeechSynthesizer
        import sys
        import Foundation
        
        
        if len(sys.argv) < 2:
           text = raw_input('type text to speak> ')
        else:
           text = sys.argv[1]
        
        nssp = NSSpeechSynthesizer
        ve = nssp.alloc().init()
        ve.setRate_(100)
        url = Foundation.NSURL.fileURLWithPath_('yourpath/test.aiff')
        ve.startSpeakingString_toURL_(text,url)
        

        【讨论】:

          【解决方案4】:

          使用大胆的 VB 输入和输出仿真器电缆来记录任何 engine.play() 输出。

          您需要下载 VB 电缆,然后通过 windows 将它们设置为默认的 windows 声音设置,然后将 Audacity 的输入设置为 Microsoft 声音映射器输入,在 Audacity 上点击录制并播放您的脚本。你会注意到一旦它在 Audacity 上完成,然后导出你需要循环的内容。

          此方法可能超出范围并不完美,但适用于 pyttsx3 并且记录质量比 espeak 更好。

          【讨论】:

            【解决方案5】:

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2022-12-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-03-09
              • 1970-01-01
              • 2012-09-27
              • 2022-11-15
              相关资源
              最近更新 更多