Озвучка текста на любой язык при помощи OpenAI TTS

DrunkDeath

Client
Регистрация
24.12.2014
Сообщения
601
Благодарностей
427
Баллы
63
logo.png


Небольшой, но удобный шаблон для озвучки текста почти на любой язык от OpenAI. Шаблон работает как с маленькими текстами, так и с большими, разрезая их на части и потом склеивая с помощью FFMPEG. Для работы необходим токен от OpenAI, зарубежная прокся и сам текст, который нужно озвучить. На выбор несколько голосов озвучки. разделённый на мужские и женские.

img1.pngimg2.png


Входные настройки:

Куда скачивать - папка куда будут скачиваться файлы
Откуда брать текст - если короткий текст, то выбираем из входных и вписываем его в текстовое поле ниже
Токен OpenAi - сам токен чата
Прокси - ну тут и ежу понятно. Прокси в формате login:pass@ip:port
Голоса - выбор голоса озвучки


Мужские голоса:

alloy — молодой, энергичный, чёткий
echo — тёплый, уверенный, немного хрипловатый
fable — мягкий, спокойный, чуть мечтательный
onyx — глубокий, грубоватый
sage — зрелый, уравновешенный, интеллигентный тон

Женские голоса:

ash — лёгкий, молодой, нейтрально-дружелюбный
ballad — тёплый, выразительный, с лёгкой эмоциональной окраской
coral — яркий, живой, немного игривый
nova — профессиональный, чёткий, подходит для новостей, озвучки
verse — мягкий, плавный, слегка мелодичный


Как работает шаблон?


Шаблон разделён на два режима: работа с коротким текстом (до 4000 символов включая пробелы и всякие точки), так и с длинными текстами, которые он будет нарезать по 500 символов и потом склеивать. Вся работоспособность зависит только от баланса вашего ключа. Если короткий текст мы пихаем в входные, то длинный в текстовый файл в корневой папке шаблона. На примере длинного текста рассмотрим работу шаблона. Шаблон берёт текст и нарезает его с помощью простого regex [\w\W]{0,500}\s и кладёт в список построчно (500 символов это затычка, резать можно спокойно до 4000 символов, достаточно поменять значение в кубике с regex). Далее берёт каждую строку и экранирует :

Экранирование:
    string input = project.Variables["text"].Value;
    string json = JsonConvert.SerializeObject(input);
    return json.Substring(1, json.Length - 2);
Далее идёт простой запрос на :

img3.pngimg4.png

Кстати, кому нужно дороже, но лучше качеством, можно использовать другую модель tts-1-hd вместо tts-1.

Далее перемещает и задаёт имя по счётчику. После завершения скачивания получает все пути файлов и создаёт список для ffmpeg для склейки и выполняет простую команду -f concat -safe 0 -i "{-Variable.folder-}list.txt" -c copy "{-Variable.folder-}output.mp3".

PS: файл ffmpeg слишком жирный и не влез в прикреплённые файлы. Скачайте отдельно последнюю (а по идее любую) версию и киньте в папку с шаблоном

На выходе получаем готовый файл с озвучкой вашего текста. Надеюсь шаблон окажется вам полезен. Всем спасибо.








 

Вложения

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)