この記事は、NetBSD Advent Calendar 2023の1日目の記事です。
はじめに
最近のMozilla Firefoxには、text-to-speech機能を利用するための仕組みが組み込まれています。 しかし、Firefox自体がテキストの内容を発音する訳ではなく、speech-dispatcher経由でFestivalというtext-to-speechエンジンを利用します。 NetBSDでも、pkgsrcを使ってFirefoxやspeech-dispatcher、Festivalをインストールし、設定することで、この機能を利用できます。 ですが、音声の品質は良くないようです。 今回は英語のみ発音させることを考えます。
Firefoxのインストール
現在のpkgsrc/www/firefoxのバージョンは120.0です。 既定値ではspeech-dispatcherを使うオプションは有効化されていません。 今回紹介する手順を実施しておかないと、text-to-speechが使えないという警告が頻繁に表示されることがあるので、speech-dispatcherを使うオプションはtext-to-speech機能を利用したい人だけが有効化するのが良いと思います。
以下のように/etc/mk.confに記載して、speech-dispatcherを利用できるFirefoxをビルドできるようにします。
# vi /etc/mk.con PKG_OPTIONS.firefox=speechd
これを設定した上で、pkgsrc/www/firefoxをビルドし、インストールします。
# cd /usr/pkgsrc/www/firefox # make install
speech-dispatcherは、pkgsrc/audio/speech-dispatcherにありますが、自動的にインストールされます。
Festivalのインストール
Festivalは本体であるpkgsrc/audio/festivalだけではなく、発音データは音声データも必要です。 pkgsrcでインストールする場合には、以下の4つのパッケージをインストールすれば、Festival本体も含め必要なものは全てインストールできます。
- pkgsrc/audio/festvox-kal16
- pkgsrc/audio/festvox-ked16
- pkgsrc/audio/festvox-rab16
- pkgsrc/audio/festival-freebsoft-utils
以下のように操作すれば良いでしょう。
# cd /usr/pkgsrc/audio/festvox-kal16 # make install # cd /usr/pkgsrc/audio/festvox-ked16 # make install # cd /usr/pkgsrc/audio/festvox-rab16 # make install # cd /usr/pkgsrc/audio/festival-freebsoft-utils # make install
これにより、3つの音声を選択することができるようになります。 いずれもあまり質は良くないのですが‥、
speech-dispatcherの設定
speech-dispatcherは、標準ではespeak-ngを使うような設定ファイルになっています。 今回はFestivalを使いますので、そのように指定して行きます。 /usr/pkg/etc/speech-dispatcher/speechd.confに、以下のようなパッチを適用すれば良いでしょう。
--- /usr/pkg/share/examples/speech-dispatcher/speechd.conf 2023-11-18 05:59:28.000000000 +0900 +++ /usr/pkg/etc/speech-dispatcher/speechd.conf 2023-12-01 12:33:15.988361377 +0900 @@ -114,6 +114,7 @@ # configuration. # DefaultLanguage "en-US" +DefaultLanguage "en-US" # ----- MESSAGE DISPATCHING CONTROL ----- @@ -255,7 +256,7 @@ #AddModule "espeak" "sd_espeak" "espeak.conf" #AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf" -#AddModule "festival" "sd_festival" "festival.conf" +AddModule "festival" "sd_festival" "festival.conf" #AddModule "flite" "sd_flite" "flite.conf" #AddModule "ivona" "sd_ivona" "ivona.conf" #AddModule "pico" "sd_pico" "pico.conf" @@ -287,7 +288,8 @@ # The DefaultModule selects which output module is the default. You # must use one of the names of the modules loaded with AddModule. -DefaultModule espeak-ng +#DefaultModule espeak-ng +DefaultModule festival # The LanguageDefaultModule selects which output modules are prefered # for specified languages. @@ -295,6 +297,7 @@ #LanguageDefaultModule "en" "espeak" #LanguageDefaultModule "cs" "festival" #LanguageDefaultModule "es" "festival" +LanguageDefaultModule "en" "festival" # -----CLIENT SPECIFIC CONFIGURATION-----
起動させる
Firefoxを起動させる前に、Festivalサーバーを起動しておく必要があります。 Festivalサーバーは、/etc/rc.d以下のスクリプトで起動させるのではなく、自分で起動させる必要があります。
$ festival --server &
続いて、Firefoxも起動させます。
$ firefox &
テキストを読ませる
テキストを読ませるには、リーダービュー機能が利用できるウェブページである必要があります。 例えば、https://edition.cnn.com/の個別の記事であれば、リーダービューを有効にできます。 アドレス欄の右端に下図のようなアイコンが表示されていれば、リーダービューを利用できるウェブページです。 これをクリックすると、リーダービュー画面に移動することができます。
リーダービュー画面では左上に、下図のようなコンソールが表示されています。 ヘッドホンアイコンをクリックすると、音声や再生速度の選択、再生・停止の指示のできるポップアップもできます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。