Я искал библиотеку с открытым исходным кодом, которая могла читать слова на разных языках и выполнять текст на речь (TTS) с хорошим качеством. Цель - это то, что будет работать без облака на относительно небольших процессорах, таких как сотовый телефон или Raspberry Pi. Это выглядело так, как будто Pipertts выполняет эту роль довольно хорошо. У него огромная библиотека голосов, которые прошли обучение на многих языках. Я обнаружил, что на моей машине Linux мне пришлось подчиняться паплию, потому что по умолчанию использовалась ALSA. < /P>
espeak "testing yo ho ho and a bottle of rum" --stdout | paplay
< /code>
Приведенная выше команда звучит очень «машина», но espeak-ng способен доставлять практически любой звук на любом языке с фонетическими символами. Библиотека Pipertts работает над слоем над этим и отображает язык с фонемами, которые затем отправляются в базовый espeak-ng.cat test.txt | piper --model ../../voices/en/en_US-amy-medium.onnx
< /code>
Предполагая, что у вас есть файл Onnx Voice и JSON.
Но для того, чтобы код C ++ для работы, генерируя мое собственное отображение, мне нужно позвонить в Piper :: Phonemize. Это репо является чтениями, не оказалось хорошо поддерживаемой, но он используется в очень поддерживаемом https://github.com/ohf-voice/piper1-gpl
мой код показан ниже. сбое? Я попробовал: < /p>
eSpeakConfig.voice = "en";
eSpeakConfig.voice = "en-us";
< /code>
Оба терпят неудачу одинаково. < /p>
g++ -g -std=c++17 -Wall -Wextra -I/usr/local/include -o tts tts.cpp -lpiper -lespeak-ng -lpiper_phonemize
Read 227 characters from dict.txt
terminate called after throwing an instance of 'std::runtime_error'
what(): Failed to set eSpeak-ng voice
Aborted (core dumped)
< /code>
Вот код: < /p>
#include
#include
#include // Added for file reading
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
string read_dictionary(const char filename[]) {
ifstream file(filename);
file.seekg(0, ios::end);
size_t size = file.tellg();
file.seekg(0, ios::beg);
string words;
words.resize(size);
file.read(&words[0], size);
return words;
}
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s \n", argv[0]);
return 1;
}
string words = read_dictionary(argv[1]);
cout
Подробнее здесь: https://stackoverflow.com/questions/797 ... -exception
Попытка использовать Piper TTS на вершине ESPEAK-NG из C ++ Бросая исключение времени выполнения «Не удалось установить ⇐ C++
Программы на C++. Форум разработчиков
1754870418
Anonymous
Я искал библиотеку с открытым исходным кодом, которая могла читать слова на разных языках и выполнять текст на речь (TTS) с хорошим качеством. Цель - это то, что будет работать без облака на относительно небольших процессорах, таких как сотовый телефон или Raspberry Pi. Это выглядело так, как будто Pipertts выполняет эту роль довольно хорошо. У него огромная библиотека голосов, которые прошли обучение на многих языках. Я обнаружил, что на моей машине Linux мне пришлось подчиняться паплию, потому что по умолчанию использовалась ALSA. < /P>
espeak "testing yo ho ho and a bottle of rum" --stdout | paplay
< /code>
Приведенная выше команда звучит очень «машина», но espeak-ng способен доставлять практически любой звук на любом языке с фонетическими символами. Библиотека Pipertts работает над слоем над этим и отображает язык с фонемами, которые затем отправляются в базовый espeak-ng.cat test.txt | piper --model ../../voices/en/en_US-amy-medium.onnx
< /code>
Предполагая, что у вас есть файл Onnx Voice и JSON.
Но для того, чтобы код C ++ для работы, генерируя мое собственное отображение, мне нужно позвонить в Piper :: Phonemize. Это репо является чтениями, не оказалось хорошо поддерживаемой, но он используется в очень поддерживаемом https://github.com/ohf-voice/piper1-gpl
мой код показан ниже. сбое? Я попробовал: < /p>
eSpeakConfig.voice = "en";
eSpeakConfig.voice = "en-us";
< /code>
Оба терпят неудачу одинаково. < /p>
g++ -g -std=c++17 -Wall -Wextra -I/usr/local/include -o tts tts.cpp -lpiper -lespeak-ng -lpiper_phonemize
Read 227 characters from dict.txt
terminate called after throwing an instance of 'std::runtime_error'
what(): Failed to set eSpeak-ng voice
Aborted (core dumped)
< /code>
Вот код: < /p>
#include
#include
#include // Added for file reading
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
string read_dictionary(const char filename[]) {
ifstream file(filename);
file.seekg(0, ios::end);
size_t size = file.tellg();
file.seekg(0, ios::beg);
string words;
words.resize(size);
file.read(&words[0], size);
return words;
}
int main(int argc, char *argv[]) {
if (argc < 2) {
printf("Usage: %s \n", argv[0]);
return 1;
}
string words = read_dictionary(argv[1]);
cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79715256/trying-to-use-piper-tts-on-top-of-espeak-ng-from-c-throwing-runtime-exception[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия