# Russian TTS inference
# Установка
Вы можете установить пакет с помощью pip:
```
pip install TeraTTS
```
Также вы можете установить используя Git:
```
pip install -e git+https://github.com/Tera2Space/RUTTS#egg=TeraTTS
```
# Ошибки
1)Если на Windows у вас **ошибка при установке**,нужно просто **скачать Visual Studio [здесь](https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false)** и при установке выбрать галочку около **Разработка классических приложений на С++**
2)Если **после установки не работает** что-то, **убедитесь что модуль скачан последней версии**(удалить и скачать) и **так же что названия моделей есть на** https://huggingface.co/TeraTTS
3)Если ничего не помогло **обратитесь за помощью в https://t.me/teraspace_chat**
# Использование
```python
text = "Привет, мир!"
from TeraTTS import TTS
# Опционально: Предобработка текста (улучшает качество)
from ruaccent import RUAccent
accentizer = RUAccent(workdir="./model")
# Загрузка моделей акцентуации и словарей
# Доступны две модели: 'medium' (рекомендуется) и 'small'.
# Переменная 'dict_load_startup' управляет загрузкой словаря при запуске (больше памяти) или загрузкой его по мере необходимости во время выполнения (экономия памяти, но медленнее).
# Переменная disable_accent_dict отключает использование словаря (все ударения расставляет нейросеть). Данная функция экономит ОЗУ, по скорости работы сопоставима со всем словарём в ОЗУ.
accentizer.load(omograph_model_size='big_poetry', use_dictionary=True)
# Обработка текста с учетом ударений и буквы ё
text = accentizer.process_all(text)
print(f"Текст с ударениями и ё: {text}")
# Примечание: Вы можете найти все модели по адресу https://huggingface.co/TeraTTS, включая модель GLADOS
tts = TTS("TeraTTS/natasha-g2p-vits", add_time_to_end=1.0, tokenizer_load_dict=True) # Вы можете настроить 'add_time_to_end' для продолжительности аудио, 'tokenizer_load_dict' можно отключить если используете RUAccent
# 'length_scale' можно использовать для замедления аудио для лучшего звучания (по умолчанию 1.1, указано здесь для примера)
audio = tts(text, lenght_scale=1.1) # Создать аудио. Можно добавить ударения, используя '+'
tts.play_audio(audio) # Воспроизвести созданное аудио
tts.save_wav(audio, "./test.wav") # Сохранить аудио в файл
# Создать аудио и сразу его воспроизвести
tts(text, play=True, lenght_scale=1.1)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/Tera2Space/TeraTTS",
"name": "TeraTTS",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "tts",
"author": "Tera Space",
"author_email": "tera2space@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/29/e6/6ef8830ed4d6174e3bd32b10eecc5e9114a9242db25c6206192161fc54d3/TeraTTS-1.0.tar.gz",
"platform": null,
"description": "# Russian TTS inference\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043f\u0430\u043a\u0435\u0442 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pip:\n```\npip install TeraTTS\n```\n\u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f Git:\n```\npip install -e git+https://github.com/Tera2Space/RUTTS#egg=TeraTTS\n```\n# \u041e\u0448\u0438\u0431\u043a\u0438\n1)\u0415\u0441\u043b\u0438 \u043d\u0430 Windows \u0443 \u0432\u0430\u0441 **\u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435**,\u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e **\u0441\u043a\u0430\u0447\u0430\u0442\u044c Visual Studio [\u0437\u0434\u0435\u0441\u044c](https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false)** \u0438 \u043f\u0440\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0433\u0430\u043b\u043e\u0447\u043a\u0443 \u043e\u043a\u043e\u043b\u043e **\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 \u0421++**\n\n2)\u0415\u0441\u043b\u0438 **\u043f\u043e\u0441\u043b\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442** \u0447\u0442\u043e-\u0442\u043e, **\u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044c \u0447\u0442\u043e \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u043a\u0430\u0447\u0430\u043d \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438**(\u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438 \u0441\u043a\u0430\u0447\u0430\u0442\u044c) \u0438 **\u0442\u0430\u043a \u0436\u0435 \u0447\u0442\u043e \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u043d\u0430** https://huggingface.co/TeraTTS\n\n3)\u0415\u0441\u043b\u0438 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u043c\u043e\u0433\u043b\u043e **\u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0437\u0430 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432 https://t.me/teraspace_chat**\n# \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n\n```python \ntext = \"\u041f\u0440\u0438\u0432\u0435\u0442, \u043c\u0438\u0440!\"\n\nfrom TeraTTS import TTS\n\n# \u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e: \u041f\u0440\u0435\u0434\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 (\u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e)\nfrom ruaccent import RUAccent\naccentizer = RUAccent(workdir=\"./model\")\n\n# \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 \u0430\u043a\u0446\u0435\u043d\u0442\u0443\u0430\u0446\u0438\u0438 \u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u0435\u0439\n# \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0434\u0432\u0435 \u043c\u043e\u0434\u0435\u043b\u0438: 'medium' (\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f) \u0438 'small'.\n# \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f 'dict_load_startup' \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0441\u043b\u043e\u0432\u0430\u0440\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 (\u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438) \u0438\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u043e\u0439 \u0435\u0433\u043e \u043f\u043e \u043c\u0435\u0440\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f (\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438, \u043d\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435).\n# \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f disable_accent_dict \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0432\u0430\u0440\u044f (\u0432\u0441\u0435 \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f \u0440\u0430\u0441\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0439\u0440\u043e\u0441\u0435\u0442\u044c). \u0414\u0430\u043d\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u041e\u0417\u0423, \u043f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u043c\u0430 \u0441\u043e \u0432\u0441\u0435\u043c \u0441\u043b\u043e\u0432\u0430\u0440\u0451\u043c \u0432 \u041e\u0417\u0423.\naccentizer.load(omograph_model_size='big_poetry', use_dictionary=True)\n\n# \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0435\u043a\u0441\u0442\u0430 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u0439 \u0438 \u0431\u0443\u043a\u0432\u044b \u0451\ntext = accentizer.process_all(text)\nprint(f\"\u0422\u0435\u043a\u0441\u0442 \u0441 \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u0451: {text}\")\n\n\n# \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435: \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432\u0441\u0435 \u043c\u043e\u0434\u0435\u043b\u0438 \u043f\u043e \u0430\u0434\u0440\u0435\u0441\u0443 https://huggingface.co/TeraTTS, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c GLADOS\ntts = TTS(\"TeraTTS/natasha-g2p-vits\", add_time_to_end=1.0, tokenizer_load_dict=True) # \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c 'add_time_to_end' \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0430\u0443\u0434\u0438\u043e, 'tokenizer_load_dict' \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 RUAccent\n\n\n# 'length_scale' \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u043c\u0435\u0434\u043b\u0435\u043d\u0438\u044f \u0430\u0443\u0434\u0438\u043e \u0434\u043b\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u0437\u0432\u0443\u0447\u0430\u043d\u0438\u044f (\u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e 1.1, \u0443\u043a\u0430\u0437\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430)\naudio = tts(text, lenght_scale=1.1) # \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e. \u041c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0443\u0434\u0430\u0440\u0435\u043d\u0438\u044f, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f '+'\ntts.play_audio(audio) # \u0412\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0435 \u0430\u0443\u0434\u0438\u043e\ntts.save_wav(audio, \"./test.wav\") # \u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0430\u0443\u0434\u0438\u043e \u0432 \u0444\u0430\u0439\u043b\n\n\n# \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u0430\u0443\u0434\u0438\u043e \u0438 \u0441\u0440\u0430\u0437\u0443 \u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438\ntts(text, play=True, lenght_scale=1.1)\n\n```\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "russian text to speech",
"version": "1.0",
"project_urls": {
"Homepage": "https://github.com/Tera2Space/TeraTTS"
},
"split_keywords": [
"tts"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1d2805c0694b773fc5b48cfd87fef4cc570a7b44e6831d90ddfccb5ffd4cb38a",
"md5": "32cbf798e00527e34e04f416ed082713",
"sha256": "12abe5b18ce633cb02574673024d8bb0f05441b4d3671f10746580ef84d92e16"
},
"downloads": -1,
"filename": "TeraTTS-1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "32cbf798e00527e34e04f416ed082713",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 7305,
"upload_time": "2023-10-18T21:43:09",
"upload_time_iso_8601": "2023-10-18T21:43:09.825467Z",
"url": "https://files.pythonhosted.org/packages/1d/28/05c0694b773fc5b48cfd87fef4cc570a7b44e6831d90ddfccb5ffd4cb38a/TeraTTS-1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29e66ef8830ed4d6174e3bd32b10eecc5e9114a9242db25c6206192161fc54d3",
"md5": "56d040417bfea113136cebce57b29b6d",
"sha256": "26f38bb2a087a953f90c3d0b7d664f7ea10833f0c3a9264108fdddfe4f9468f0"
},
"downloads": -1,
"filename": "TeraTTS-1.0.tar.gz",
"has_sig": false,
"md5_digest": "56d040417bfea113136cebce57b29b6d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 6782,
"upload_time": "2023-10-18T21:43:11",
"upload_time_iso_8601": "2023-10-18T21:43:11.442731Z",
"url": "https://files.pythonhosted.org/packages/29/e6/6ef8830ed4d6174e3bd32b10eecc5e9114a9242db25c6206192161fc54d3/TeraTTS-1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-18 21:43:11",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Tera2Space",
"github_project": "TeraTTS",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "teratts"
}