Tortoise-это программа текста в речь, построенная со следующими приоритетами:
Этот репо содержит весь код, необходимый для запуска TRTOISE TTS в режиме вывода.
Колаб - самый простой способ попробовать это. Я собрал ноутбук, который вы можете использовать здесь: https://colab.research.google.com/drive/1wvvqupqwidbuvewwounglpghu3hg_cbr?usp=Sharing
Если вы хотите использовать это на своем собственном компьютере, у вас должен быть графический процессор NVIDIA.
Во-первых, установите Pytorch, используя эти инструкции: https://pytorch.org/get-started/locally/. В Windows я настоятельно рекомендую использовать путь установки Conda. Мне сказали, что если вы этого не сделаете, вы потратите много времени на погоню за проблемами зависимости.
Затем установите черепаху и ее зависимости:
git clone https://github.com/neonbjb/tortoise-tts.git
cd tortoise-tts
python setup.py install Если вы находитесь в Windows, вам также нужно будет установить pysoundfile: conda install -c conda-forge pysoundfile
Этот скрипт позволяет вам говорить одну фразу с одним или несколькими голосами.
python tortoise/do_tts.py --text " I'm going to speak this " --voice random --preset fastЭтот скрипт предоставляет инструменты для чтения больших объемов текста.
python tortoise/read.py --textfile < your text to be read > --voice randomЭто разбивает текстовый файл в предложения, а затем преобразует их в речь по одному. Он выведет серию разговорных клипов по мере их создания. Как только все клипы будут сгенерированы, он также объединит их в один файл и вывод.
Иногда черепаха облажается выходом. Вы можете переосмыслить любые плохие клипы, повторно выполняя read.py с помощью-регистрационного аргумента.
Черепаха может использоваться программно, как так:
reference_clips = [ utils . audio . load_audio ( p , 22050 ) for p in clips_paths ]
tts = api . TextToSpeech ()
pcm_audio = tts . tts_with_preset ( "your text here" , voice_samples = reference_clips , preset = 'fast' )Черепаха была специально обучена, чтобы быть моделью с несколькими динамиками. Это достигает этого путем консультации с эталонными клипами.
Эти эталонные клипы - это записи динамика, который вы предоставляете для руководства генерацией речи. Эти клипы используются для определения многих свойств вывода, таких как шаг и тон голоса, скорость речи и даже говорящие дефекты, такие как LISP или заикание. Справочный клип также используется для определения не связанных с голосами аспектов аудио-вывода, таких как объем, фоновый шум, качество записи и реверберацию.
Я включил функцию, которая случайным образом генерирует голос. Эти голоса на самом деле не существуют и будут случайными каждый раз, когда вы его запускаете. Результаты довольно увлекательны, и я рекомендую вам поиграть с ним!
Вы можете использовать случайный голос, передав «случайное» в качестве голосового имени. Черепаха позаботится об остальных.
Для тех, кто находится в пространстве ML: это создается путем проецирования случайного вектора на скрытое пространство.
Это репо идет с несколькими предварительно упакованными голосами. Голоса, приготовленные с «Train_», пришли из учебного набора и работают гораздо лучше, чем другие. Если ваша цель - высококачественная речь, я рекомендую вам выбрать один из них. Если вы хотите посмотреть, что может сделать черепаха для нулевого мимуса, взгляните на других.
Чтобы добавить новые голоса в черепаху, вам нужно будет сделать следующее:
Как упомянуто выше, ваши эталонные клипы оказывают глубокое влияние на результаты черепахи. Ниже приведены несколько советов по выбору хороших клипов:
Черепаха - это, прежде всего, модель авторегрессии декодера в сочетании с диффузионной моделью. Оба из них имеют много ручек, которые можно повернуть, которые я абстрагировал ради простоты использования. Я сделал это, создав тысячи клипов, используя различные перестановки настройки и используя метрику для голосового реализма и разборчивости для измерения их последствий. Я установил по умолчанию в лучшие общие настройки, которые я смог найти. Для конкретных случаев использования может быть эффективно играть с этими настройками (и вполне вероятно, что я что-то пропустил!)
Эти настройки недоступны в обычных сценариях, упакованных черепахой. Они доступны, однако, в API. Смотрите api.tts для полного списка.
Некоторые люди обнаружили, что можно быстро инженерии с черепахой! Например, вы можете вызвать эмоции, включив такие вещи, как «мне очень грустно», до вашего текста. Я создал автоматизированную систему редакции, которую вы можете использовать, чтобы воспользоваться этим. Он работает, пытаясь отредактировать любой текст в приглашении, окруженном скобками. Например, подсказка «[мне очень грустно, пожалуйста, накорми меня». Будет говорить только слова «Пожалуйста, накорми меня» (с грустной тональностью).
Справочные клипы черепахи проглатывают их, проводя их индивидуально через небольшую подмодель, которая создает точечную скрытую, а затем берет среднее значение всех произведенных задержек. Эксперименты, которые я прошел, показал, что эти за скрытыми замки являются весьма выразительные, влияющие на все от тона до слова до речевых аномалий.
Это поддается некоторым аккуратным трюкам. Например, вы можете объединить подачу два разных голоса с черепахой, и он выведет то, что, по его мнению, звучит как «средний» из этих двух голосов.
Используйте Script get_conditioning_latents.py , чтобы извлечь задержки для установленного голоса. Этот скрипт будет сбросить задержки в файл .pth Pickle. Файл будет содержать один кортеж (AutoreGressive_latent, diffusion_latent).
В качестве альтернативы используйте API.TextTospeech.get_conditioning_latents (), чтобы получить задержки.
После того, как вы играли с ними, вы можете использовать их для генерации речи, создав подкаталог в голосах/ с одним файлом «.pth», содержащим задержки с маринованными кондиционированием в качестве кортежа (Autoregressive_latent, diffusion_latent).
Из -за опасений, что эта модель может быть неправильно использована, я создал классификатор, который говорит о вероятности, что аудиоклип поступил из черепахи.
Этот классификатор можно запускать на любом компьютере, использование выглядит следующим образом:
python tortoise/is_this_from_tortoise.py --clip=<path_to_suspicious_audio_file>
Эта модель имеет 100% точность на содержимое результатов/ и голосов/ папок в этом репо. Тем не менее, рассматривать этот классификатор как «сильный сигнал». Классификаторы могут быть одурачены, и этот классификатор невозможно демонстрировать ложные срабатывания.
Tortoise TTS вдохновлен Dalle Openai, применяется к речевым данным и использует лучший декодер. Он состоит из 5 отдельных моделей, которые работают вместе: https://nonint.com/2022/04/25/tortoise-architectural-design-doc/