Skip to content

语音转文本 ​

Xime 的语音转文本支持两种方式:本地离线识别(内置,v2.6.0+)与在线语音识别插件(如阿里百炼 FunAsr、火山引擎),均可将语音实时转换为文字输入。

权限声明

使用语音转文本功能需要以下权限:

  • 录音权限(必需) - 录制语音用于识别
  • 网络权限(在线识别需要) - 在线识别需连接服务商;本地离线识别仅下载模型时需要网络

首次使用时,系统会请求麦克风权限,请务必点击「允许」。如果拒绝权限,语音功能将无法使用。

功能定位

  • 本地离线识别:无需联网、不上传语音数据,适合注重隐私或网络不便的场景,识别能力依赖本地模型。
  • 在线识别:基于在线 ASR 插件,识别准确率与响应速度更高。如果您追求更高的识别准确率、更丰富的功能(如语音命令、多语言混合识别等),建议使用商业输入法(如讯飞、百度、搜狗等)。

功能特点 ​

  • 本地离线识别(v2.6.0+) - 内置离线识别引擎与独立进程识别服务,本地模型下载后无需联网即可使用
  • 在线实时识别 - 基于在线 ASR 插件,实时流式识别
  • 流式输出 - 识别结果实时显示;句子结束时(或长按松开时)一次性提交完整句子,整句连贯、不重复、不会因按键而丢失
  • 自带标点 - 在线 ASR 插件识别结果自带标点,宿主不再重复追加
  • 音量与频谱可视化 - 显示麦克风音量波动;常驻语音模式下候选栏显示实时频谱动画
  • 常驻语音模式(v2.6.0+) - 点击工具栏语音按钮进入常驻语音状态,无需长按空格键
  • 预缓冲机制 - 按住空格键时立即开始录音,缓存音频数据,防止语音丢失(吃字)
  • 模型预热 - 本地模型提前加载预热,避免识别启动延迟导致音频丢失
  • STT 开关 - 可在设置中启用或禁用语音转文字功能,禁用后长按空格键输出连续空格
  • 服务商单选 - 在线语音识别服务商只能同时使用一个,可在设置中切换

本地离线识别 ​

v2.6.0 起内置离线语音识别能力,识别在本地独立进程中完成,语音数据不上传。

启用步骤 ​

  1. 进入「设置 → 扩展商店 → 模型」标签页,在语音模型区域下载本地语音识别模型
  2. 进入「设置 → 语音转文本」
  3. 在引擎切换开关中选择「本地」引擎
  4. 授予麦克风权限即可使用

特性说明 ​

  • 独立进程服务 - 识别运行在独立进程(AsrInferenceService)中,与键盘进程隔离,避免识别负载影响打字流畅度
  • 模型预热 - 支持模型预热机制,避免首次识别时模型加载延迟导致音频丢失
  • 前缓冲 - 弱音开头的音频内容会被缓存,不会被丢弃
  • 空闲释放 - 模型空闲时自动释放,降低内存与功耗占用

语音识别插件 ​

在线语音识别以插件形式提供。语音识别完全插件化,标点预测模型已移除;如需在线识别,请安装并启用相应插件。

可用插件 ​

插件服务商特点
FunAsr阿里百炼WebSocket 流式,自带标点,高准确率
Volc ASR火山引擎WebSocket 流式二进制协议,支持中间结果
Tencent ASR腾讯云实时语音识别 V2(WebSocket),支持中英粤及 30 种方言、说话人分离引擎、临时热词表

kaomoji、meme-bunny、funasr-asr 插件随 APK 内置;volc-asr、tencent-asr 插件可在「扩展商店 → 插件」中下载。

启用步骤 ​

  1. 确保已安装并启用至少一个语音识别插件(「设置 → 插件管理」确认启用状态)
  2. 进入「设置 → 语音转文本」
  3. 在服务商列表中选择一个提供商,点击激活(未配置的插件会跳转配置页)
  4. 填写 API Key 等配置信息
  5. 授予麦克风权限

配置 FunAsr 插件 ​

获取 API Key ​

  1. 访问 阿里云百炼平台
  2. 登录/注册阿里云账号
  3. 在模型广场获取 API Key

配置步骤 ​

  1. 在「扩展商店 → 插件」中下载 funasr-asr 插件(或确认已安装)
  2. 进入「设置 → 语音转文本」
  3. 选择「阿里百炼 FunAsr」服务商
  4. 将 API Key 粘贴到输入框并保存
  5. 点击激活,授予麦克风权限

配置 Volc ASR 插件 ​

  1. 确认 volc-asr 插件已启用
  2. 进入「设置 → 语音转文本」
  3. 选择「火山引擎流式语音识别」服务商
  4. 按提示填写 API Key / 鉴权信息
  5. 在插件中心为该插件声明的域名授权(openspeech.bytedance.com)
  6. 点击激活

配置 Tencent ASR 插件 ​

  1. 确认 tencent-asr 插件已安装并启用
  2. 前往腾讯云语音识别控制台开通语音识别服务,并在「API 密钥管理」页面获取 AppID / SecretId / SecretKey
  3. 进入「设置 → 语音转文本」,选择「腾讯云实时语音识别」服务商,填写三要素
  4. 可选配置:
    • 引擎模型:默认 16k_zh_en_2.0(中英粤 + 30 种方言);如需说话人分离,改为 16k_zh_en_speaker_2.0
    • 临时热词表:格式 热词|权重,多个用英文逗号分隔(如 腾讯云|10,语音识别|5),提升专有名词识别率
  5. 在插件中心为该插件声明的域名授权(asr.cloud.tencent.com)
  6. 点击激活

使用方法 ​

启用语音功能 ​

在「设置 → 语音转文本」中开启语音转文字开关。如果关闭该开关,长按空格键将不会进入语音模式,而是连续输出空格字符。

启动语音输入 ​

  1. 在输入状态下,长按空格键进入语音模式
  2. 或点击键盘上的麦克风图标
  3. 开始说话,识别结果会实时显示

预缓冲机制:长按空格键时,系统会立即开始录音并缓存音频数据,避免因录音启动延迟导致的语音丢失(吃字)。松开空格键后,缓存的音频会与后续录音一起发送给识别引擎。

结束语音输入 ​

  • 松开空格键:提交识别结果
  • 点击发送按钮:提交结果并关闭语音模式
  • 点击取消按钮:放弃结果并关闭语音模式

常驻语音模式 ​

除了长按空格键,v2.6.0 起还支持常驻语音模式,适合长时间连续语音输入:

  1. 点击键盘工具栏上的语音按钮(麦克风图标)进入常驻语音状态
  2. 候选栏显示当前语音引擎名称和实时频谱动画
  3. 说话过程中识别结果实时上屏
  4. 结束方式二选一:轻触空格键,或点击候选栏上的频谱动画(v3.0.0+),都会结束识别并提交结果(带震动反馈)

权限要求 ​

语音转文本功能需要以下权限:

权限用途必需场景如何授予
麦克风(RECORD_AUDIO)录制语音用于识别所有场景必需首次使用时弹窗请求,点击「允许」
网络(INTERNET)在线识别连接服务商;下载本地模型在线识别 / 首次下载模型应用安装时自动授予

权限检查 ​

如果语音功能无法使用,请检查权限设置:

  1. 进入「系统设置 → 应用 → Xime → 权限」
  2. 确保「麦克风」权限已开启
  3. 确保网络连接正常

提示

  • 拒绝麦克风权限后,语音功能将完全无法使用
  • 可以在系统设置中重新授予麦克风权限

技术细节 ​

语音识别架构 ​

  • 宿主仅负责音频采集:AudioRecord 16kHz / 单声道 / PCM 16-bit
  • 本地识别运行在独立进程服务 AsrInferenceService 中,支持模型预热与空闲释放
  • 在线后端按需加载:首次语音识别时加载,不预加载
  • 在线插件引擎按需初始化:首次 startRecognition() 时后台线程加载

在线 API 技术参数 ​

  • 采样率:16000 Hz
  • 格式:PCM 16-bit 单声道
  • 识别服务:由所选插件提供(WebSocket 流式协议)

相关文件 ​

文件说明
SpeechRecognitionManager.kt语音识别管理器(录音 + 后端调度)
AsrInferenceService.kt本地离线识别服务(独立进程)
PluginAsrBackendAdapter.kt插件 ASR 后端适配器
VoiceRecognitionHandler.kt语音识别 UI 处理
JsAsrBackend.kt(plugin-core)JS ASR 后端实现
funasr-asr/main.ts(插件)FunAsr WebSocket 协议实现(TypeScript)
volc-asr/main.ts(插件)火山引擎协议实现(TypeScript)
tencent-asr/main.ts(插件)腾讯云实时语音识别实现(TypeScript)

常见问题 ​

Q: 语音识别无反应? ​

检查以下几点:

  1. 是否已授予麦克风权限
  2. 引擎选择是否正确(本地引擎需已下载模型;在线引擎需已安装并启用插件)
  3. 在线识别需检查:API Key 是否正确配置、是否已激活服务商、网络连接是否正常

Q: 本地离线识别和在线识别怎么选? ​

  • 本地离线识别:无需联网、语音数据不出设备,但需要下载模型,占用一定存储与内存
  • 在线识别:准确率通常更高,但需要联网并配置 API Key,语音数据会上传至服务商

Q: 识别准确率低? ​

  1. 确保在安静环境下使用
  2. 说话清晰,语速适中
  3. 麦克风没有被遮挡

Q: 连接失败? ​

  1. 检查网络连接
  2. 确认 API Key 有效
  3. 检查插件声明的网络域名是否已授权(插件管理 → 网络权限)
  4. 稍后重试,可能是服务端临时故障

Q: 识别结果标点很多、句子被切碎? ​

已优化为整句提交:识别过程中的部分结果只做实时预览,句子结束(或长按松开)时才一次性提交完整句子,整句连贯、不重复。在线 ASR 自带标点,宿主不会再重复追加(避免"。。")。

Q: 语音输入时按其他键,已识别的内容消失了? ​

语音模式为长按触发:说话时部分结果实时上屏,松开空格键时会立即提交当前已识别内容并结束识别,不会因按其他键而丢失。如果仍遇到,请确认已更新到包含该修复的版本。

注意事项 ​

  • 本地离线识别无需联网使用,下载模型时需要网络
  • 在线识别需要联网,API Key 请妥善保管,不要泄露
  • 在线识别的语音数据会上传至所选服务商进行处理;本地识别的语音数据不出设备
  • 在线识别建议在 WiFi 环境下使用,避免消耗移动数据流量

基于 GPLv3 许可发布