Faire parler la Raspberry

Raspberry PiにeSpeakでテキストを読ませる方法。

更新しました 5 11月 2019 - 0 コメント - , , ,

ⓘ Cet article peut avoir été partiellement ou totalement traduit à l'aide d'outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.

コンピューティングでは、ユーザーインターフェイスの問題はおそらく最も複雑なものの1つです。それ、名前を付け、キャッシュを無効にする…

コンピュータから人間に情報を提示する最も簡単な方法は、通常、視覚を使用することです。しかし、そのためには、かさばり、高価であり、したがって、車載での使用にはあまり適していない画面が必要です。

このチュートリアルでは、Raspberry PiにeSpeakソフトウェア(Text To Speechと呼ばれる)を使用してテキストを読み上げることにより、ユーザーの視覚ではなく聴覚を使用する方法を説明します。

Raspberry Piを機能させるためのハードウェア

Raspberry Piを読み上げるには、次の機器が必要です。

Raspberry PiにeSpeakをインストールする

Raspberry Piを読み上げるために、オープンソースのテキスト読み上げソフトウェアであるeSpeakソフトウェアを使用します。

eSpeakの原理は次のとおりです。テキスト(文字列、ファイルなど)を与えると、それを音素(話し言葉を構成する最小の音)に分割してから、これらの音素を実際のサウンドファイルに変換する手法。

eSpeakをRaspberry Piにインストールするには、すでにリポジトリに存在しているため、非常に簡単です。したがって、リポジトリを更新してeSpeakのインストールを要求するだけです。

sudo apt update
sudo apt install espeak -y

eSpeakで文章を読む

eSpeakがインストールされたので、最初の文を読み上げることができます。しかしその前に、Raspberry Piのジャックポートから音がスピーカーに届くようにします。

これを行うには、sudo raspi-configコマンドを実行してから、「詳細オプション」、「オーディオ」、「強制3.5mm(「ヘッドフォン」)ジャック」、最後に「完了」に進みます。

フォルダを作成します espeak ユーザーのディレクトリでオーディオファイルをダウンロードして再生し、すべてが正しく機能していることを確認します。

mkdir /home/pi/espeak
cd /home/pi/espeak
wget https://raspberry-pi.fr/download/espeak/test.mp3 -O test.mp3
ffplay -nodisp test.mp3

Cメジャースケールの演奏が聞こえるはずです。

スピーカーが機能していることがわかったので、eSpeakに「ラズベリーは祖父の便に腰掛けています。」というフレーズを尋ねます。これには、以下のコマンドを使用します。

espeak -a 200 -v fr+f3 "Les framboises sont perchées sur le tabouret de mon grand-père." --stdout | aplay

これは私たちにこのようなものを与えます…

だからはい、声はひどいですが、後でそれを改善します。

コマンドを少し理解してみましょう。

  • espeak espeakプログラムを起動する
  • -a 200 サウンドに使用するボリュームを示します。範囲は0〜200で、デフォルトでは100です。
  • -v fr+f3 使用する言語を教えてください。fr フランス語に対応し、+f3 eSpeakによって提案された女性の声の3番目のバリエーションを使用することを示します。言語コードをテキストに適合させることを忘れないでください。
  • 引用符で囲まれた文は、eSpeakによって話されるものです。代わりに、テキストファイルを気軽に読み取るように要求することもできます。-f le_chemin/du/fichier.txt
  • --stdout 音声を直接再生するのではなく、生成されたデータを端末の標準出力に送信する必要があることをeSpeakに伝えます。
  • | aplay eSpeakによって生成された出力が、eSpeakによって生成されたWave形式のオーディオファイルを再生できるプログラムであるaplayプログラムの入力にリダイレクトされることを示します。代わりに、> mon_fichier.wav オーディオ出力をファイルに保存します。

ご覧のとおり、音声を再生するのはeSpeakではなくaplayです。これの理由は非常に単純です。一部のバージョンでは、Raspberry Piでespeakのバグが発生しています…

数行のespeakバグ。
そして、私の友人、それを「バグ」と呼んでいます…

eSpeakを直接話そうとすると、Raspberry PiサウンドサーバーであるAlsaに関連するエラーが発生します。したがって、最も簡単な解決策は、データをaplayに送信することです。それ自体が完全に機能します。結局それは機能し、それがすべての問題です。

ラズベリーにMBROLAをインストールして、eSpeakの声を向上させます。

ご覧のとおり、eSpeakによって生成された音声は完全に不潔です。パニックしないでください。これを改善するための解決策があります。

記事の冒頭で触れましたが、eSpeakは音素を生成できます。これらの音は話し言葉を構成します。そして、これらの音素を読み、発音できる他のプログラムが、eSpeakよりも説得力のある方法であることがわかりました!

私たちのケースでは、MBROLAソフトウェアを使用します。これは、音声合成用の巨大なデータベースの設計を目的とする、ベルギーのモンス工科大学が開始したグローバルな共同プロジェクトです。

不思議なことに、MBROLAソフトウェアはRaspbianリポジトリでは利用できませんが、言語データは利用できます。これにより、これらの言語データのインストールが不可能になります…

ケビン・ハートでさえバギーだ!
なに?

心配しないで、私たちは解決策を持っています!実際、Raspberry Pi自身のためのMBROLAパッケージを作成するのに十分な善意を持っていたので、サイトにミラーを作成することにしました。

したがって、以下のコマンドでこのパッケージをダウンロードしてインストールします。

cd ~/espeak
wget https://raspberry-pi.fr/download/espeak/mbrola3.0.1h_armhf.deb -O mbrola.deb
sudo dpkg -i mbrola.deb

MBROLAがインストールされたので、必要な言語ファイルをダウンロードできます。だから私にとっては mbrola-fr1、つまり最初のフランス語の声です。コマンドを自分の言語に適合させます。

sudo apt install mbrola-fr1 -y

私たちが今しなければならないことは、以前のeSpeakの注文を取り、音素を生成してMBROLAに読み込ませるようにそれを適応させることだけです。以下のコマンドが表示されます。

espeak -a 200 -v mb-fr1 -s 150 "Les framboises sont perchées sur le tabouret de mon grand-père." --stdout | aplay

以下の音声が得られます。

もちろんロボットだといつも感じています。しかし、まだ最高のものがあることを認めてください!

以前と同じ設定がいくつかありますが、2つの変更点があります。

  • -v mb-fr1 MBROLAを使用してオーディオファイルを生成することを示します mb、そしてフランスの声番号1 -fr1
  • -s 150 毎分150ワードの速度でファイルを生成する必要があることを彼に示します。デフォルトは165ですが、少なくともフランス語では少し速いと思います。

もちろん、以前のように、コマンドを変更してファイルを作成したり、txtファイルからテキストを読み取ったりすることができます。

これらのコマンドをRFIDタグの読み取りなどと組み合わせることで、比較的完全なインターフェースを備えた車載システムを簡単に作成できます。

もちろん、私たちはまだ人間の声にはほど遠く、Common Voiceプロジェクトの一部として開発されたMozillaのTTSなど、より優れた「テキスト読み上げ」エンジンがあることを知っています。 それにもかかわらず、MBROLAとeSpeakは、使いやすさ、実行速度、効率の間で妥協点を提供しています。

Notez cet article.
共有
ニュースレター
著者:
Raspberry Pi FR
Raspberry Piコミュニティに参加する
35ドルのコンピューターはすでに1000万部を売りました
新しいRASPBERRY PI 4を購入する
関連チュートリアル
WindowsとMacからRaspberry SDカードのLinuxパーティションを読み取ります。 Raspberry Pi、USBキーまたは外付けハードドライブから起動する方法。 Raspberry Pi Imagerを使用して、Windows、Mac、またはLinuxからSDカードを作成します。 あなたのラズベリーパイとサンバとSINを作成します。 ラズベリーパイでサーボモーターを制御する方法
コメントはまだありません

共有
ニュースレターのサインアップ
ニュースレターを購読します。
この記事は気に入りましたか?
購読して最新情報を入手してください!