我有几个脚本需要转换为生成的 (TTS) 画外音。除了某些部分,它们应该保留在文本中,但不应录制在音频中。
我正在使用 Balabolka,它提供了很多功能,但文档稀少且缺乏官方或社区支持。
我发现如果将单行注释添加为 SAPI 标签的属性,我可以进行单行注释:
<silence msec="50" txt="This'll be but a breath." />
或者一个伪造的 XML 标签:
<comment txt="This is totally a comment." />
甚至:
<http://dontread.me>
这甚至适用于文本块,这正是我所需要的:
<
It grows in bunches,
I've got my hunches
>
除此之外,每当标签内的文本包含任何短语结束标点符号 ([.?!])、空行或开头的空格时,Balabolka 似乎都会拆分标签,并且拆分后的文本将被读取,因此使用以下代码:
<
It's the best!
Beats the rest.
>
胜过其他读作。即使我删除感叹号,点也会使最后一个 > 读作逗号。
更糟糕的是,我想启用换行后开始新的短语在阅读参数中,因为如果没有它,标题、列表和其他没有结束标点符号的文本将不间断地阅读。但如果我启用它,那么带标点符号的单行注释就会中断,而且每个新行也会打破沉默,使多行注释变得不可能。在我禁用它之后,Babaloka 会出现故障,并会在任何标点符号上抛出 XML 解析器错误。
因此,我可以修改所有文本来解决故障,但我宁愿不这样做...在 Balabolka 或其他应用程序中使用可用的评论标签会容易得多。
谢谢您的指点。
答案1
Ilya(开发者)慷慨地给出了答案:
现在我不打算为 Balabolka 创建高级 XML 解析器(也支持注释符号)。抱歉。
我建议您不要发表评论,而是从文档中删除不必要的文本(尝试创建 2 种文本变体 - 大声朗读和查看)。
或者您可以为发音纠正词典添加新规则:用于查找注释的特殊正则表达式。
查找内容(如正则表达式):
/\*(.|[\r\n])*?\*/
用。。。来代替:
(空行)
在将文本转换为音频文件之前,先对文本应用规则(主菜单项“选项|发音校正|查看修改后的文本”)。
提示:建议在同一段落内打开尖括号并关闭尖括号。此外,尝试以相同的方式放置开始标签和结束标签。这将增加 Balabolka 正确处理标签的可能性。
他偏爱 C 风格的注释 ( /* ... */
)。可以通过在搜索或替换时在正则表达式前面添加 %rex% 来调整正则表达式并快速测试它 (vg %rex%/\*(.|[\r\n])*?\*/
.
非常感谢 Ilya!
--
更新:我坚持我的 XML 注释:
<bit.ly/asdf>
<silence msec="4000" text="Chapter 2" level=2>
<screen only text="Sources:
1. Foo
2. Bar" />
并添加了一个发音修正,读text="([^"]|\n\r)*?"
作“无”。然后我:
- 从 Word 或 Writer 复制原始文本(Balabolka 的导入不处理版本控制)
- 应用自动格式 (Control+F)
- 查看修正 (Control+T)
- 复制更正后的文本并替换未更正的文本(否则 XML 解析器仍然会破坏标签,并且更正不会显示在字幕中)
我一切就绪!