Данный проект представляет релизную версию TTS сервера на Python для игры SS14. !В данном гите нет информации как подключить клиент игры SS14 к данному серверу!
В случае если вам необходимо реализация клиента SS14 для подключения к данному серверу, необходимо обращаться к разработчикам и владельцам(-у) сервера Orienta
В качестве STT распознования была выбрана библиотека и модель от OpenAI - [Fast Whisper] (https://github.com/SYSTRAN/faster-whisper).
Библиотеки для Python сервера:
pip install websockets
pip install faster-whisper
pip install soundfile
pip install numpy
Так же необходимо установить поддержку CUDA ядер. torch нужной версии уже находится в fast-whisper Проект не будет работать без CUDA!!! Советую так же ознаокмится с гайдами по установке torch, так как там нужно так же устанавливать специальные драйверы для Nvidia
Библиотеки для тестового клиента на C# (Если вы работаете в Visual Studio, то данные команды достаточно вести в "Консоль диспетчера пакетов"):
Install-Package NAudio
Необходимые пакеты для сокета должны быть установлены по умолчанию в пакете NET.
После установки пакетов, вам необходимо запустить main.py (сервер). При первом запуске или перезагрузке сервера будет длительная загрузка модели (в данном случае large). На гите Fast Whisper вы можете найти все модели, убедитесь что они поддерживают русский язык.
После получения сообщения "Сервер начал свою работу", ваш сервер готов получать данные от клиента. Для проверки вы можете запустить тестовый клиент на C#, чтобы убедится что всё работает корректно Для этого после запуска клиента необходимо дождаться подключения, ввести "r", сказать в микрофон фразу, и нажать Enter. Сервер в логах сообщит о получении сообщения и сообщит распознаный текст, который отобразится в клиенте. Для проверки нескольких клиентов в Visual Studio можно запустить несколько клиентов (кнопка правее от обычного запуска проекта, иконка запуска не закрашенная)
В сервере предусмотрена асинхронность и асинхронная очередь. Это означает что данный сервер будет не последовательно обрабатывать каждый запрос, а работать с каждым запросом одновременно. Это существено ускоряет его работу
Так же используются CUDA ядра, при помощи чего Fast Whisper способна осуществлять распознование и вывод результата чуть ли не в реальном времени. Стоит отметить что WER у large модели Fast Whisper для русского языка составляет около 10%, что есть хорошая точность при удивительной скорости
На вход сервер должен получать бинарные данные аудио (аудио в wav формате). Данный способ не требует особых библиотек.
После обработки сервер получает распознанный текст, и отправляет распознанный текст в исходном виде (без преобразований) клиентской части. Это так же стандартный метод для сокетов
При такой передаче не должно возникать проблем. Убедитесь что ваш клиент будет отправлять бинарные данные аудио , а НЕ само аудио в исходном виде
Мой код сервера является общедоступным и свободным к копированию. Клиентская часть игры SS14 в данном проекте не представляется. В случае вопросов и сотрудничества стоит обращаться к разработчикам и владельцам(-у) сервера Orienta.
При возникновении проблем с подключением к серверу или иными проблемами с сервером можно обращаться ко мне (Дискорд: requiem4soul) или писать в Issue во вкладке данного проекта на GitHube