TeraTTS


NameTeraTTS JSON
Version 1.0 PyPI version JSON
download
home_pagehttps://github.com/Tera2Space/TeraTTS
Summaryrussian text to speech
upload_time2023-10-18 21:43:11
maintainer
docs_urlNone
authorTera Space
requires_python
licenseMIT
keywords tts
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.14592s