AI个人学习
和实操指南

实时语音转文字的开源工具

综合介绍

realtime-transcription-fastrtc 是一个开源项目,专注于将语音实时转换为文字。它利用 FastRTC 技术处理低延迟音频流,结合本地 Whisper 模型实现高效的语音识别。项目由开发者 sofi444 维护,托管在 GitHub,代码完全开放,允许用户自由修改。用户可以通过浏览器或本地部署使用,界面支持 Gradio 和 FastAPI 两种模式,操作简单。它适合会议记录、直播字幕等场景,满足个人和开发者的多种需求。项目强调轻量化和多语言支持,运行稳定,易于扩展。

实时语音转文字的开源工具-1


 

功能列表

  • 实时语音转录:通过麦克风将语音即时转为文字,延迟低至毫秒级。
  • 语音活动检测(VAD):自动识别语音开始和结束,优化转录流程。
  • 多语言支持:支持英语、中文等多种语言,基于 Whisper 模型。
  • 双界面选择:提供 Gradio 直观界面和 FastAPI 可定制界面。
  • 本地模型运行:使用 Whisper 模型,支持离线转录,无需持续联网。
  • 参数调整:支持配置音频流、VAD 阈值和模型批处理大小。
  • 灵活部署:可在本地运行或通过 Hugging Face Spaces 等平台部署。
  • 错误反馈:提供连接失败或配置错误的清晰提示,便于调试。

 

使用帮助

安装流程

要使用 realtime-transcription-fastrtc,需要准备 Python 环境和相关依赖。以下是详细步骤,确保用户能顺利安装和运行。

  1. 检查系统要求
    • Python 版本:>= 3.10。
    • 安装 ffmpeg,用于音频处理。
    • 推荐硬件:GPU(如 MPS 或 CUDA)加速模型推理,CPU 也可运行但速度较慢。
  2. 克隆仓库
    在终端运行以下命令,获取项目代码:

    git clone https://github.com/sofi444/realtime-transcription-fastrtc
    cd realtime-transcription-fastrtc
    
  3. 设置虚拟环境
    为避免依赖冲突,创建 Python 虚拟环境。官方推荐两种方式:
    方式 1:使用 uv(推荐)
    先安装 uv(参考 https://docs.astral.sh/uv/),然后运行:

    uv venv --python 3.11
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    uv pip install -r requirements.txt
    

    方式 2:使用 pip

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    pip install --upgrade pip
    pip install -r requirements.txt
    
  4. 安装 ffmpeg
    根据操作系统安装 ffmpeg
    macOS

    brew install ffmpeg
    

    Linux(Ubuntu/Debian)

    sudo apt update
    sudo apt install ffmpeg
    

    Windows

    • 下载 ffmpeg 可执行文件(从 https://ffmpeg.org/download.html)。
    • 将其添加到系统环境变量,或放入项目根目录。
  5. 配置环境变量
    在项目根目录创建 .env 文件,添加以下内容:

    UI_MODE=fastapi
    APP_MODE=local
    SERVER_NAME=localhost
    PORT=7860
    MODEL_ID=openai/whisper-large-v3-turbo
    
    • UI_MODE:设为 gradio 使用 Gradio 界面,设为 fastapi 使用自定义 HTML 界面(默认)。
    • APP_MODE:本地运行设为 local,云端部署设为 deployed
    • MODEL_ID:指定 Whisper 模型,默认 openai/whisper-large-v3-turbo
    • SERVER_NAME:服务器地址,默认 localhost
    • PORT:端口号,默认 7860
  6. 运行项目
    运行主程序:

    python main.py
    

    终端会显示一个 URL(如 http://localhost:7860),在浏览器中打开即可使用。Gradio 模式下,端口可能不同,注意终端提示。

主要功能操作

实时语音转录

  • 开始转录:打开界面,点击“Start Recording”按钮,授权浏览器访问麦克风。系统会自动检测语音并显示文字。
  • 查看结果:转录文字实时显示在界面文本框,自动滚动到最新内容。
  • 暂停转录:点击“Stop”按钮,暂停语音输入。
  • 注意:为保证低延迟,项目默认批处理大小为 1,即每收到一个音频片段立即转录。

语音活动检测(VAD)

  • VAD 自动区分语音和静音,提升转录效率。可调整参数(参考 FastRTC 文档 https://fastrtc.org):
    • audio_chunk_duration:音频片段长度,默认 0.6 秒。
    • started_talking_threshold:语音开始阈值,默认 0.2 秒。
    • speech_pad_ms:静音填充,默认 400 毫秒。
  • 修改方式:编辑 main.py 或通过环境变量传入参数。

界面切换

  • Gradio 界面:适合快速测试,界面包含录音按钮和文字显示区。设置 UI_MODE=gradio 后运行,访问终端提示的地址。
  • FastAPI 界面:支持自定义,适合开发者。修改 index.html 可调整样式或功能。设置 UI_MODE=fastapi 后运行,访问 http://localhost:8000

特色功能操作

本地 Whisper 模型

  • 默认模型:openai/whisper-large-v3-turbo,轻量、多语言、性能优异。
  • 更换模型:设置 MODEL_ID,如 openai/whisper-small(适合低配设备)。支持其他 Hugging Face ASR 模型(https://huggingface.co/models?pipeline_tag=automatic-speech-recognition)。
  • 语言设置:默认翻译为英语,需转录其他语言时,在代码中设置 language 参数(如 language=zh 表示中文)。
  • 运行优化:首次运行会预热模型,减少延迟。建议使用 GPU 加速。

多语言支持

  • 支持英语、中文、西班牙语等多种语言,具体取决于模型。
  • 配置方式:在 main.py 中设置 transcribe 任务,并指定目标语言。
  • 示例:转录中文语音,设置 language=zh,确保麦克风输入清晰。

云端部署

  • Hugging Face Spaces:设置 APP_MODE=deployed,配置 Turn 服务器(参考 https://fastrtc.org/deployment/)。上传代码后按平台提示运行。
  • 其他平台:需手动配置 WebRTC 和服务器环境,确保端口开放。

错误处理

  • 常见错误
    • “Failed to connect”:检查网络或 WebRTC 配置。
    • “Model not found”:确认 MODEL_ID 正确且模型已下载。
    • “ffmpeg not found”:确保 ffmpeg 已安装并在系统路径中。
  • 调试:运行时查看终端日志,记录音频采样率、模型加载状态等。

注意事项

  • 硬件:GPU 推荐用于实时推理,MPS 支持 whisper-large-v3-turbo
  • 浏览器:推荐 Chrome 或 Firefox,确保 WebRTC 功能正常。
  • 语言准确率:受麦克风质量和环境影响,建议在安静环境中使用。

 

应用场景

  1. 会议记录
    在远程或现场会议中,实时转录讨论内容,生成文字记录。团队可直接导出整理,无需手动笔记。
  2. 直播字幕
    为直播添加实时字幕,提升内容可访问性。主播可通过 Gradio 界面快速操作,观众即时看到文字。
  3. 语言学习
    学生练习外语时,转录发音为文字,检查准确性。支持多语言,适合英语、中文等学习场景。
  4. 开发集成
    开发者可将项目集成到其他应用,测试 WebRTC 或 ASR 功能。开放的代码支持二次开发。

 

QA

  1. 需要联网吗?
    本地运行无需联网,模型下载后即可离线使用。云端部署需网络支持 WebRTC。
  2. 支持哪些语言?
    默认支持英语,设置 language 参数可支持中文、西班牙语等,具体取决于 Whisper 模型。
  3. 如何提高转录准确率?
    使用高质量麦克风,保持安静环境,选择大型模型(如 whisper-large-v3-turbo)。
  4. 可以自定义界面吗?
    是的,FastAPI 模式下可编辑 index.html,调整样式或添加功能。
  5. 为什么转录延迟?
    可能因硬件性能不足或网络问题。建议使用 GPU,检查 WebRTC 配置。
未经允许不得转载:首席AI分享圈 » 实时语音转文字的开源工具
zh_CN简体中文