nga看到有人做了个光之哑巴的tts软件 可以打字转语音再通过一个叫voicemeeter的软件转到语音频道。
但是游戏里频繁切换软件输入不太方便,而且如果你的哑巴亲友不配合也没办法强迫他用。最后就是没办法满足哑巴亲友是个无口腹黑萝莉 并骂你“あんたばか?”的幻想,很是可惜。
于是光之galgame补完计划启动
实际使用效果是:
不管是固定队打本上班还是rp店营业,聊天可以直接翻译成日语然后转成语音在语音频道播放。并可以给不同的人分配不同的语音模型,区分性别和音色。
如果你的固定队8个人也有5个哑巴,就再也不会死气沉沉了, 而只需要你自己一个人安装使用即可,所有的语音都通过自己在语音频道播放。(不管他们同不同意 强迫你的亲友开口并变成萝莉,你说你不是萝莉?那你开麦啊!
打本时可以自己或者boss的技能自动播放语音。比如你120的大技能释放时 在语音里“曼波曼波”提醒队友对齐团辅
队友死亡时 在预设的几条语音里随机播放某一条 比如"みょうが バカ!"肆意羞辱稿子(是黑魔
以上具体效果请看视频演示 (网页链接)复杂和繁琐 每次需要启动好几个软件还要手动修改很多设置。如果不是喜欢折腾的人不建议尝试。有心理准备后下面我们开始。
首先是简单的基础部分 依靠act和cactbot实现在游戏内tts。舞者大舞发出”曼波曼波“的声音

step 0: 下载网盘 https://pan.baidu.com/s/1g6pyD-8qfkzYvIt6Pr8K5w?pwd=wb12 提取码: wb12
step 1: 下载voicevox语音引擎 https://voicevox.hiroshiba.jp/ 下载安装好后请把附件里run.bat的文件放在voicevox\vv-engine目录下
step 2: 下载ultraedit 这是个文本编辑器 https://www.ultraedit.com/ 因为后续文件我们需要保存为”utf-8 无bom“格式。所以务必使用这个而不是系统自带的记事本
step 3: 如果你是用的呆萌 请把附件里的actvoice.js放到ACT.DieMoe\Plugins\ACT.OverlayPlugin\cactbot\user\raidboss下
step 4: 不管呆萌还是咖啡 都默认打开cactbot (也就是俗称的轮椅)确保之前你没有手动关闭,如果关闭了请打开
step 5: 运行run.bat启动语音引擎(一定要在voicevox\vv-engine目录下 不要直接在附件文件夹里打开),打开ACT ,在游戏内用舞者跳大舞 如果听到曼波曼波 代表语音引擎可以正常工作。
step 6:下面我们需要曼波曼波可以转入语音频道让队友听到。下载安装voicemeeter banana https://vb-audio.com/Voicemeeter/banana.htm
运行后可以看到图片里这个界面。最左面hardware input 1是硬件输入 我们点击选择我们的麦克风设备。然后点击下方的B1 B2

中间的voicemeeter input和voicemeeter aux input是两个虚拟输入。
input点亮A1和B2 aux input 点亮A2 B1 B2
最右上方的hardware out 点击A1 选择我们的实际硬件输出设备 比如你的耳机
按照图片里所示点击系统--->声音--->高级声音选项


把输出设备选为voicemeeter input 下方的cefsharp.Browsersubprocess和浏览器都选为aux input.(只测试了chrome 其他各种千奇百怪的浏览器或许可能会有问题?不太保证)
现在我们大概解释一下,voicevox语音引擎是通过cefsharp和chrome这两个进程播放的,我们让他们从aux input进入A1 B1这两个声道,我们的硬件麦克风进入了B1声道,我们系统的声音 比如游戏在A1声道。
B1(包含了麦克风 语音引擎)让我们的队友听到
A1(包含游戏声音 语音引擎 不包含我们麦克风自己的声音) 我们自己听到
B2 (包含了所有的声音 如果你需要录视频的话 选择这个声道)
ps:如果你在stereo input1那里点亮了A1你就能听到自己麦克风的声音了
step 7: 进入语音软件的设置界面。比如我们固定队使用的oopz 把麦克风选择为voice out B1 扬声器选择为voicemeeter input
(扬声器这里选择错误可能会把队友的声音重新传入B1再播放给他们,造成回声 请注意)
现在让我们测试一下 你的队友应该能正常听到曼波曼波了
ps:浏览器是b1声道 所以如果你网页看视频的声音 也会被听到 请注意(别开什么奇怪的小视频
重新编辑打个补丁 之前忘了写 语音软件请用客户端并在声音设置里把这个语音软件改成voicemeeter input,如果你用网页版的语音聊天 因为我们要用网页来播放语音引擎 之前已经把chrome设为了队友能听到的aux input 而语音聊天本身设置的是voicemeeter input 自相矛盾 会造成冲突 导致队友能听到自己的回声。这点请注意(简单说就是语音别用网页版 用客户端)
step 8: 下面基础的准备都已经搭好 开始修改和订制diy
使用ultraedit打开actvoice.js
找到下方
{
id: "VoiceVox01", //舞者大舞120
type: "Ability",
netRegex: { id: "3E7E" },
delaySeconds: 3,
run: (data, matches) => {
speakWithVoiceVox("マンボ、マンボウ!", 3);
},
},
id只是个编号 请随意修改 但是不能重复,重复会出错整个罢工。
type表示下面netregex匹配的类型。我们选择ability
netregex 我们要匹配的技能 3e7e是我们的大舞。把这个换成其他的比如挑衅是1D6D
delaySeconds: 3,表示延迟3秒播放
speakWithVoiceVox是我们上面设定好的函数模块 用于调用语音引擎 ,而后面的 ("マンボ、マンボウ!", 3); ""里是实际播放的内容 3代表用那种声音模型播放。
启动语音引擎后 http://127.0.0.1:50021/speakers 可以看到不同的编号对应哪个语音模型
注意voicevox语音引擎不支持中文
下面的VoiceVox02则是队友死亡后随机播放的怒斥稿子的语音(仅限于固定队阵容)
首先找到最上面的const mypartyname = ["h1", "h2", "mt", "st", "d1", "d2", "d3", "d4",];
把h1 h2 这些更换为你队友的名字 名字不对的话不会触发。
下面再voicevox02里找到const deadh1 = ["みょうが バカ!","みょうが 彼は殺されました!","みょうが 起きろ!",];这一行
实例这里有三句话 会随机选一句播放 请自行修改 随便改成1-5句都可以没有限制
下面的
if (deadName === mypartyname[0]) {
speakWithVoiceVox(randomh1, 54);这里的54是h1死亡后用哪个speaker的声音骂她 自行修改。
最后再强调一下 保存时务必选择utf-8 无bom格式,不放心可以用另存为 然后重新修改文件名。
如何查找各个技能的id或者更深入的了解cactbot自定义的编写,可以自行搜索相关的教程 比如”面向0基础用户的Cactbot触发器自定义教程“ ”塔塔露教你玩ACT]触发器,从入门到被SE封号“ 等等这里就不过多展开了。
————————————————————————————————————
看到这里你如果都没问题的话 已经实现了基础部分的安装
下面是正篇,游戏内聊天转成语音和亲友网恋galgame化
请移步 网页链接