Я искал библиотеку с открытым исходным кодом, которая могла читать слова на разных языках и выполнять текст на речь (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. Piper-model ../../voices/en/en_us-amy-medium.onnx> Предполагая, что у вас есть файл onnx goice и json. Это репо является чтениями, не оказалось хорошо поддерживаемой, но он используется в очень поддерживаемом 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++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ограничьте использование ядра в Linux в программе Python с помощью библиотеки Piper TTS.
Anonymous » » в форуме Python - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Ограничьте использование ядра в Linux в программе Python с помощью библиотеки Piper TTS.
Anonymous » » в форуме Linux - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-