抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

在虚拟世界里用自己的原声太出戏了!

1703941007898

什么是RVC?

RVC项目是新晋的变声方案,使用更先进的声音处理算法。在效果上比旧世代的变声方案有明显的进步。在这里只会用到推理,也就是给自己的声音添加另一种音色。

预准备

RVC实际上相当吃配置,这还没算上Nvdia语音降噪带来的性能消耗。
个人配置:

硬件

  • Oculus Quest2
  • Ryzen2600+RTX2070

软件

  • VoiceMeeter Banana
  • NvdiaBroadCast
  • RVC

VoiceMeeter 传送门:VOICEMEETER Virtual Audio Mixer.
NvdiaBroadCast 传送门:NVIDIA Broadcast App: AI-Powered Voice and Video | NVIDIA
RVC 项目传送门:Retrieval-based-Voice-Conversion-WebUI

下载与安装

VoiceMeeter
VoiceMeeter不仅仅是混音软件,还能分离处理电脑中不同的声音来源。选择Banana版本——相比标准版多一个虚拟输入控制,而且是免费的。安装完成后需要重启。

NvdiaBroadCast
NvdiaBroadCast是仅限20系及以上的英伟达显卡使用的降噪软件。以默认配置安装。

RVC
RVC项目是新晋的变声方案。在这里只会用到推理,也就是给自己的声音添加另一种音色。在Github的Release中获取到。

配置与使用

通常,声音在系统的流程上是这样的:

阶段一 声音捕获 从麦克风获取原声
阶段二 Nvdia降噪 经过NvdiaBroadcast,转出到VoiceMeeter
阶段三 RVC变声 RVC捕获Nvdia降噪,处理后转出到VoiceMeeter
阶段四 声音输出 VoiceMeeter控制输出,把处理后的声音转入软件

实际上,这些阶段每一个部分都可以算作独立的麦克风与扬声器,因为他们是声音流转过程中的一部分,每一个部分都有输入输出的功能。这可能相当令人费解。
总之,我们一步一步来。最终的目的是让VoiceMeeter接管处理后的声音,然后输出到需要的软件中。

Nvdia降噪

在英伟达降噪面板中进行设置:

  • 将麦克风选项的设备调整为自己使用的麦克风;
  • 将扬声器选项设置为VoiceMeeter Input的虚拟扬声器。

如果你安装了Banana版本,你可能会注意到,扬声器这里有两个选项:

  • VoiceMeeter Input
  • VoiceMeeter Aux Input

这两个扬声器是VoiceMeeter的虚拟输入端。建议把第一个Input作为语音端口,第二个作为系统声音端口。这样就不会搞混。
把麦克风与扬声器设置中的噪音消除与房间回声消除全部打开。它的效果相当不错。

RVC变声

1703941121395

现在,打开RVC,选中go-realtime-gui.bat。这是适用于N卡的项目。如果设备是A卡或者I卡,使用go-realtime-gui-dml.bat

警告:我没有尝试过go-realtime-gui-dml.bat,因为我用的是N卡。不保证这个教程对A卡、I卡用户的可用性。

RVC提供的图形界面有三个主要板块:

  • 加载模型。添加的音色取决与模型。默认情况下,会使用kikiV1模型。
  • 音频设备。在这里设置输入与输出设备。
  • 设置。对声音进行细节的把控。

虽然还可以在Config中进行更细致的改动,但是简单使用的话图形界面中的设置就够用了。
我们先来看模型。默认情况下,会使用kikiV1模型。

然后选择音频设备。你可能在选项中看到了相当多的选项,即使是同一个设备也有很多选项。
这是因为在声音处理方案上有MME、WDM、ASPI等等方案。虽然MME方案的延迟和音质都不出众,但胜在稳定。我们先使用MME项目;确定可以使用没有问题后,再考虑切换别的处理方案。

在输入设备中,选择NvdiaBroadCast MME,这样就可以导入降噪后的声音了。
在输出设备中,选择VoiceMeeter Input,把处理后的声音导入第一个虚拟输入口。

接下来进行设置。

  • 大多数设置保持默认即可。
  • 响应阈值可以适度调低,避免失声。
  • 响度因子可以适度调低。
  • 音高算法建议使用rmvpe。
  • harvest进程数越多,速度越快,越消耗性能。
  • 关闭输入和输出降噪。打开可能导致失声。

完成后,打开【开始音频转换】。

VoiceMeeter 处理

1703941133518

初次启动VoiceMeeter可能会对仪表盘感到混乱与无助——但实际上,它的运作逻辑是相当清晰的。

对于VoiceMeeter,两个重要概念是「虚拟与真实」还有「输入与输出」。
尽管很难理解,但先试着把界面从左到右看成一条流水线吧。

  1. VoiceMeeter主界面中,左侧的HARDWARE INPU1中选择硬件输入麦克风。
  • 如果选择你录音的麦克风,你可以在这里听到自己的原声。
  • 如果选择NVDIA BROADCAST,你可以听到自己降噪后的原声。
  • 需要的话,按MUTE来静音这个接口。
  1. 在中间的VIRTUAL INPUTS有两个先前提到的虚拟输入口。你可以将Windows右下角的系统声音输出选择为VoiceMeeter Aux Input。这样,第一个输入接口负责处理人声,第二个输入接口负责处理人声以外的声音。需要的话,按MUTE来静音这个接口。

  2. 在右侧的HARDWARE OUT控制输出的设备。可以选择自己的耳机,或者中意的扬声器。你可能已经注意到了——VoiceMeeter已经接管了Windows的声音处理。需要的话,按MUTE来静音这个接口。

如果一切正常,那么已经能够在自己的扬声器中听到自己的声音了。如果觉得延迟过高,可以尝试更换处理方案,或者在VB的设置中降低采样延迟。

收尾

实际上完全没有必要去购买那些奇怪的教程或者模型。需要的话,可以找来自己喜欢的声音,来训练一个模型的。
话又说回来,即使在虚拟世界,该社恐还是会社恐啊……

经验

值得注意的是,「麦克风」和「扬声器」都是抽象概念。对于系统来说均能输出声音。

  • Headset Microphone,还有Headphone等等硬件获取声音的麦克风,这类设备作为硬件输入,显示在VB面板中最左侧的HARDWARE INPUT
  • AudioRelay等等软件,捕获手机麦克风、然后输出声音的方式,是通过软件模拟一个麦克风来发声。尽管如此,这依旧可以当作硬件输入,VB会把它们识别为真正的麦克风,同样显示在VB面板中最左侧的HARDWARE INPUT
  • 英伟达降噪有有麦克风与扬声器两张选项卡,分别能够对麦克风和扬声器在发出声音前进行降噪,然后再次作为麦克风输出。这相当于一个中继站——对于VB来说,这同样是一个硬件输入,显示在VB面板中最左侧的HARDWARE INPUT

是的,无论物理存在与否,他们都可以作为硬件输入,即使是模拟出来的。一定要理清自己设备中每一个声音设备的意义。
这些硬件输入的麦克风,都能在英伟达的麦克风面板中找到。

评论