hgneng / ekho

Chinese text-to-speech engine
GNU General Public License v2.0
1.12k stars 263 forks source link

切换声音报错 #76

Closed hanyuanzhong closed 6 months ago

hanyuanzhong commented 7 months ago

我从声音文件列表下载了pinyin-yali-44100-wav-v10.tar.xz,然后将其解压到ekho-9.0/ekho-data/文件夹下,并重命名成pinyin,然后ekho “你吃饭了吗” -v /ekho-9.0/ekho-data/pinyin/ -o ttt6.wav 然后报错Invalid voice: /ekho-9.0/ekho-data/pinyin/. Fallback to Mandarin.

hgneng commented 7 months ago

替换pinyin目录文件后需要删除ekho-data/pinyin.voice和ekho-data/pinyin.index,并且无需指定-v参数。参考:https://cto.eguidedog.net/node/809

hanyuanzhong commented 7 months ago

hgneng非常感谢您的指导,我还是有一点疑惑,我是在ubuntu下运行的,然后我下载了[tibetan-trinley-44100-wav-v1.tar.xz]语音包,解压到ekho-9.0/ekho-data/下,并且重命名成为pinyin,我也删除了ekho-data/pinyin.voice和ekho-data/pinyin.index,然后运行ekho “你吃饭了吗” -o ttt6.wav 这种会生成tibetan形式的语音吗,这样的操作是否有问题呢,我是不是需要重命名成tibetan而不是pinyin,并且在ekho时指定-v Tibetan这样才是正确的操作, 并且我还有一个其他的问题,pinyin-yali-44100和pinyin-huang-44100的区别是什么呢, 以及重启Ekho是怎么重启的,重新运行Ekho命令就可以了是吗 再次感谢您的回复

hgneng commented 6 months ago

不,文档是以藏语为例才用tibetan的目录名的。你要的是普通话,应该使用pinyin目录名。-v Mandarin,但其实这个参数是默认的,不需要额外指定。

pinyin-yali是一个叫yali的女生录制的,pingyin-huang是姓黄的男生录制的。

重启Ekho即重新运行。比如./ekho 123。如果发现声音没有变化,可能需要重新sudo make install一次。

hanyuanzhong commented 6 months ago

替换音频后生成文件报错Segmentation fault

我在ubuntu 中 将文件ekho-9.0.tar.xz上传到/home/mycode下,然后解压,然后我得到/home/mycode/ekho-9.0目录,然后在此目录下运行以下命令安装ekho

sudo apt-get install texinfo libltdl-dev libmpg123-dev libsonic-dev libutfcpp-dev libespeak-ng-dev libsndfile1-dev libpulse-dev libncurses5-dev libestools-dev festival-dev libvorbis-dev libmp3lame-dev libdotconf-dev cd ekho-9.0 ./configure make make install

然后我做了两次测试, 第一次是将/home/mycode/ekho-9.0/ekho-data目录下的pinyin.voice和pinyin.index删除,以及pinyin文件夹下有个文件是COPYING-mandarin-yali,也删除,然后解压下载到的pinyin-huang-44100-wav-v3,将文件下的所有音频复制到/home/mycode/ekho-9.0/ekho-data/pinyin下,然后运行ekho '天气很好,是晴天,没有下雨哦' -o bbb.wav,会报错:Segmentation fault

第二次:我认为是安装到了/usr/local/share/ekho-data中, 然后我将此文件夹下的pinyin.voice和pinyin.index删除,然后pinyin文件夹下有个文件是COPYING-mandarin-yali,也删除,然后我解压下载到的pinyin-huang-44100-wav-v3,将文件下的所有音频复制到/usr/local/share/ekho-data/pinyin下,然后运行ekho '天气很好,是晴天,没有下雨哦' -o bbb.wav,依旧会报错:Segmentation fault 这个音频到底要怎么替换呢,谢谢,很期待您的解答

hgneng commented 6 months ago

是加了-o输出到文件参数时才会报Segmentation fault,还是不加-o参数也会报错?

hanyuanzhong commented 6 months ago

image 不加-o 也会报错

hgneng commented 6 months ago

试试这样:

  1. cd ekho-9.0进入代码目录
  2. 运行sudo make uninstall删除/usr/local/share/ekho-data
  3. 把代码目录的ekho-data/pinyin.index, pinyin.voice删除
  4. 运行./ekho 123重新生成代码目录的ekho-data/pinyin.index和pinyin.voice
  5. 运行sudo make install安装到/usr/local/share/ekho-data。
  6. ekho 123

也可以不运行sudo make install,每次都进入代码目录里运行,这样就不用老是删除两个版本的缓存这么麻烦。

hanyuanzhong commented 6 months ago

可以了,可以了,我已经成功替换了语音,非常感谢,