1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/didiopensource-MeetDot

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 8.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 02.12.2024 11:42 71d9243

MeetDot: Speech Translation for Video Calling

MeetDot — это система видеоконференцсвязи с наложенными субтитрами в реальном времени. Система предназначена для облегчения общения между людьми, говорящими на разных языках, и снижения коммуникационных барьеров между многоязычными участниками.

В настоящее время наша система поддерживает речь и субтитры на четырёх языках (английском, китайском, испанском и португальском) и объединяет автоматическое распознавание речи (ASR) и машинный перевод (MT) каскадным способом.

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

  • Плавная прокрутка субтитров для уменьшения мерцания и, следовательно, когнитивной нагрузки.
  • Модульная архитектура для интеграции различных сервисов ASR и MT.
  • Интегрированный набор инструментов оценки для оптимизации таких показателей, как точность, задержка и стирание.
  • Игра в угадывание слов для внешней оценки сквозной производительности.

Совместимость

  • 64-битная conda с Python3.7+.
  • Протестировано в Chrome и Firefox.

Настройка

Создание среды Python

Создайте среду conda с использованием Python 3.7 или 3.8 (вероятно, будут работать и более новые версии).

  1. conda create -n streaming_translation python=3.7.9
  2. conda activate streaming_translation

Настройка бэкенда

  1. cd backend
  2. Установите зависимости с помощью pip install -r requirements.txt из вашей среды conda.
  3. Установите проект с возможностью его изменения с помощью pip install -e .
  4. В корневом каталоге репозитория выполните python env_setup.py --copy-keys. Это задаст переменные среды, необходимые для запуска API, и скопирует учётные данные. Также будут установлены git-хуки фиксации изменений. Если вы не работаете на нашем общем сервере, см. python env_setup.py --help

Создание учётных данных

В MeetDot мы предоставляем интеграцию ASR/MT с Google Cloud, чтобы можно было работать без доступа к нашим серверам или внутренним API. Если вы не работаете на нашем общем сервере, выполните следующие действия:

  1. Перейдите в Google Cloud и получите пользовательский ключ API по ссылке, затем скопируйте его в файл backend/resources/credentials.json
  2. Мы используем API от daily.co для оптимизации качества видеозвонков в реальном времени. Создайте учётную запись на daily.co, добавьте свой URL и ключ в .env.

Конфигурация

В MeetDot используется dotenv во фронтенде и бэкенде. Переменные можно задать, отредактировав файл .env или используя командную строку BACKEND_PORT=5888 python src/app.py. См. .env.default для списка возможных ключей.

Запуск бэкенда

  1. Запустите python src/app.py (используйте флаг --debug, чтобы перезапускать при изменении кода, полезно для разработки).

Настройка фронтенда

  1. cd frontend
  2. Выполните yarn install
  3. Выполните yarn run serve --port=8080 (можно использовать --mode=production, чтобы обслуживать минифицированный пакет)
  4. Откройте localhost:8080 в браузере.

Тестирование

  1. cd backend/
  2. Выполните pytest

Фиксация изменений

Мы используем pre-commit для управления git-хуками.

Выполните команду pre-commit install, чтобы настроить его. Он должен запускать средство форматирования (Prettier для JavaScript) и проверки синтаксиса при каждой фиксации. Должен быть настроен на обновление себя и установку библиотек, но дополнительную информацию см. в файле .pre-commit-config.yaml.

Оценка

  1. Скачайте тестовые данные
  2. cd backend/
  3. python src/services/evaluation/evaluate.py

Примечания по безопасности

При первом запуске системы MeetDot браузеру требуется разрешение на доступ к микрофону для демонстрации. Современные браузеры не позволяют небезопасным веб-сайтам получать доступ к микрофону.

Локальные среды (localhost) считаются безопасными. Для удалённого развёртывания вам потребуется выполнить одно из следующих действий:

  1. Предоставьте доступ к веб-сайту через HTTPS. Задайте пути к вашим... Файлы ключей и сертификатов находятся в backend/resources/keys.json. Имена файлов генерируются по умолчанию LetsEncrypt.

  2. Используйте самозаверяющий сертификат, и ваши пользователи будут должны принимать предупреждения браузера. (Не рекомендуется).

  3. Попросите пользователей включить экспериментальные флаги для обхода настроек безопасности браузера. (Также не рекомендуется). В Chrome это chrome://flags#unsafely-treat-insecure-origin-as-secure. В Firefox это media.devices.insecure.enabled в about:config.

Развёртывание

Наш скрипт развёртывания копирует файлы в $DEPLOY_ROOT (например, /srv/example.com, заданный в переменных gitlab). Статические файлы фронтенда обслуживаются из $DEPLOY_ROOT/dist с помощью nginx. Файлы бэкенда сохраняются в $DEPLOY_ROOT/backend и обслуживаются с помощью простого сервера flask-socketio.

Эти процессы (nginx, бэкенд) управляются скриптами systemd.

Лицензия

Лицензия Apache 2.0

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/didiopensource-MeetDot.git
git@api.gitlife.ru:oschina-mirror/didiopensource-MeetDot.git
oschina-mirror
didiopensource-MeetDot
didiopensource-MeetDot
main