gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:35:24 25 4
gpt4 key购买 nike

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

我想使用高质量的 来做到这一点SAPI5 声音(例如来自 IVONA here 的声音)以及我在 Windows 10 上使用过的声音。

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

  • Read4Me - 开源
  • Balabolka - 闭源
  • TTSApp Microsoft 自己的非常基本的 GUI - 当前可用 here - 似乎可以追溯到 2001 年。

  • TTSApp 可以生成 WAV 格式的音频文件。 Balabolka 创建 MP3 文件
    连同同步定时文本作为卡拉 OK 中使用的 LRC 文件 - 但仅逐行而不是逐字。
    然而,当他们在屏幕上大声说话时,两者都显示逐字突出显示 - 实时。

    如果我有一些 TTS/SAPI5 源代码,我可以在每次开始生成新单词时简单地检查时钟并将时间和那个单词写入文件。有没有人知道任何暴露该级别编程的项目 - 所以我可以从那里开始?

    2016 年 9 月更新

    我发现 TTSApp 被重新实现了 using AutoHotKey由某个 jballi 在 2012 年。

    每次 onWord 事件处理程序触发时,我都修改了该代码以将时间(以毫秒为单位)附加到文本文件中。
    我仍然需要通过两次:
  • 快速自动通过以保存 WAV 文件和
  • 创建计时文件的慢速(实时)传递。

  • 我仍然希望找到一种方法来加速第 2 步。

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

    最佳答案

    所有这些都可以离线完成!

    您在指定 DoEvents 的同时使用 SAPI 生成 WAV 文件- 记录 here .

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

    这一切都可以通过对 jballi's 2012 AutoHotkey version of TTSApp 的简单修改来完成。

    基本上你在 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)

    关于autohotkey - 逐字生成与文本到语音同步的定时文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013525/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com