Linuxで使えるTTSを探した
Linuxで使えるTTSを探した
6つ。日本語は3つ。無料のは2つ。Web Speech APIで使えるものなし。ゼロ。0。……。
一覧
TTS | 無料無期限 | 日本語 | standalon |
---|---|---|---|
N2 linux無償版 | ☓ | ○ | ? |
OpenJTalk | ◎ | ◎ | ◎ |
trancelate-cli | △ | ○ | ☓ |
eSpeak | ? | ☓ | ? |
Festival | ? | ☓ | ? |
Svox Pico | ? | ☓ | ? |
OpenJTakl
Web Speech APIが使えないんだよなぁ。
mbrola
sudo apt install -y mbrola mbrola-jp1 mbrola-jp2 mbrola-jp3
使い方わからず。
espeak-ng
sudo apt install -y espeak-ng
ひらがなとカタカナのみ読み上げる。しかも「りほんご」って聞こえる。イントネーションがネイティブ日本人じゃないのが丸わかり。おまえ英語話者だろ。
espeak-ng -v ja 'にほんご' espeak-ng -v ja 'ニホンゴ'
50音をいわせる。子音によって速さが違う。あかん。
espeak-ng -v ja 'あいうえお。かきくけこ。さしすせそ。たちつてと。なにぬねの。はひふへほ。まみむめも。らりる れろ。わをん。'
前者は速い。後者は遅い。
espeak-ng -v ja 'あいうえお。なにぬねの。まみむめも。らりる れろ。わをん。' espeak-ng -v ja 'かきくけこ。さしすせそ。たちつてと。はひふへほ。'
漢字はダメ。「チャイニーズレターレターレター」っていっているっぽい。
espeak-ng -v ja '日本語'
nbrola日本語ボイス使えず
mbrolaのボイスが使えるとあるのに、使えなかった。
espeak-ng -v mb-jp1 'にほんご' espeak-ng -v mb-jp2 'にほんご' espeak-ng -v mb-jp3 'にほんご' espeak-ng -v jp1 'にほんご' espeak-ng -v jp2 'にほんご' espeak-ng -v jp3 'にほんご'
Error: The specified espeak-ng voice does not exist.
git clone https://github.com/espeak-ng/espeak-ng
cp -r ./espeak-ng/espeak-ng-data/* ~/espeak-data
espeak-ng -v mb-jp1 'にほんご' espeak-ng -v mb-jp1 'にほんご' espeak-ng -v mb-jp1 'にほんご'
やはり以下エラー。ボイスが見つからない。
Error: The specified espeak-ng voice does not exist.
ごちゃごちゃ試行錯誤
espeak
sudo apt update
sudo apt install espeak -y
espeak 'My name is Andy.'
ヘルプ
espeak --help
eSpeak text-to-speech: 1.48.03 04.Mar.14 Data at: /usr/lib/arm-linux-gnueabihf/espeak-data espeak [options] ["<words>"] -f <text file> Text file to speak --stdin Read text input from stdin instead of a file If neither -f nor --stdin, then <words> are spoken, or if none then text is spoken from stdin, each line separately. -a <integer> Amplitude, 0 to 200, default is 100 -g <integer> Word gap. Pause between words, units of 10mS at the default speed -k <integer> Indicate capital letters with: 1=sound, 2=the word "capitals", higher values indicate a pitch increase (try -k20). -l <integer> Line length. If not zero (which is the default), consider lines less than this length as end-of-clause -p <integer> Pitch adjustment, 0 to 99, default is 50 -s <integer> Speed in words per minute, 80 to 450, default is 175 -v <voice name> Use voice file of this name from espeak-data/voices -w <wave file name> Write speech to this WAV file, rather than speaking it directly -b Input text encoding, 1=UTF8, 2=8 bit, 4=16 bit -m Interpret SSML markup, and ignore other < > tags -q Quiet, don't produce any speech (may be useful with -x) -x Write phoneme mnemonics to stdout -X Write phonemes mnemonics and translation trace to stdout -z No final sentence pause at the end of the text --compile=<voice name> Compile pronunciation rules and dictionary from the current directory. <voice name> specifies the language --ipa Write phonemes to stdout using International Phonetic Alphabet --ipa=1 Use ties, --ipa=2 Use ZWJ, --ipa=3 Separate with _ --path="<path>" Specifies the directory containing the espeak-data directory --pho Write mbrola phoneme data (.pho) to stdout or to the file in --phonout --phonout="<filename>" Write phoneme output from -x -X --ipa and --pho to this file --punct="<characters>" Speak the names of punctuation characters during speaking. If =<characters> is omitted, all punctuation is spoken. --split="<minutes>" Starts a new WAV file every <minutes>. Used with -w --stdout Write speech output to stdout --version Shows version number and date, and location of espeak-data --voices=<language> List the available voices for the specified language. If <language> is omitted, then list all voices.
espeak 'My name is Andy.' -a 200
別のボイスデータmbrola_3.02b+dfsg-4_armhf.debを入手する。
- ファイルをダウンロードする
- ファイラでダブルクリックする
- パスワードを入力する
インストールされる
- https://gist.github.com/sourceperl/157fe9e7cb4a2fcb2836957c9d6bb1a3
git clone https://github.com/numediart/MBROLA-voices/ sudo mkdir -p /usr/share/mbrola/voices/
sudo cp /tmp/work/MBROLA-voices/data/jp1/jp1 /usr/share/mbrola/voices/ sudo cp /tmp/work/MBROLA-voices/data/jp2/jp2 /usr/share/mbrola/voices/ sudo cp /tmp/work/MBROLA-voices/data/jp3/jp3 /usr/share/mbrola/voices/
mv /tmp/work/MBROLA-voices/data/jp1/ /tmp/work/MBROLA-voices/data/_jp1/ mv /tmp/work/MBROLA-voices/data/jp2/ /tmp/work/MBROLA-voices/data/_jp2/ mv /tmp/work/MBROLA-voices/data/jp3/ /tmp/work/MBROLA-voices/data/_jp3/ sudo cp -r /tmp/work/MBROLA-voices/data/_jp1/ /usr/share/mbrola/voices/ sudo cp -r /tmp/work/MBROLA-voices/data/_jp2/ /usr/share/mbrola/voices/ sudo cp -r /tmp/work/MBROLA-voices/data/_jp3/ /usr/share/mbrola/voices/
mbrola
espeakとは別のコアなソフト。オープンソースでないためラズパイでは使えない。
以下にあった。
wget https://raspberry-pi.fr/download/espeak/mbrola3.0.1h_armhf.deb -O mbrola.deb sudo dpkg -i mbrola.deb
epeak-ng
espeak-ng -v ja 'にほんご' espeak-ng -v ja 'ニホンゴ'
漢字はダメ。「チャイニーズグチャグチャ」っていっているように聞こえるw
espeak-ng -v ja '日本語'
ビルドできなかった。
最新版が使いたくてコードからビルドしようとした。が、エラーが出て解決できなかった。
git clone https://github.com/espeak-ng/espeak-ng
./configure make sudo make install
autoreconf -i
./configure
make
sudo make install
aclocal
autoconf
autoheader
automake --add-missing
./configure
make
sudo make install
./configure
を実行すると以下エラーになる。
config.status: error: cannot find input file: `Makefile.in'
所感
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux