step by step 手把手让我们的狒狒14变成galgame 前篇
兔善人
编辑于 2025年11月23日 23:48

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化

请移步 网页链接​