Appearance
常见问题与排查 (FAQ)
本文汇总了使用 fcitx5-voice-input 过程中的常见问题与排查方法。
1. 输入法列表中找不到 Voice Input
现象
打开 fcitx5-configtool 后,在输入法添加列表中搜索不到 “Voice Input”。
排查步骤
- 确认 Fcitx5 守护进程已重启: 安装新插件后必须重启 Fcitx5 才能重新加载模块:bash
fcitx5 -r -d - 检查插件动态库安装位置: 插件文件
voice-input-addon.so必须安装在 Fcitx5 的插件加载目录下(通常为/usr/lib/fcitx5/或/usr/lib/x86_64-linux-gnu/fcitx5/):bashfind /usr/lib -name "voice-input-addon.so" 2>/dev/null - 检查取消勾选“仅显示当前语言”: 在
fcitx5-configtool的输入法配置页中,取消勾选底部 “仅显示当前语言” 选项,再搜索 “Voice Input”。
2. 无法录音或说话无反应
现象
切换到 Voice Input 输入法后,无论说话多久均无任何反应,候选栏无提示且无法上屏。
排查步骤
- 检查麦克风权限与音量: 在系统声音设置(如
pavucontrol)中确认麦克风未处于静音状态,并且输入音量处于合理水平(说话时能看到音量条跳动)。 - 检查音频后端服务状态: 插件优先通过 PulseAudio 接口捕获音频(在 PipeWire 环境下依赖
pipewire-pulse),次选 PipeWire 原生直连。bash# 检查 pipewire-pulse 状态 systemctl --user status pipewire-pulse # 或检查 pulseaudio 状态 systemctl --user status pulseaudio - 检查录音设备路由: 插件不再枚举、筛选或指定录音设备,路由由系统音频服务与音频管理器负责。先确认系统默认输入是未静音、电平有反应的设备;若默认正确仍无声,需排查是否为本应用保存了历史设备偏好,或 Fcitx 启动环境设置了
PULSE_SOURCE/client.conf源覆盖。可查看插件当前使用的流:bash在pactl info pactl get-default-source pactl list source-outputs # 在录音页/这里找到本插件对应的 indexpavucontrol的「录音(Recording)」页可把fcitx5-voice-input/voice input这条流移动到目标源。插件不会自动修改你的默认源,也不会跳过任何设备。 - 调节 VAD 检测灵敏度: 若麦克风拾音音量偏小,VAD 可能未能达到触发阈值。在
fcitx5-configtool中将VADThreshold从默认的20调小至10进行测试。
3. ASR 识别失败与 API 错误排查
现象
说话结束后,候选栏提示识别失败,或者无文字上屏。
常见错误原因与解决方案
1. Chat 模式(OpenAI 兼容)相关报错
- 阿里云百炼 (DashScope) 返回 400
- 原因:DashScope 的
qwen3-asr-flash模型使用 Chat Completions 协议,而非 OpenAI 兼容的标准 Whisper 文件上传协议。 - 解决办法:在 OpenAI 后端子配置中,务必将
ApiMode设为chat。
- 原因:DashScope 的
- 小米 MiMo 返回 402(Insufficient account balance)
- 原因:MiMo 按量付费账户余额不足(鉴权已通过,计费检查失败)。
- 解决办法:在 MiMo 控制台充值后重试。
- 小米 MiMo 返回 400(格式错误)
- 原因:MiMo 的
asr_options仅定义language,官方声明未定义参数可能被过滤或触发异常。 - 解决办法:将
EnableItn设为false,并确认BaseUrl=https://api.xiaomimimo.com/v1、Model=mimo-v2.5-asr、ApiMode=chat。
- 原因:MiMo 的
2. OpenAI Realtime 模式报错
- 原因:OpenAI 官方 Realtime 流式转录接口(如
gpt-live-transcribe)仅对付费 Tier 账号开放,免费层(Free Tier)账号调用会返回权限错误。 - 解决办法:升级为 OpenAI 付费账户,或者切换
ApiMode为标准的whisper模式。
3. BaseUrl 地址格式问题
- 原因:部分第三方兼容服务的基础 URL 路径不匹配。
- 解决办法:确认 BaseUrl 是否包含
/v1(如https://api.openai.com/v1或https://api.siliconflow.cn/v1)。注意不要在末尾添加多余的/。
4. 火山引擎豆包 ASR 鉴权失败
- 原因:火山引擎的鉴权方式与控制台版本不匹配,或资源 ID (ResourceId) 填写错误。
- 解决办法:
- 新版控制台:使用
AuthMode=api_key,仅填写 API Key。 - 旧版控制台:使用
AuthMode=app_access_key,填写 AppKey 和 AccessKey。 - 确认 ResourceId 与控制台购买的套餐类型(大模型 2.0 / 1.0、按时长 / 按并发)完全一致。
- 新版控制台:使用
4. 获取详细调试日志
当遇到难以定位的问题时,可以通过命令行以前台详细日志模式启动 Fcitx5:
bash
# 关闭后台运行的 fcitx5 实例
killall fcitx5
# 以调试模式启动 fcitx5 并输出日志
fcitx5 -d --verbose default=5 2>&1 | grep -i voiceinput在终端输出中可以直观观察到以下阶段的运行日志:
- 录音后端与音频服务路由(
Capture: pulseaudio/pipewire,Capture started ... routing managed by the audio service);插件不枚举、不打印具体设备名,实际来源请在音频管理器中查看 - VAD 语音开始(
Speech onset)与结束分段 - ASR 请求发送与 HTTP / WebSocket 返回状态
- 火山引擎请求的
X-Tt-Logid(可用于向火山引擎客服提交排查工单)
5. 关闭录音流与隐私
插件何时释放麦克风?
- 失焦(切到其他窗口):暂停识别并丢弃采样,但保留录音流,以便快速切回时无缝继续。
- 切换到其他输入法、更改输入法组、退出或重启 Fcitx5:释放录音流。
若要立刻确保插件不再录音,最简单的做法是切换到其他输入法(例如用 Ctrl + Space 切回原本的中文/英文输入法),或直接退出 Fcitx5。
虚拟设备与 Monitor 隐私
由于设备由系统默认或本应用的偏好决定:
- 若默认输入是回放 Monitor 源,插件可能录到系统正在播放的声音并送往 ASR。请在
pavucontrol中确认默认输入不是 Monitor。 - 正常的虚拟降噪 / 回声消除源不会再被插件按名称排除,可按需选为默认或应用偏好。
- 插件不会自动试录其他设备,也不会把 PCM 或转写内容写入日志(日志只记录长度)。