跳到主要内容

语音识别 (ASR)

语音识别 (ASR, Automatic Speech Recognition) 将用户的语音转换成文字。本项目支持多个语音识别模型的实现。

语音识别相关的配置项,在 conf.yaml 中的 asr_config 下面。

以下是您可以选择的语音识别选项:

sherpa_onnx_asr (本地 & 项目预设)

备注

(在 v0.5.0-alpha.1 版本的 PR: Add sherpa-onnx support #50 中添加)

sherpa-onnx 是一个功能丰富的推理工具,能运行多种语音识别(ASR)模型。

信息

v1.0.0 版本开始,本项目默认使用 sherpa-onnx 运行 SenseVoiceSmall (int8 量化) 模型作为语音识别方案。这是一个开箱即用的配置 - 你无需进行任何额外设置,系统会在首次运行时自动下载模型文件并解压到项目的 models 目录下。

推荐用户

  • 所有用户 (所以是预设)
  • 但特别是 mac 用户 (因为没啥选择)。
  • 非 N 卡用户。
  • 中文用户。
  • CPU 推理就很快。
  • 配置难度: 不用配置,因为是项目预设

SenseVoiceSmall 模型可能英文一般。

CUDA 推理

sherpa-onnx 支持 CPU 和 CUDA 推理。虽然预设的 SenseVoiceSmall 模型在 CPU 上已经表现不错,但如果您有 NVIDIA GPU,可以通过以下步骤启用 CUDA 推理来获得更好的性能:

官方文档

注意

注意: sherpa onnx 似乎只支持 CUDA 11.8,但我没有证据。请参考官方文档,安装 CUDA 11.8 以及获取更多信息。

  1. 首先卸载 CPU 版本的依赖:
uv remove sherpa-onnx onnxruntime

注意,示例中 sherpa-onnx 通过预构建 wheel 安装,这意味着您需要安装

CUDA Toolkit 11.x + CUDNN 8.x for CUDA 11.x (并将 %SystemDrive%\Program Files\NVIDIA\CUDNN\v8.x\bin 添加到您的 PATH

此处x为您的 cudnn 次版本号,如 v8.9.7 版本,此处写 v8.9

以链接到正确的 CUDA 环境。

如果您不希望使用 NVIDIA 官方安装器/手动设置PATH,可以考虑使用 pixi 管理一个局部的 conda 环境。 这种方式不需要您通过 uv 安装依赖。

pixi remove --pypi onnxruntime sherpa-onnx
pixi add --pypi onnxruntime-gpu==1.17.1 pip
pixi run python -m pip install sherpa-onnx==1.10.39+cuda -f https://k2-fsa.github.io/sherpa/onnx/cuda.html
  1. 安装 CUDA 版本的 sherpa-onnxonnxruntime-gpu 依赖:
# sherpa-onnx 提供的预构建 wheels 和 onnxruntime-gpu==1.17.1 兼容
uv add onnxruntime-gpu==1.17.1 sherpa-onnx==1.10.39+cuda -f https://k2-fsa.github.io/sherpa/onnx/cuda.html
  1. 修改配置文件: 在 conf.yaml 中找到 sherpa_onnx_asr 部分,将 provider 设置为 cuda

使用其他 sherpa-onnx 模型

如果您想尝试其他语音识别模型:

  1. sherpa-onnx ASR models 下载所需模型
  2. 将模型文件放置在项目的 models 目录下
  3. 按照 conf.yaml 中的说明修改 sherpa_onnx_asr 的相关配置

groq_whisper_asr (联网,需要 API 密钥,但注册容易,免费额度慷慨)

Groq 的 Whisper 端点,非常准确(支持多语言)且速度快,并且每天都有很多免费使用次数。它已预安装。从 groq 获取 API 密钥并将其添加到 conf.yaml 中的 groq_whisper_asr 设置中。中国大陆及其他的不支持地区,需要代理(可能不支持香港地区)才能使用。

推荐用户

  • 接受使用联网语音识别的用户
  • 多语言用户
  • 不做本地运算,速度非常快 (取决你的网速)
  • 配置难度: 简单

SenseVoiceSmall 可能英文一般。

azure_asr (联网,需要 API 密钥)

  • Azure 语音识别。
  • azure_asr 选项下配置 API key 和地区
注意

api_key.pyv0.2.5 之后已弃用。请在 conf.yaml 中设置 API 密钥。

推荐用户

  • 有 Azure API key 的人 (Azure 账号不太好注册)
  • 多语言用户
  • 不做本地运算,速度非常快 (取决你的网速)
  • 配置难度: 简单