LunaTranslator/docs/zh/ttsofname.md

62 lines
3.1 KiB
Markdown
Raw Normal View History

2024-08-05 21:53:28 +08:00
## 语音合成根据不同的人物使用不同的声音
首先,如果当前文本没有人名之类的东西,那么可以在文本选择器中,额外选择人名的文本。显示的文本将按照选择的先后顺序进行排列。
然后,在游戏设置->`语音`(或者设置界面的`语音设置`,但这样将是全局的设置,不建议进行全局设置)中,取消`跟随默认`,然后激活`语音指定`,在其设置中添加一行,将`条件`设置为`包含``目标`中填入人名,然后在`指定为`中选择语音。
2024-08-07 22:00:27 +08:00
![img](https://image.lunatranslator.org/zh/tts/1.png)
2024-08-05 21:53:28 +08:00
但是,由于额外选择了人名文本,使得显示和翻译的内容多出了人名的内容,且语音也会把人名读出来。为了解决这个问题,我们激活`语音修正`,在其中利用正则表达式,将人名及其符号过滤掉。
如果还激活了`作用于翻译`,则该语音修正也会在显示和翻译的内容中也把人名去掉,从而使得显示的内容和未选取人名条目时一样。
2024-08-07 22:00:27 +08:00
![img](https://image.lunatranslator.org/zh/tts/3.png)
2024-08-05 21:53:28 +08:00
## 语音指定的具体解释
当当前文本符合条件时,则执行`指定为`中所指定的动作
#### 条件
1. 正则
判断时,是否使用正则表达时进行判断。
1. 条件
**首尾** 当为首尾时,仅当目标处于文本的首尾位置时,才符合判定
**包含** 只要目标出现在文本中,就符合判断。这个是更宽松的判定。
当同时激活`正则`时,会自动处理正则表达式以兼容该选项。
1. 目标
用于判定的文本,通常为**人名**。
当激活`正则`时,其中的内容将作为正则表达式来实现更准确的判定。
#### 指定为
1. 跳过
当判定为符合条件时,跳过对当前文本的朗读
1. 默认
对符合条件的内容,使用默认语音进行朗读。通常,当使用了一个非常宽松的判定时,容易误伤。将设置为该动作的判定移动到更宽松的判定以前,可以避免误伤
1. 选择语音
选择后将弹出一个窗口,选择语音引擎和语音。符合条件时将使用该语音进行朗读。
## 语音修正的一些问题
整个流程是:
1. 提取文本
2024-08-24 01:32:53 +08:00
1. 文本处理-文本预处理
2024-08-05 21:53:28 +08:00
1. 语音指定
1. 语音修正
1. -> 执行语音合成
1. 显示原文(不激活收到翻译才刷新)
1. 翻译优化-前处理
1. 翻译
1. 翻译优化-后处理
1. 显示翻译
若想要根据人名朗读,且不希望在原文和翻译中显示人名,则必须必须在显示原文前和执行语音合成之前,插入一个动作。
由于考虑到大部分情况下,修正的目标和语音修正的目标一致,因此,引入`作用于翻译`选项,使得传递给翻译的文本和语音修正后的朗读文本一致。
当然,若使用大模型进行翻译,在原文中保留人名也不失为一个不错的决定,因此这个选项是默认不激活的。
当然,若不想在翻译中保留人名,其实也可以考虑在`翻译优化`中将人名过滤掉,但这样显示的原文中仍然会有原文,我不喜欢这样。