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

Список функций
- Транскрипция голоса в реальном времени: мгновенное преобразование голоса в текст через микрофон с низкой задержкой до миллисекунд.
- Определение активности голоса (VAD): автоматически определяет начало и конец речи для оптимизации процесса транскрибирования.
- Поддержка нескольких языков: английский, китайский и другие языки, основанные на модели Whisper.
- Два варианта интерфейса: интуитивно понятный интерфейс Gradio и настраиваемый интерфейс FastAPI.
- Локальный запуск моделей: при использовании моделей Whisper поддерживается автономная транскрипция без необходимости постоянного подключения к Интернету.
- Настройка параметров: поддерживает конфигурацию аудиопотоков, пороговых значений VAD и размеров партии моделей.
- Гибкость развертывания: можно запускать локально или развертывать через такие платформы, как Hugging Face Spaces.
- Обратная связь при ошибках: четкая индикация сбоя соединения или ошибки конфигурации для облегчения отладки.
Использование помощи
Процесс установки
Чтобы использовать realtime-transcription-fastrtc, необходимо подготовить окружение Python и соответствующие зависимости. Ниже приведены подробные шаги, чтобы пользователи могли установить и запустить его без проблем.
- Проверка системных требований
- Версия Python: >= 3.10.
- монтаж
ffmpeg
Используется для обработки звука. - Рекомендуемое оборудование: GPU (например, MPS или CUDA) для ускорения вывода модели, CPU также могут работать, но медленнее.
- склад клонов
Выполните следующую команду в терминале, чтобы получить код проекта:git clone https://github.com/sofi444/realtime-transcription-fastrtc cd realtime-transcription-fastrtc
- Настройка виртуальной среды
Чтобы избежать конфликтов зависимостей, создайте виртуальную среду 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
- Установите ffmpeg
Установка в соответствии с операционной системойffmpeg
::
macOS::brew install ffmpeg
Linux (Ubuntu/Debian)::
sudo apt update sudo apt install ffmpeg
Windows (компьютер)::
- загрузка
ffmpeg
Исполняемый файл (изhttps://ffmpeg.org/download.html
). - Добавьте его в системную переменную окружения или поместите в корневой каталог проекта.
- загрузка
- Настройка переменных среды
В корневом каталоге проекта создайте файл.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
.
- Текущие проекты
Запустите основную программу: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.
- точность речи: В зависимости от качества микрофона и условий окружающей среды, рекомендуется использовать в тихой обстановке.
сценарий применения
- материалы
Во время удаленных или выездных совещаний расшифровывайте обсуждения в режиме реального времени, создавая стенограммы. Команды могут экспортировать и сопоставлять их напрямую, что избавляет от необходимости делать записи вручную. - прямые субтитры
Добавьте субтитры в реальном времени к прямым трансляциям, чтобы повысить доступность контента. Ведущие могут быстро работать через интерфейс Gradio, а зрители мгновенно видят текст. - изучение языков
Транскрибируйте произношение в текст для проверки точности при изучении иностранных языков. Поддержка нескольких языков, подходит для английского, китайского и других сценариев обучения. - потенциал развития
Разработчики могут интегрировать проекты в другие приложения для тестирования функциональности WebRTC или ASR. Открытый код поддерживает вторичную разработку.
QA
- Нужна ли мне сеть?
Для локальной работы не требуется подключение к Интернету, модели можно загружать и использовать в автономном режиме. Для развертывания в облаке требуется сетевая поддержка WebRTC. - Какие языки поддерживаются?
По умолчанию поддерживается английский язык. Настройкиlanguage
В зависимости от модели Whisper параметры могут поддерживать китайский, испанский и другие языки. - Как повысить точность транскрипции?
Используйте высококачественный микрофон, соблюдайте тишину и выбирайте большую модель (напримерwhisper-large-v3-turbo
). - Можно ли настроить интерфейс?
Да, можно редактировать в режиме FastAPI!index.html
, корректировка стилей и добавление функций. - Почему транскрипция задерживается?
Может быть связано с недостаточной производительностью оборудования или проблемами в сети. Рекомендуется использовать GPU, проверьте конфигурацию WebRTC.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...