10,2 тыс подписчиков
🌟Parler-TTS: качественный синтез речи по тексту на английском языке.
Parler-TTS - это модели текст-в-речь (TTS), способные генерировать качественную, естественно звучащую речь в заданном стиле (пол, тон, тип речи и т. д.).
Все датасеты обучения, предварительная обработка, код обучения и веса выпускаются публично, что даст возможность сообществу строить на нашей работе и разрабатывать свои собственные модифицированные модели TTS. Обе модели обучались на 45 тысячах часов англоязычных аудиокниг.
Parler-TTS - это авторегрессионная модель, основанная на трансформерах, которая генерирует аудиотокены в причинно-следственном порядке. Код для инференса Parler-TTS оптимизирован для быстрой генерации благодаря совместимости с SDPA и Flash Attention 2.
Архитектура Parler-TTS состоит из трех частей: текстовый кодировщик (Flan-T5), декодер и аудиокодек DAC. Текстовый кодировщик преобразует текст в скрытые состояния, декодер генерирует аудиотокены на основе этих состояний, а аудиокодек восстанавливает аудиосигнал из аудиотокенов.
Модели:
Характеристиками речи (пол, темп речи, высота тона и реверберация) можно управлять непосредственно через текстовый промпт. Например:
🟠Добавьте промпт "very clear audio" для создания аудио высокого качества, а "very noisy audio" - для высокого уровня фонового шума;
🟠Пунктуация может использоваться для управления просодией генерации - используйте запятые, чтобы добавить небольшие паузы в речь.
▶️Установка и запуск:
# Clone repository and install dependences:
pip install git+https://github.com/huggingface/parler-tts.git
# Inference with random voice
import torch
from parler_tts import ParlerTTSForConditionalGeneration
from transformers import AutoTokenizer
import soundfile as sf
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = ParlerTTSForConditionalGeneration.from_pretrained("parler-tts/parler-tts-mini-v1").to(device)
tokenizer = AutoTokenizer.from_pretrained("parler-tts/parler-tts-mini-v1")
prompt = "Hey, how are you doing today?"
description = "A female speaker delivers a slightly expressive and animated speech with a moderate speed and pitch. The recording is of very high quality, with the speaker's voice sounding clear and very close up."
input_ids = tokenizer(description, return_tensors="pt").input_ids.to(device)
prompt_input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to(device)
generation = model.generate(input_ids=input_ids, prompt_input_ids=prompt_input_ids)
audio_arr = generation.cpu().numpy().squeeze()
sf.write("parler_tts_out.wav", audio_arr, model.config.sampling_rate)y
📌Лицензирование : Apache-2.0 license
🟡Demo
#AI #Parler #ML #TTS
2 минуты
12 августа 2024