Summertts используется в память о предстоящем и прохождении лета 2023 года.
иллюстрировать
- Summertts - это независимо составленная программа синтеза речи (TTS). Его можно запустить локально без необходимости в сети, и нет никакой дополнительной зависимости. Компиляция одного щелчка может быть использована для синтеза речи китайского и английского языка.
- В базовой вычислительной библиотеке Summertts используется собственное, которое представляет собой набор функций, определенных шаблонами. В большинстве случаев он должен только включать файлы заголовков, поэтому этот проект не имеет других зависимостей и может быть скомпилирован и запускается независимо в среде C ++.
- Этот проект использует библиотеку Matrix, предоставленную Eigen для реализации оператора нейронных сетей, и не нужно полагаться на другие операционные среды NN, такие как Pytorch, Tensorflow, NCNN и т. Д.
- Этот проект составлен и работает на Ubuntu. Другие Linux-подобные платформы, такие как Android, Raspberry Pi и т. Д., Не должны иметь никаких серьезных проблем. Они не были протестированы в Windows и могут потребовать небольших изменений.
- Модель этого проекта основана на VITS Algorithm Algorithm, и на основе инженерии C ++ выполняется на нем
- Этот проект применим к лицензии MIT. Разработка, пользователь или организация на основе этого проекта, пожалуйста, следуйте лицензии MIT: https://mit-license.org
Обновление журнала
- 2024-12-14: Добавить информацию о лицензии в MIT Лицензию: https://mit-license.org
- 2023-06-16: обновлено, чтобы добавить более быструю модель синтеза английского голоса: single_speaker_english_fast.bin или на следующем сетевом диске, скорость быстрее, и синтезированное качество звука не значительно снижено:
Ссылка: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h код извлечения: 2d5h - 2023-06-15: поддержка синтеза произношения чистого английского, и вам необходимо синхронизировать последний код. Используйте файл модели на следующем сетевом диске: single_speaker_english.bin и синтезируйте английское произношение следующим образом:
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
Путь сетевого диска заключается в следующем. Предыдущий китайский синтез произношения и использование не затронута. Следует отметить, что это обновление только поддерживает синтез произношения чистого английского, и китайский смешанный английский не поддерживает его на данный момент.
Ссылка: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h код извлечения: 2d5h - 2023-06-09: была добавлена модель с одним ди-дивигратором среднего размера: single_speaker_mid.bin, которая немного медленнее, чем предыдущая модель, но синтезированное качество звука, кажется, лучше (я не чувствителен к своим ушам, и я чувствую себя лучше, возможно, это психологический эффект: P). Код не должен обновляться, мне просто нужно загружать single_speaker_mid.bin на предыдущем сетевом диске и использовать его.
- 2023-06-08: изменить тест/main.cpp, чтобы поддержать синтез новичков и всего текста
- 2023-06-03: Fix имеет ошибку во вчерашней версии. Благодаря энтузиазму сети Telen за предоставление тестов и подсказок. Требуются только обновления кода, и модель не нужно обновляться.
- 2023-06-02: Точность синтеза полифонического произношения была значительно улучшена. В Baidu NetDisk необходима новая модель для использования улучшенного полифонического произношения и регуляризации текста (нормализация текста). Обновленный код сегодня не может использовать предыдущую модель, в противном случае он может привести к сбою
- 2023-05-30: интегрированное обработка обработки в качестве модуля регуляризации текста, значительно улучшив правильный синтез произношения чисел, валют, температуры, даты и т. Д.
- 2023-5-23: использование новых алгоритмов значительно улучшило скорость синтеза голоса отдельных динамиков.
- 2023-4-21: начальное творение
Инструкции для использования
Клонирование кода этого проекта локально, предпочтительно среда Ubuntu Linux
Загрузите модель с следующего адреса сетевого диска Baidu и поместите ее в каталог модели этого проекта: Ссылка: https://pan.baidu.com/s/1ryhtznoyqh7m8g-xz_2vvq?pwd=2d5h код извлечения: 2d5h.
После того, как файл модели размещен, структура каталогов модели выглядит следующим образом:
модели/
├-- -multi_speakers.bin
├ описать single_speaker_mid.bin
├ описать single_speaker_english.bin
├ описано Single_speaker_english_fast.bin
└ описано single_speaker_fast.bin
Введите каталог сборки и выполните следующую команду:
Cmake ..
Делать
После завершения компиляции исполнитель TTS_TEST будет генерироваться в каталоге сборки.
Запустите следующую команду для проверки китайского синтеза речи (TTS):
./tts_test ../test.txt ../models/single_speaker_fast.bin Out.wav
Запустите следующую команду для тестирования синтеза речи английского языка (TTS):
./tts_test ../test_eng.txt ../models/single_speaker_english.bin out_eng.wav
В этой командной строке:
Первый параметр - это путь к текстовому файлу, который содержит текст, который необходимо синтезировать для речи.
Второй параметр - это путь к вышеупомянутой модели. Одиночный и мульти -мульти в начале имени файла указывает, содержит ли модель один динамик или несколько динамиков. Рекомендуемая модель единого динамика: single_speaker_fast.bin, скорость синтеза быстрее, а качество звука синтеза также в порядке. Третий параметр - это синтезированный аудиофайл. После запуска программы ее можно открыть с помощью игрока.
Приведенная выше программа тестирования реализована в Test/main.cpp, а конкретный синтезированный интерфейс определяется в include/synthesizertrn.h следующим образом:
int16_t * anfer (const string & line, int32_t sid, float lengthscale, int32_t & datalen)
Интерфейс:
Первый параметр - это строка речи, которая должна быть синтезирована.
Второй параметр указывает, что идентификатор динамика используется для синтеза речи. Этот параметр действителен для модели с несколькими динамиками и зафиксирована до 0 для модели с одним дивикере. Количество динамиков может быть возвращено интерфейсом int32_t getSpeakernum (), а допустимый идентификатор равен 0, а количество динамиков, возвращаемых на интерфейс, уменьшается на 1.
Третий параметр длины представляет скорость речи синтетической речи, и чем большее его значение указывает, что скорость речи медленнее.
Текст, который должен быть синтезирован, может содержать арабские цифры и пунктуации, но поскольку модуль регуляризации текста (TN) этого проекта все еще очень грубо, его будут игнорироваться для английских символов. Кроме того, поскольку модуль регуляризации текста (TN) по -прежнему очень грубый, произношение полифонических символов в разных контекстах иногда неточно.
Последующая разработка
- Сценарии обучения и конверсии будут открыты позже
- В будущем мы постараемся тренировать и предоставить модели с лучшим качеством звука
Свяжитесь с автором
- Если у вас есть какие -либо дополнительные вопросы или вам нужны, вы можете отправить электронное письмо по адресу [email protected] или добавить WeChat: hwang_2011. Я постараюсь ответить.
Лицензия
- Этот проект применим к лицензии MIT. Разработка, пользователь или организация на основе этого проекта, пожалуйста, следуйте лицензии MIT: https://mit-license.org
благодарный
Этот проект использует следующую схему с точки зрения исходного кода и алгоритмов. Спасибо здесь. Если могут возникнуть какие -либо юридические проблемы, пожалуйста, свяжитесь со мной вовремя, чтобы координировать и разрешить их.
- Собственное
- Vits (https://github.com/jaywalnut310/vits)
- vits_chinese (https://github.com/uehqzxi/vits_chinese)
- Mb-istft-vits (https://github.com/mamasayakawamura/mb-istft-vits)
- Wetextprocessing (https://github.com/wenet-e2e/wetextprocessing)
- GLOG (https://github.com/google/glog)
- GFLAGS (https://github.com/gflags/gflags)
- OpenFST (https://github.com/kkm000/openfst)
- Китайские иероглифы для пинеина (https://github.com/yangyangwithgnu/hanz2piny)
- cppjieba (https://github.com/yanyiwu/cppjieba)
- g2p_en (https://github.com/kyubyong/g2p)
- Английская к-ipa (https://github.com/mphilli/english-to-ipa)
- Китайская модель одного динамика этого проекта основана на обучении набора данных Biobei с открытым исходным кодом, модель с несколькими динамиками основана на обучении набора данных с открытым исходным кодом Aishell3, а модель английского одноразового динамика основана на наборе речевой системы LJ.