在其他程序中使用实时变声
把实时变声的声音当作麦克风,送进 Discord、Zoom、OBS、游戏或任何其他程序:分步讲解 Windows(VB-CABLE 或 Voicemeeter)、macOS(BlackHole)和 Linux(PipeWire 或 PulseAudio 虚拟麦克风)上的虚拟声卡设置。
实时变声把转换后的声音播放到一个输出设备上。要让其他程序把它当作麦克风来录,需要一块虚拟声卡:它有一个播放端,由 rvc-next 往里播放;还有一个录音端,由其他程序从中录制。播放进一端的声音,会从另一端出来。
flowchart LR
mic["麦克风"] --> rvc["rvc-next 实时变声"]
rvc -- "输出" --> play["虚拟声卡<br/>播放端"]
play --> rec["虚拟声卡<br/>录音端"]
rec -- "麦克风设置" --> app["Discord、Zoom、OBS…"]
rvc -. "监听(可选)" .-> hp["你的耳机"]
| 系统 | 虚拟声卡 | rvc-next 的 输出 | 其他程序的麦克风 |
|---|---|---|---|
| Windows | VB-CABLE(最简单) | CABLE Input (VB-Audio Virtual Cable) | CABLE Output (VB-Audio Virtual Cable) |
| Windows | Voicemeeter Banana(需要混入其他声音时) | Voicemeeter AUX Input | Voicemeeter Out B1 |
| macOS | BlackHole 2ch | BlackHole 2ch | BlackHole 2ch |
| Linux | PipeWire / PulseAudio 虚拟麦克风 | rvc-next-virtual(自己添加的 ALSA 设备) | RVC-Next-Microphone |
开始之前
- rvc-next 要和其他程序运行在同一台电脑上。 实时变声打开的是服务器所在电脑的设备(服务器设备)。rvc-next 运行在另一台电脑上时,见 rvc-next 在另一台电脑上。
- 先用耳机把实时变声调通。 输入 选麦克风,输出 选耳机,确认 输入电平 会跳动,点 测试,再点 开始 听一听。调通之后,再按下文把 输出 换成虚拟声卡。
- 戴耳机。 用扬声器时,麦克风会录到对方的声音,把它也转换一遍。
- 系统的默认输出保持为真实的耳机或扬声器,只在 rvc-next 和其他程序里选虚拟声卡。如果把虚拟声卡设为默认输出,电脑播放的所有声音(包括通话本身)都会进入你的“麦克风”。
- 如果你把虚拟声卡设成了系统的默认输入(有些游戏没有麦克风设置),rvc-next 的 输入 必须按名称选真实的麦克风,而不是 系统默认,否则 rvc-next 会录到自己的输出。
- 用监听听自己。 rvc-next 的 监听 是第二个输出:选你的耳机,监听内容 选 转换后,就能听到对方听到的声音。输出 旁的 测试 播放进虚拟声卡,所以你听不到;检查耳机请用 监听 旁的 测试。
Windows:VB-CABLE
VB-CABLE 是 VB-Audio 出品的一条免费(捐赠软件)虚拟音频线。配合 rvc-next 的监听,语音聊天只需要它就够了。
安装
- 从 vb-audio.com/Cable 下载 VB-CABLE Driver Pack,解压整个 zip。
- 右键 VBCABLE_Setup_x64.exe(32 位 Windows 用 VBCABLE_Setup.exe),选 以管理员身份运行,再点 Install Driver。
- 重启 Windows。
- 打开声音控制面板(设置 › 系统 › 声音 › 更多声音设置)。播放 选项卡里多了 CABLE Input,录制 选项卡里多了 CABLE Output。确认真实的耳机(播放)和麦克风(录制)仍是默认设备;如果安装程序把虚拟线设成了默认,右键真实设备选 设为默认设备。
- 可选,为了最低延迟:打开 CABLE Input 和 CABLE Output 的 属性 › 高级,把两者的 默认格式 设成一样,例如 2 通道、24 位、48000 Hz。
- 可选,推荐:为麦克风、耳机和虚拟线的两端 关闭独占控制。
设置 rvc-next
- 打开 实时,点 刷新设备。
- 输入:你的麦克风。
- 输出:CABLE Input (VB-Audio Virtual Cable),带 虚拟 标签。
- 监听:你的耳机;监听内容:转换后。
- 高级 里的驱动保持推荐的 WASAPI,独占模式(WASAPI) 保持关闭,这样其他程序可以同时使用这条虚拟线。
- 点 开始 并说话。声音控制面板 录制 选项卡里 CABLE Output 旁的电平条会随之跳动。
设置其他程序
把它的麦克风选为 CABLE Output (VB-Audio Virtual Cable),扬声器选你的耳机。需要关闭的处理见 其他程序里的设置。
不要再打开“侦听此设备”
很多 VB-CABLE 教程让你在 CABLE Output › 属性 › 侦听 中勾选 侦听此设备,以便听到虚拟线里的声音。rvc-next 的 监听 已经做了这件事;两者同时打开,你会听到两遍自己,第二遍还多一段延迟。
Windows:Voicemeeter
Voicemeeter(VB-Audio 出品,免费,捐赠软件)是一个虚拟调音台。如果通话或直播里除了你的声音还要混入别的声音(音乐、游戏声),或者想给声音加上它的均衡器和压缩器,就用它代替 VB-CABLE。下面的步骤以 Voicemeeter Banana 为例;之后是 Standard 与 Potato 的说明。
设备名称
Voicemeeter 会添加虚拟播放设备(rvc-next 往里播放)和虚拟录音设备(其他程序从中录制)。2024 年的版本换了新驱动,录音设备从此叫 Out B1/B2/B3;旧的安装显示旧名称:
| Voicemeeter 的通道条或总线 | 播放设备(rvc-next 的 输出) | 录音设备,现在的名称 | 录音设备,2024 年之前 |
|---|---|---|---|
| 虚拟输入 VAIO | Voicemeeter Input | — | — |
| 虚拟输入 AUX(Banana、Potato) | Voicemeeter AUX Input | — | — |
| 虚拟输入 VAIO3(Potato) | Voicemeeter VAIO3 Input | — | — |
| 虚拟总线 B1 | — | Voicemeeter Out B1 | Voicemeeter Output |
| 虚拟总线 B2(Banana、Potato) | — | Voicemeeter Out B2 | Voicemeeter AUX Output |
| 虚拟总线 B3(Potato) | — | Voicemeeter Out B3 | Voicemeeter VAIO3 Output |
每个名称后面的括号里是驱动名,例如 (VB-Audio Voicemeeter VAIO)。从旧版本升级后,要在每个用过它们的程序里重新选择设备。
安装
- 从 vb-audio.com/Voicemeeter/banana.htm 下载 Voicemeeter Banana,以管理员身份 运行安装程序,然后重启 Windows。
- 启动 Voicemeeter Banana。它必须在运行,它的设备才会有声音:打开 Menu › Run on Windows Startup(开机启动)。
设置 Voicemeeter
Voicemeeter 窗口左侧是输入通道条(三个硬件输入,然后是两个虚拟输入 VOICEMEETER VAIO 和 VOICEMEETER AUX),右侧是输出。每个输入通道条上的 A1 A2 A3 B1 B2 按钮决定这路输入送往哪些总线:A 总线是真实的输出设备,B 总线是虚拟录音设备。
- 先选 A1。 点右上角 HARDWARE OUT 下的 A1,选你的耳机,最好选 WDM 开头的那一项(KS 也可以,MME 作为后备)。A1 是 Voicemeeter 的主输出:整个调音台的采样率和缓冲都跟随它。
- 硬件输入不要动。 rvc-next 会自己打开麦克风。不要把麦克风选为 Hardware Input 1;如果已经选了,把那条通道的 B1 关掉。否则对方会同时听到你的原声和转换后的声音,而且 Voicemeeter 可能占住麦克风,让 rvc-next 报告 被其他程序占用。为麦克风和 Voicemeeter 的设备 关闭独占控制 也有帮助。
- VOICEMEETER AUX 通道条(rvc-next 往这里播放):打开 B1,转换后的声音就会进入 Voicemeeter Out B1。想通过 Voicemeeter 听到自己,再打开 A1,这时 rvc-next 的 监听 选 不监听(两边都开会听到两遍)。
- VOICEMEETER VAIO 通道条:如果按 VB-Audio 自己的教程把 Voicemeeter Input 设为默认播放设备,Windows 的声音就会进入这一条。打开 A1、关闭 B1,这样电脑的声音能传到耳机,但不会进入通话。要有意把音乐或游戏声送进通话,再打开它的 B1。
让 rvc-next 走 AUX,是为了把两者分开:如果 rvc-next 走 VAIO,而 VAIO 又是默认播放设备,Windows 的所有声音都会和你的声音一起进入通话。
设置 rvc-next
- 打开 实时,点 刷新设备。
- 输入:你的麦克风。
- 输出:Voicemeeter AUX Input。
- 监听:如果已通过 Voicemeeter 的 A1 听自己,选 不监听;否则选你的耳机。
- 点 开始 并说话:VOICEMEETER AUX 通道条和 B1 总线的电平表会跳动。
设置其他程序
把它的麦克风选为 Voicemeeter Out B1(2024 年之前:Voicemeeter Output)。在 OBS 里,把 Voicemeeter Out B1 添加为一个 音频输入采集 来源。
延迟与排查
- Voicemeeter 会在 rvc-next 的延迟之上再加自己的缓冲。Menu › System Settings / Options 里可以按驱动类型设置缓冲;缓冲越小延迟越低,但出现爆音就说明对你的电脑太小了。
- 在 Windows 里改动过设备,或某条通道一直没有声音时,用 Menu › Restart Audio Engine(重启音频引擎)。
- 所有 Voicemeeter 设备都以 A1 的采样率运行。在声音控制面板里把 Voicemeeter 的播放和录音设备设成同一格式(48000 Hz);麦克风也用 48 kHz 时,rvc-next 会显示 单个双工流。
Standard 与 Potato
- Voicemeeter(Standard) 只有一个虚拟输入(VAIO)和一条虚拟总线(B)。rvc-next 的输出选 Voicemeeter Input,打开 VAIO 通道条的 B,其他程序录 Voicemeeter Out B1。不要把 Voicemeeter Input 设为默认播放设备,否则 Windows 的所有声音都会进入通话。
- Voicemeeter Potato 多一个虚拟输入和一条虚拟总线(VAIO3、B3)。Banana 的步骤原样适用;VAIO3 可以用来接第二个声源。
Windows:关闭独占控制(可选,推荐)
Windows 允许一个程序把设备据为己有(独占模式):它占着设备时,其他程序都不能通过这台设备播放或录音。默认情况下每台设备都允许这样做,而且独占请求甚至会把设备从正在使用它的程序手里抢走(“给与独占模式应用程序优先”)。有些游戏、语音聊天程序和播放器会请求独占模式,这时 rvc-next 会在会话中途失去麦克风或虚拟声卡(实时变声进入 正在重新连接设备…),或者根本打不开它(被其他程序占用)。反过来,其他程序也可能这样被 rvc-next 抢走设备。
为链路中的设备关闭独占控制,就能避免这类问题。这一步是可选的:遇到上述现象时,或者在直播、通话要依赖这套设置之前做一次即可。
- 按 Win + R,输入
mmsys.cpl后回车。(或者 设置 › 系统 › 声音 › 更多声音设置。) - 在 录制 选项卡中双击你的 麦克风。
- 打开 高级 选项卡,在 独占模式 下取消勾选 允许应用程序独占控制该设备(Allow applications to take exclusive control of this device)。下方的 给与独占模式应用程序优先(Give exclusive mode applications priority)会随之变灰。点 应用,再点 确定。
- 对链路中的其他设备做同样的设置:
- 录制 选项卡:其他程序使用的录音端(CABLE Output 或 Voicemeeter Out B1);
- 播放 选项卡:你的 耳机(rvc-next 的监听、Voicemeeter 的 A1),以及 rvc-next 播放进去的播放端(CABLE Input,或 Voicemeeter Input / Voicemeeter AUX Input)。
- 停止并重新开始实时变声,并重启其他程序,让它们重新打开设备。
较新的 Windows 11 版本(26H2 起)在“设置”应用里也有这个开关:设置 › 系统 › 声音,选择设备,然后在 高级 下关闭 独占模式。上面的控制面板方法在所有 Windows 10 和 11 版本上都适用。
说明:
- rvc-next 自己的 高级 › 独占模式(WASAPI) 保持关闭(默认即关闭)。在已关闭独占控制的设备上,Windows 会拒绝它;如果你打开了它,设备面板会报告问题并给出 关闭独占模式 按钮。
- 如果某台设备你有意让其他程序独占使用(例如比特完美播放的音乐播放器、DAW),就保留它的独占控制。ASIO 驱动完全不经过这些 Windows 设置。
- 同一个 高级 选项卡也用来设置设备的 默认格式(VB-CABLE › 安装 第 5 步)。有些设备在这里还有 启用音频增强(或单独的 增强 选项卡);在麦克风上关闭它,可以避免驱动自带的处理改变 rvc-next 要转换的声音。
Windows:麦克风权限与自动降低音量
- 设置 › 隐私和安全性 › 麦克风:麦克风访问权限 和 允许桌面应用访问你的麦克风 必须打开,否则 rvc-next(一个 Python 程序)只能录到静音,或报告 麦克风权限被拒绝。
- 语音聊天程序录音时,Windows 可能会降低其他所有声音。不想这样的话,打开声音控制面板的 通信 选项卡,选 不执行任何操作。
macOS
macOS 本身没有虚拟声卡,BlackHole(Existential Audio 出品,免费开源)可以添加一个。变声用 BlackHole 2ch 这一个立体声设备:它既是输出(rvc-next 往里播放),也是输入(其他程序从中录制)。
安装
- 退出所有正在使用音频的程序。
- 安装 BlackHole 2ch,任选其一:
- 用 existential.audio/blackhole 的安装包,提示时重启;
- 用 Homebrew:
brew install blackhole-2ch。
- 打开 音频 MIDI 设置(应用程序 › 实用工具)。左侧列表里有 BlackHole 2ch;选中它,把 格式 设为 48,000 Hz(大多数麦克风使用的采样率)。
- 系统输出保持为你的耳机(系统设置 › 声音 › 输出)。
如果没看到 BlackHole,用 sudo killall -9 coreaudiod 重启 Core Audio,或者重启 Mac。
允许使用麦克风
rvc-next 第一次打开麦克风时,macOS 会询问启动 rvc-next 的程序(终端、iTerm2、VS Code…)能否使用麦克风,请允许。如果点了拒绝,或 rvc-next 报告 麦克风权限被拒绝,在 系统设置 › 隐私与安全性 › 麦克风 中打开那个程序,然后彻底退出它,再重新启动 rvc-next。
设置 rvc-next
- 打开 实时,点 刷新设备。
- 输入:你的麦克风(例如 MacBook Pro 麦克风 或 USB 麦克风)。这里不要选 BlackHole 2ch:那会录到 rvc-next 自己的输出。
- 输出:BlackHole 2ch,带 虚拟 标签。
- 监听:你的耳机;监听内容:转换后。
- 点 开始 并说话。
设置其他程序
把它的麦克风选为 BlackHole 2ch。见 其他程序里的设置。
说明
- 不需要“多输出设备”。 很多 BlackHole 教程会在音频 MIDI 设置里创建一个多输出设备,让 Mac 自己的声音同时送到 BlackHole 和扬声器。那是为了录制电脑的声音;对于转换后的声音,“自己听”这部分由 rvc-next 的 监听 负责。
- 想把 Mac 自己的声音(视频、游戏)作为实时变声的输入,需要第二个环回设备,因为一个设备不能同时作为 rvc-next 的输入和输出。再安装 BlackHole 16ch(
brew install blackhole-16ch),用耳机和 BlackHole 16ch 创建一个 多输出设备 并设为系统输出,然后把 BlackHole 16ch 选为 rvc-next 的输入;BlackHole 2ch 仍作为输出。 - 蓝牙耳机:一旦使用它们的麦克风,AirPods 和大多数蓝牙耳机都会切换到低音质的通话模式,蓝牙本身也会增加延迟。请用 Mac 内置麦克风或 USB 麦克风作为输入。
- 其他选择:Rogue Amoeba 的 Loopback(付费)可以创建有名称的虚拟设备并混合多个声源;VB-CABLE for Mac 的用法和 Windows 上的 VB-CABLE 一样。两者用法相同:rvc-next 往它的输出端播放,其他程序录它的输入端。
- 卸载:
sudo rm -R /Library/Audio/Plug-Ins/HAL/BlackHole2ch.driver,然后sudo killall -9 coreaudiod。
Linux
在 Linux 桌面上,声卡由声音服务器管理(目前大多数发行版用 PipeWire,较旧的用 PulseAudio)。你要创建一个虚拟输出(sink),供 rvc-next 往里播放;再创建一个虚拟麦克风,携带这个输出的声音,供其他程序录制。
Linux 上有两点不同:
- 浏览器和 Electron 程序(Discord、Slack…)会把“Monitor of …”这类监视器源从麦克风列表里隐藏掉。 所以下面的步骤会添加一个真正的虚拟麦克风(重映射源),而不是直接用输出的监视器。
- rvc-next 不会逐个列出 PipeWire 或 PulseAudio 的输出。 大多数发行版自带的 PortAudio 库只和 ALSA(以及 JACK)打交道;声音服务器只以 ALSA 设备 pipewire、pulse、default 的形式出现,它们都播放到默认输出。所以要添加一个小小的 ALSA 设备 rvc-next-virtual,让它播放到虚拟输出。
1. 查看声音服务器
pactl info | grep "Server Name"显示 PulseAudio (on PipeWire 1.x.x) 表示 PipeWire;显示 pulseaudio 表示 PulseAudio。如果没有 pactl,安装 pulseaudio-utils(Debian、Ubuntu、Fedora)或 libpulse(Arch);两种服务器都能用它。
2. 创建虚拟输出和虚拟麦克风
pactl load-module module-null-sink sink_name=rvc_next rate=48000 sink_properties=device.description=RVC-Next
pactl load-module module-remap-source master=rvc_next.monitor source_name=rvc_next_mic source_properties=device.description=RVC-Next-Microphone第一条命令创建输出 RVC-Next(rvc_next),第二条创建输入源 RVC-Next-Microphone(rvc_next_mic),它携带播放进该输出的所有声音。用 pactl list short sinks 和 pactl list short sources 检查。
这两条命令在 PipeWire 和 PulseAudio 上都适用,但只保留到注销或重启声音服务器为止。要一直保留,见 永久生效。
3. 为 rvc-next 添加 ALSA 设备
在 ~/.asoundrc 里加入下面其中一段(文件不存在就新建;已有内容保留)。按 rvc-next 的 输出 菜单里已经有的设备来选:有 pipewire 说明装了 PipeWire 的 ALSA 插件(软件包 pipewire-alsa),有 pulse 说明装了 PulseAudio 的 ALSA 插件(Debian、Ubuntu 上是 libasound2-plugins,Fedora 上是 alsa-plugins-pulseaudio,Arch 上是 alsa-plugins)。
pcm.rvc-next-virtual {
type pipewire
playback_node "rvc_next"
hint {
show on
description "RVC Next virtual output"
}
}两段都定义了一个名为 rvc-next-virtual 的 ALSA 设备,播放到 rvc_next 输出。修改文件后重启 rvc-next:ALSA 在程序启动时读取它。
4. 设置 rvc-next
- 打开 实时,点 刷新设备。
- 输入:pipewire 或 pulse(系统的默认麦克风),或 系统默认。它们经过声音服务器,其他程序可以同时使用麦克风。想用哪个麦克风,就在桌面的声音设置里把它设为默认输入。
- 输出:rvc-next-virtual,带 虚拟 标签。
- 监听:pipewire 或 pulse,它们播放到你的默认输出(耳机);监听内容:转换后。
- 在 高级 里把 采样率 从 自动 改为 48 kHz(PipeWire 通常使用的采样率)。
- 点 开始 并说话。在
pavucontrol(PulseAudio 音量控制)的 输入设备 选项卡里,RVC-Next-Microphone 的电平会跳动;回放 选项卡里能看到 rvc-next 的两路声音,一路在 RVC-Next 上,监听那一路在耳机上。
5. 设置其他程序
把它的麦克风选为 RVC-Next-Microphone。Discord、Zoom、OBS 的 Flatpak 和 Snap 版本也能看到它。在 Discord 里不要选 默认:它可能跟随另一台设备。
不要把 RVC-Next-Microphone 设为系统的默认输入:rvc-next 的 pipewire、pulse 和 系统默认 输入录的就是默认输入,那样 rvc-next 会录到自己的输出。对于没有麦克风设置的程序,先启动它,再在 pavucontrol 的 录音 选项卡里把它的那一路移到 RVC-Next-Microphone;声音服务器下次会记住这个选择。
永久生效
~/.asoundrc 会一直保留。虚拟输出和虚拟麦克风这样保留:
新建 ~/.config/pipewire/pipewire-pulse.conf.d/rvc-next.conf:
pulse.cmd = [
{ cmd = "load-module" args = "module-null-sink sink_name=rvc_next rate=48000 sink_properties=device.description=RVC-Next" flags = [ ] }
{ cmd = "load-module" args = "module-remap-source master=rvc_next.monitor source_name=rvc_next_mic source_properties=device.description=RVC-Next-Microphone" flags = [ ] }
]然后重启声音服务器(或注销后重新登录):
systemctl --user restart pipewire pipewire-pulse wireplumber移除
pactl unload-module module-remap-source
pactl unload-module module-null-sink这两条会移除所有重映射源和空输出,包括你为其他用途创建的。然后从 ~/.asoundrc 删掉 rvc-next-virtual 那一段,并删除 永久生效 里新建的文件。
其他程序里的设置
语音聊天程序会处理麦克风,以便清理真人的声音。转换后的声音本来就是干净的,这些处理反而容易吞掉辅音、让音量忽大忽小或切掉字词,所以请关掉它们。
| 程序 | 麦克风 | 关闭 / 修改 |
|---|---|---|
| Discord | 用户设置 › 语音和视频 › 输入设备 | 噪声抑制:无(或标准;Krisp 最激进);回声消除:戴耳机时关闭;自动增益控制:关闭;自动确定输入灵敏度:关闭,再把滑块调到说话时变绿的位置 |
| Zoom | 设置 › 音频 › 麦克风 | 自动调节麦克风音量:关闭;抑制背景噪音:低 |
| OBS Studio | 来源 › + › 音频输入采集 › 设备,或 设置 › 音频 › 麦克风/辅助音频 | 这个来源上不要加降噪滤镜 |
| 网页应用(Google Meet、网页版 Teams、浏览器里的 Discord) | 会议的音频设置,或网站的麦克风权限 | 应用自带的降噪(如果有) |
| 没有麦克风设置的游戏和程序 | 它们使用系统的默认输入:在 设置 › 系统 › 声音 › 输入(Windows)或 系统设置 › 声音 › 输入(macOS)里把录音端设为默认。Linux:改为在 pavucontrol › 录音 里移动它的那一路(Linux 第 5 步) | Windows、macOS:rvc-next 的 输入 必须选真实的麦克风,而不是 系统默认 |
用程序自带的麦克风测试(Discord 的 我们来检查一下、Zoom 的 测试麦克风)听听对方会听到什么。
日常使用
- 按键说话。 rvc-next 会增加约半秒的延迟(实时页上显示的延迟)。如果一说完就松开按键,句尾会被切掉:把程序的按键说话释放延迟(Discord:按键说话释放延迟)调到高于这个延迟,或者多按住一会儿。
- 语音激活。 用语音激活时,请用实时变声的 输入门限(在 缓冲与降噪 里),以免背景噪音被转换成类似人声的声音,让通话的语音激活一直打开。
- 全程用同一个采样率。 麦克风和虚拟声卡都是 48 kHz 时,设备面板显示 单个双工流,比 分离的输入输出流 少一个块的延迟。
- 测量软件链路的延迟。 测量延迟 可以直接经过虚拟声卡:输入选录音端(CABLE Output、BlackHole 2ch),输出选播放端(Windows 和 macOS)。需要先停止实时变声;测完后把输入和输出改回来。
- 启动顺序无所谓。 实时变声停止时,其他程序可以一直选着虚拟麦克风;点 开始 之前它听到的是静音。
rvc-next 在另一台电脑上
虚拟声卡必须装在实时变声所用设备的那台电脑上:
-
服务器设备:把虚拟声卡装在服务器电脑上,其他程序也在那台电脑上运行。
-
本浏览器:转换后的声音在浏览器所在的电脑上、通过浏览器的输出播放。要把它送进那台电脑上的某个程序,就让浏览器播放到虚拟声卡:
- Windows:设置 › 系统 › 声音 › 音量合成器,选浏览器,把它的 输出设备 设为 CABLE Input。
- Linux:在
pavucontrol的 回放 选项卡里,把浏览器的那一路移到 RVC-Next。 - macOS 没有按程序选择输出的功能;用 Rogue Amoeba 的 Loopback,或者说话期间把 BlackHole 2ch 设为系统输出,并把通话程序的扬声器设为耳机(这时 Mac 播放的其他声音也会进入通话)。
这时浏览器的麦克风必须是你的真实麦克风,而且浏览器播放的其他声音也都会进入虚拟声卡。
问题排查
| 现象 | 检查 |
|---|---|
| 对方什么也听不到 | 其他程序要用录音端(CABLE Output、Voicemeeter Out B1、BlackHole 2ch、RVC-Next-Microphone),rvc-next 的输出要用播放端。实时变声必须处于 运行中。Voicemeeter:AUX 通道条的 B1 已打开,并且 Voicemeeter 正在运行 |
| 对方还听到了我的原声,或只听到原声 | 其他程序录的是真实麦克风(或 默认);Voicemeeter 中麦克风那条通道送到了 B1 |
| 对方听到了通话、音乐或系统声音 | 虚拟声卡被设成了系统默认输出,或者(Voicemeeter)VAIO 通道条的 B1 开着 |
| 我听到两遍自己 | rvc-next 的监听和 Voicemeeter 的 A1(或 Windows 的 侦听此设备)同时开着,保留一个 |
| 声音像机器人、断断续续或有爆音 | 先看实时页的 负载 和 欠载(实时变声 的降低延迟建议);再检查采样率(全部 48 kHz),用 Voicemeeter 时加大缓冲 |
| rvc-next 的菜单里没有虚拟声卡 | 安装驱动后重启电脑(Windows、macOS),再点 刷新设备。Linux:修改 ~/.asoundrc 后重启 rvc-next |
| Linux:rvc-next-virtual 打不开 | 那一段的 type 必须对应已安装的插件:type pipewire 需要有 pipewire 设备,type pulse 需要有 pulse 设备。pactl list short sinks 里必须有 rvc_next |
| Windows:游戏或其他程序启动时,实时变声失去设备(正在重新连接设备…)或报告 被其他程序占用 | 那个程序以独占模式占用了设备:为它 关闭独占控制 |
| 麦克风权限被拒绝 | Windows:允许桌面应用访问你的麦克风。macOS:在 隐私与安全性 › 麦克风 中允许终端,然后重启它 |