Autohotkey 逐字生成与文本到语音同步的定时文本?

Autohotkey 逐字生成与文本到语音同步的定时文本?,autohotkey,text-to-speech,sapi,ttml,Autohotkey,Text To Speech,Sapi,Ttml,如何逐字生成与文本到语音(TTS)同步的定时文本(例如字幕) 我希望使用我在Windows 10上使用过的高质量SAPI5语音(例如,IVONA提供的语音)来执行此操作 在Windows上,我们已经有一些很好的免费TTS程序: -开源 -封闭源 微软自己最基本的图形用户界面——目前可用——似乎可以追溯到2001年 TTSApp可以生成WAV格式的音频文件。Balabolka创建MP3文件 以及卡拉OK中使用的LRC文件的同步定时文本-但只能逐行进行,不能逐字进行。 然而,两者都在屏幕上实时大声说

如何逐字生成与文本到语音(TTS)同步的定时文本(例如字幕)

我希望使用我在Windows 10上使用过的高质量SAPI5语音(例如,IVONA提供的语音)来执行此操作

在Windows上,我们已经有一些很好的免费TTS程序:

  • -开源
  • -封闭源
  • 微软自己最基本的图形用户界面——目前可用——似乎可以追溯到2001年 TTSApp可以生成WAV格式的音频文件。Balabolka创建MP3文件 以及卡拉OK中使用的LRC文件的同步定时文本-但只能逐行进行,不能逐字进行。
    然而,两者都在屏幕上实时大声说话时逐字突出显示

    如果我有一些TTS/SAPI5源代码,我可以在每次生成新词时简单地检查时钟,并将时间和该词写入文件。有没有人知道有哪个项目会暴露出这种编程水平——所以我可以从那里开始

    2016年9月更新

    我发现TTSApp是由某个jballi在2012年重新实现的

    我已经修改了该代码,使其能够在每次onWord事件处理程序启动时以毫秒为单位追加到文本文件中。 但我仍然需要做两次传球:

  • 快速自动传递以保存WAV文件和
  • 创建计时文件的慢速(实时)过程
  • 我仍然希望找到加速第二步的方法


    顺便说一句,VisualBasic源似乎已存档。

    可以脱机执行所有这些操作

    您可以使用SAPI生成WAV文件,同时指定
    DoEvents
    -documented

    每个事件(例如音素/单词/句子)的二进制表示形式会附加到WAV文件的末尾。某个Hans在2009年记录了WAV/SAPI格式

    这一切都可以通过对jballi 2012的简单修改来实现

    基本上,在
    Example1GUI.ahk

    SpFileStream.Open(SaveToFileName,SSFMCreateForWrite,False)
    
    ;-- Set the output stream to the file stream
    SpVoice.AllowAudioOutputFormatChangesOnNextSet:=False
    SpVoice.AudioOutputStream:=SpFileStream
    
    ;-- Speak using the given flags
    SpVoice.Speak(Text,SpeakFlags)
    
    以下是:

    SpFileStream.Open(SaveToFileName,SSFMCreateForWrite,True) ;-- DoEvents 
    
    ;-- Set the output stream to the file stream
    SpVoice.AllowAudioOutputFormatChangesOnNextSet:=False
    SpVoice.AudioOutputStream:=SpFileStream
    
    if not Sink ;-- DoEvents label
      {
        ComObjConnect(SpVoice, "On")
        Sink:=True
      }
    
    ;-- Speak using the given flags
    SpVoice.Speak(Text,SpeakFlags|SVSFlagsAsync|SVSFPurgeBeforeSpeak)
    

    我环顾四周,找到了可能有用的方法。如果您需要比SPEI_SOUND_START和SPEI_SOUND_End更高的准确性,您肯定必须调用isprecResult::GetResultTimes谢谢Lesley Gushurst-我将查看Annosoft的SAPI 5.1 Lipsynccode。现在我明白了-Lipsync程序正在解决一个微妙的不同问题。它正在生成定时文本是的,但它不会同时合成语音音频。。。好的,那么如果你已经在TTS中使用Speak call,你有没有研究过SPEI_单词的边界?