Pull to refresh

Comments 25

Добрый день , спасибо за обновление ! Интонации вопросительных предложений значительно улучшат натуральность синтеза - а возможность выделения ключевых слов подтвердит что Силеро лидер доступных решений синтеза на русском языке ! Очень ждем ваше обновление омографов для русского языка !

Самый качественный открытый синтез на русском языке! Ну неужели никто ещё не навайбкодил движок tts для простой установки в Андроид?

Сам Pytorch сделал экспорт своих моделей.

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

То есть нужен будет обвязочный код.

На Андроид есть BookFusion Voice, с голосами Piper (системные).

Спасибо за наводку, но что-то даже тестовые фразы звучат очень не очень...

Попробуйте голос Irina, он звучит лучше других русских.

TTS Engine: Next-gen Kaldi вроде получше звучит.

Как прикрутить к ebook2audiobook?

Идеал вещь эфемерная, поэтому радует сам процесс движения к нему. Спасибо.

Из идей... я наиболее чувствителен к интонированию. Включая пунктуационные паузы, как внутри, так и между предложениями. Там тоже немало нюансов. Поэтому предложу для внутреннего тестирования использовать стихи. На них все моменты наиболее заметны. А уж что покажется вам достойным улучшения, смотрите сами. Не стоит ожидать профессиональной артистической декламации, но уровень школьника на 4 балла (по 5-балльной системе) вполне достижим при ограниченных системных ресурсах.

В стихах нужно соблюдение внутреннего ритма. То есть нужно знать размер и под него подстраивать рисунок.

Решение задачи чтения стихов чем-то сродни пению песен. Это как бы продукт совсем с ортогональными целями.

Включая пунктуационные паузы, как внутри, так и между предложениями.

Для тонкого управления паузами сейчас есть SSML.

Я не знаю, что нужно. Вам виднее. Может сложно, а может и не так.

Предлагая в качестве образца древние движки, я обжегся на человеческом восприятии. Говорю, смотрите на просодию, а люди слыша древнюю фонетику, сразу ставят крест. Но вроде вы специалисты и такое не грозит. Существовал синтезатор — Loquendo Olga. В ее исполнении, стихи интонировались вполне приемлемо. Если не твердая четверка, так тройка с плюсом.

Образец на 4pda, для скачивания требуется регистрация.

С удивлением обнаружил, что синтез речи требует больше ресурсов CPU, чем распознавание...

Хотя у людей наоборот - ребёнок болтает без умолку, мало слушая родителей :)

Ну у нас не требует, после прогрева на 4 потоках процессора синтез выдает более 100 секунд аудио в секунду

Вы попросили прикольных и оригинальных идей. У меня есть прикольная, но не слишком оригинальная — сконвертируйте в ONNX и добавьтесь в пакет sherpa. Там все TTS в этом пакете сразу погрустнеют.)

Что касается конвертации, то ONNX-версии у нас естественно есть, но мы их придерживаем для заказчиков, когда нужна какая-то особенная кастомизация / сборка под особенное железо.

Что касается самого ONNX, тогда вся обвязка будет торчать, придется заводить пакет как минимум, и как следствие реально портативность не вырастет (тут не просто одна голая TTS модель).

Что касается именно этого проекта - даже если и публиковать какие-то артефакты в onnx, то вижу мало смысла лить им воду на мельницу.

А насколько этично, если я сам пакет для себя сделаю на базе вашей tts?

Понимаю, что там у вас несколько слоёв, не только tts, как раз для максимально живого голоса.

Вопрос исключительно теоретический.

PS, ещё видел торч адаптации для мобилок, но вызывает сомнение пригодность к конвертации всего кода. Сама голая tts, понятно, пригодна.

PS случайно не туда написал. Это долго было бы ответом в ветку про ONNX.

А как регулировать скорость речи без SSML ?

Такой возможности нет.

Как лучше сделать регулировку скорости речи через ssml для модели ru v5_4 ? Попробовал, ошибки . Дипсик пишет , что в этой версии регулировка скорости работает нестабильно.

Стандартный пример из репозитория, секция v5 → SSML:

Пример
ssml_sample = """
              <speak>
              <p>
                  Когда я просыпаюсь, <prosody rate="x-slow">я говорю довольно медленно</prosody>.
                  Пот+ом я начинаю говорить своим обычным голосом,
                  <prosody pitch="x-high"> а могу говорить тоном выше </prosody>,
                  или <prosody pitch="x-low">наоборот, ниже</prosody>.
                  Пот+ом, если повезет – <prosody rate="fast">я могу говорить и довольно быстро.</prosody>
                  А еще я умею делать паузы любой длины, например, две секунды <break time="2000ms"/>.
                  <p>
                    Также я умею делать паузы между параграфами.
                  </p>
                  <p>
                    <s>И также я умею делать паузы между предложениями</s>
                    <s>Вот например как сейчас</s>
                  </p>
              </p>
              </speak>
              """

sample_rate = 48000
speaker = 'xenia'              
audio = model.apply_tts(ssml_text=ssml_sample,
                        speaker=speaker,
                        sample_rate=sample_rate)
display(Audio(audio, rate=sample_rate))

Послушал, звучит как надо. Где тут может быть ошибка — сложно понять без примера.

Причина была в самом тексте, который я вставлял для озвучки. SSML оказался капризным ( чанки были слишком длинные, и кажется, некоторые символы ему не понравились ). С простым текстом скорость речи регулируется.

В частности, проблема в смешении латиницы и кириллицы водном тексте, к примеру "SSML-текст" .

Русскоязычные модели не принимают латиницу.

Да, но без ssml они просто пропускали латиницу, а с ssml стали выдавать ошибку.
Если в ssml вставлять каждый раз тэг для нужного языка это поможет ?
И как вообще можно решить эту проблему ?
Пока у меня скрипт просто заменяет подряд идущие латинские символы предупреждением " буквы латинские " .

Предложение- сделать изменение скорости речи доступным напрямую, как уже есть для `sample rate` . Через SSML очень капризно получается- на некоторых символах модель спотыкается (не только в латинице проблема)

Sign up to leave a comment.

Articles