Skip to content

The program allows you to conduct a voice dialogue of 2 people in different languages with online translation and voiceover into the language of the interlocutor.

License

Notifications You must be signed in to change notification settings

krasavtzev/voice-translator

Repository files navigation

Screen

  1. Описание программы
  2. Требования к конфигурации
  3. Подключение к YandexSpeechKit
  4. Установка программы
  5. Запуск программы

1. Описание программы

The program allows you to conduct a voice dialogue of 2 people in different languages with online translation and voiceover into the language of the interlocutor.
Программа позволяет вести голосовой диалог 2-х человек на разных языках с онлайн переводом и озвучкой на язык собеседника.
Перед началом работы сделать настройки: установить языки и голоса собеседников, указать время в секундах на фразу собеседника, настроить схему цикла работы программы. Запуск цикла - кнопка СТАРТ.
Схема 111: распознавание с микрофона язык1 в текст, перевод на язык2, синтез речи на языке2 и озвучка голосом2.
Если активен второй себеседник, то произойдет распознавание с микрофона язык2 в текст, перевод на язык1, синтез речи на языке1 и озвучка голосом1.

Частные случаи:
Схема 210: распознавание из аудио файлов форматов WAV, OGG и даже Mp3! в текстовую строку.
Скачал песню Toto Cutungo - Litaliano в формате Mp3. Поставил распознавание с италянского и перевод на русский. Сохранил протокол, оттуда скопировал в текстовый файл, разбил на строки, скачал перевод песни. Результаты работы - файл files/toto.txt. Результат - отрицательный, на троечку с огромным минусом(не распознан целый куплет).
Взял файл попроще(русский шансон) - нормально, ошибок немного, оценил бы результат на 4.
Схема 100: Поднес микрофон к телевизору, результат на 5, получил стенограмму передачи:).
Схема 010: перевод строки на другой язык;
Схема 001: синтез речи из текста на разных языках и сохранение в WAV файл (files/audio_step3.wav).

2. Требования к конфигурации

ОС: проверялось на Linux Mint 20.3(base: Ubuntu 20.04) и на Windows 11.

Python 3.10
(на Python3.11 версии не установился yandex-speechkit)

В программе использованы модули YandexSpeechkit и модули создания/проверки токенов из программы Вируальный дворецкий от ladykot.

3. Подключение к YandexSpeechKit

Программа написана с применением технологии Yandex SpeechKit. Голосовые технологии Yandex SpeechKit помогают решить любую задачу, связанную с речью человека. SpeechKit может распознавать речь в режиме реального времени и из предварительно записанных аудиофайлов, автоматически определяя язык говорящего, а также озвучивать шаблонные фразы и развернутые тексты при помощи стандартных голосов SpeechKit.SpeechKit работает через интерфейсы API.

  • Необходимо зарегистрироваться на Yandex После регистрации получите грант на 60 дней.
  • Необходимо создать сервисный аккаунт. Сервисный аккаунт — аккаунт, от имени которого программы могут управлять ресурсами в Yandex Cloud
  • назначить сервисному аккаунту роли:

ai.speechkit-stt.user ai.speechkit-tts.user ai.translate.user ai.viewer speech-sense.viewer ai.languageModels.user

  • сохранить folderid, api-key, oauth-token в файле переменных окружения config.py:
# coding: utf-8
import os
def env_set():
    ''' Функция задает переменные окружения,
    чтобы использовать их в запросах к API YSK:
    oauth_token (str)
    id_folder (str)
    api_key (str)
'''
    os.environ["oauth_token"] = "y0_----Ваш oauth-token ---"
    os.environ["id_folder"] = "---Ваш folderId----"
    os.environ["api_key"] = "-----Ваш api-key----------------------"
    return True

4. Установка программы

4.1. Создать папки для размещения ПО

cd <путь до Вашей папки>
mkdir voice папка с программами
cd voice зайти в созданную папку

Скопируйте файлы:
requirements.txt - файл со списком необходимых модулей
voice_main.py - главная программа
voice_speech.py - модули распознавания и синтеза речи
voice_mic_text.py - модуль распознавания речи с микрофона
config.py - файл с ключами и токенами. З а п о л н и т ь!!! (см разд.3)
voice_scr.py - модуль экрана программы(создан в Qt Designer)\

mkdir files папка с времеными файлами (логи, протоколы, аудиофайла синтеза речи)

mkdir cloudapi папка с файлами yandex-speechkit

Файлы, создаваемые программой:
iam.txt - файл с iam-token
voice.ini - файл с сохраненными настройками (по кнопке "Сохранить настройки")
files/voice.log - лог-файл работы программы
files/audio_step1.wav - аудио файл создается на каждам цикле распознавания с микрофона(почему-то очень низкий уровень записи)
files/audio_step3.wav - аудио файл создается на каждом цикле синтеза речи
files/protocol.html - протокол беседы, дозаписывается по кнопке "Сохранить Протокол"

4.2. Создать создание виртуального окружения (virtual environment) для работы программы

На Linux:
sudo apt-get install Python3.10 - установка python 3.10
python3 -m venv voice_env - установка виртуального окружения
source voice_env/bin/activate - активация виртуального окружения\

На Windows:
<путь к python3.10>\python -m venv voice_env - установка виртуального окружения
В терминале:
cd <путь до Вашей папки>
source voice_env/scripts/activate - активация виртуального окружения\

pip install -r requirements.txt (рекомендуется) установка необходимого ПО

Или:

 pip install yandex-speechkit  
 sudo apt-get install libasound2-dev  
 pip install simpleaudio  
 pip install PyQt5
 sudo apt install portaudio19-dev
 pip install PyAudio
 pip install grpcio-tools

4.3. cloudapi

Потоковое распознавание речи

5. Запук программы:

python3 voice_main.py

About

The program allows you to conduct a voice dialogue of 2 people in different languages with online translation and voiceover into the language of the interlocutor.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages