众所周知,网线插了一头必须插另外一头
今天试着使用了虚拟声卡VB-Cable。
这东西的作用就是在你的电脑中提供另外一个传播声音的途径,类似于一条网线,不过没有实体,传递的是声音。一个软件的音频可以输入到这个声卡里面,另外一些软件就可以从这个声卡里在一定延迟后读到输入进去的音频。
这个cable的延迟别看设置有512,其实单位是sample。一秒内音频有96k个sample,换算下来是512sample是5.33毫秒,几乎等于没有延迟。
至于标题提到的“网线插了一头必须插另外一头”,则是我今天关于这VB-cable遇到的一个bug。bug存活时间整整一个小时。
今天就来记录一下这个挑人的神经bug。
---
是这样的:我不是有了一个异步音频多轮对话的LLM了嘛?
下一步就是要把来自Azure合成生成音频直接推给VTS,用音量来控制VTubeStudio里live2d的嘴的开合大小。
如图就是VTS的界面,将mouth open绑定到音频强度上,选择VB-Cable作为音频输入,我这边也让Azure把音频通过VB-Cable播放,这样音频输出时小人的嘴就会像说话一样开合,这不是完美嘛?
(用音量控制不会有违和感。我观察了neuro的直播,她的嘴的开合也是和音量大小直接相关。降低违和感最关键的是动作,neuro动作是在一系列预设动画里平均排列。不过这太过美术了,做不了。)
结果模型跑起来了,Azure的token都消耗了我几百个了,这个Hiyori的嘴就是不动。
那debug呗;
我把VTS的音频输入切换到内置麦克风,嘴动了;把Azure的声音连回扬声器,也有声了。那一定是这个VB-Cable出了问题。
于是我用前几天调耳机时学会的Audio Midi Setup将VB-Cable设置为系统音频输出,背景放了一个一定有声的三小时neuro直播录播作为声音来源。
再打开VB-Cable的控制台,一看;
好家伙,input是有声了,但output怎么没声啊?作为一根线,一个听筒,怎么会一边有声一边没有的呢?难不成管子中间塞棉花了?
你还真别说,在那时的我的认知里,这根线一头连的是我这边的音频播放器,另一头连着VTS的接收,确实是插了一头又一头。可我不知到的是,这个VB他不把这个VTS认作插头(还搞上歧视了(bushi))。
所以实际上这根线连不上的原因就跟明明连着充电线设备还弹低电量的原因是一样的:你以为插着插头,实际上插头早不知道飞哪里去了。
我是什么时候发现的呢?
这事靠不了GPT,GPT一在工具层面Debug就只会复读,还得我御驾亲征。
在遍历了许多reddit帖子和VB的官方forums后,一度误以为那个“512smp”是bug的来源,终于在半个小时的奋斗后我把5天前卸了省硬盘的OBS装了回来。
一启动OBS,输入流设置成VBcable,就来声了。
代表VBcable的音量指示栏肆意的随着vedal和neuro这俩人在直播中的口角进行波动,一看VB-cable control panel,果然线的两端都出声音了。
看来OBS的音频输入被VB赛博传声筒识别为插头了。
切到VTS,小人的嘴也能识别到这声音随之开合了。
---
这个故事告诉我们,OBS即是推流工具,也是debug工具,还是debug方法。
从此到工具出bug除了重启重装,还多出了一个选项:让OBS也来参一脚。
此软件“仅限学习交流,不能用于商业用途”如用于商业用途,请到官方购买正版软件,追究法律责任与本站无关!
我们每月需支付高额服务器费用,捐赠将保证服务器有更好的配置和稳定运行;非常感谢您的捐赠支持。
(资源收集整理维护不易,敬请珍惜并感谢开发者。)