Инструмент с открытым исходным кодом для преобразования речи в текст в реальном времени

Общее введение

Realtime-transcription-fastrtc - это проект с открытым исходным кодом, ориентированный на преобразование речи в текст в реальном времени. Он использует технологию FastRTC для обработки аудиопотоков с низкой задержкой, в сочетании с локальным Шепот модель для эффективного распознавания речи. Проект поддерживается разработчиком sofi444 и размещен на GitHub. Код полностью открыт и позволяет пользователям свободно его модифицировать. Пользователи могут развернуть его через браузер или локально, а интерфейс поддерживает режимы Gradio и FastAPI, что упрощает работу. Он подходит для записей встреч, субтитров в прямом эфире и других сценариев, чтобы удовлетворить потребности отдельных пользователей и разработчиков. Проект отличается легкостью и многоязыковой поддержкой, стабильностью работы и простотой расширения.

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

 

Список функций

  • Транскрипция голоса в реальном времени: мгновенное преобразование голоса в текст через микрофон с низкой задержкой до миллисекунд.
  • Определение активности голоса (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(Ссылка. 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 порт может быть другим, поэтому обращайте внимание на подсказки терминала.

Основные функции

Расшифровка голоса в режиме реального времени

  • Начать транскрипцию: Откройте интерфейс и нажмите кнопку "Начать запись", чтобы разрешить браузеру доступ к микрофону. Система автоматически определит голос и отобразит текст.
  • Посмотреть результаты: Транскрибированный текст отображается в реальном времени в текстовом поле интерфейса, автоматически прокручиваясь к последнему содержанию.
  • Приостановка транскрипции: Нажмите кнопку "Стоп", чтобы приостановить голосовой ввод.
  • принимать к сведению: Чтобы обеспечить низкую задержку, проект по умолчанию использует размер партии 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.

Функциональное управление

Местные модели шепота

  • Модель по умолчанию: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Убедитесь, что вход микрофона чист.

Развертывание облака

  • Обнимающиеся лица: Настройки APP_MODE=deployedЧтобы настроить сервер Turn (см. https://fastrtc.org/deployment/). Загрузите код и запустите его, как подскажет платформа.
  • Другие платформы: Вам необходимо вручную настроить WebRTC и серверную среду, чтобы убедиться, что порты открыты.

обработка ошибок

  • распространённая ошибка::
    • "Не удалось подключиться": проверьте конфигурацию сети или WebRTC.
    • "Модель не найдена": подтверждено MODEL_ID Правильно, модель загружена.
    • "ffmpeg не найден": убедитесь, что 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.
© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...