やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

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を入手する。

  1. ファイルをダウンロードする
  2. ファイラでダブルクリックする
  3. パスワードを入力する
  4. インストールされる

  5. https://www.raspberrypi.org/forums/viewtopic.php?t=148096

  6. https://packages.debian.org/buster/armhf/mbrola/download

  7. https://github.com/numediart/MBROLA-voices/

  8. 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'

所感

 

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux