かならずお読みください注意事項

エンチャント文字盤の音と声

第二回 声の役割と出す方法

下の欄に日本文を入力して「話す」をクリックしてください




下の欄に英文を入力して「話す」をクリックしてください




下の欄にフランス語の文を入力して「話す」をクリックしてください


ご注意 大変残念なことに三カ国各国語を話すようになるにはいくらかの工夫が必要です。初めての言語を発話する際に必要な言語データのダウンロードがはじまります。ChromeやEdgeを使用すると各国語とも比較的早く発話できるようになります。Firefoxでは日本語を発話できません。ios safariではかなり時間が(日時が)かかります。詳細は次回。

声に対するいろいろな思い

自分の声を失った人やその家族の『失われた声』への思いにはずいぶんちがいがあります。 失った声を人工的に再現したいと望まれるケースもあり、そのための技術もビジネスも存在します。その人が美声または個性的な声の持ち主だったのかもしれないと想像すると声への思いの深さも納得できます。しかしこの一方で言いたいことさえ伝われば方法には特にこだわらないという人もいます。この気持ちもわかります。とかく気にしない人はとんと気にしないようです。

形を取るか実を取るか。声の場合にもそれぞれの価値観によりおおきなちがいがあらわれるようです。

声が出ると何がいいか

『声』が出せると少し離れた場所で別の用事をしている人を呼ぶことができます。用があれば呼んでもらえると思えば、介護する人の行動範囲が広がり気持ちも楽になり生活の質の改善が期待できます。またご本人もひとりの時間がもてるようになります。距離が近すぎるといろいろ苦しいもののようです。

もちろんブザーでも同じことができます。これで十分だと思う人もいるしまたその人らしい言葉のほうがいいと思う人もいるでしょう。 コミュニケーションエイドで文章を作ってこれを読み上げたら、隣の部屋から返事ができます。これがブザー呼び出しなら、ベッドサイドにやって来て画面をみなければなりません。

どんなやりかたがいいのでしょうか。コミュニケーションに参加するご本人とご家族と周囲のみなさんたちとで考えるのがいいでしょう。コミュニケーションは、単に尋ねて答えるだけでなく、お互い求めて応えてよりよく暮らすためのものと考えていくと、『声』はあればあったでいいものでしょう。

お金がかからないと何がいいか

さきにお話ししたように、一定の条件がそろいある程度の費用を負担できるとかなり高い品質の声を獲得することは既に可能になっています。そこでこれ以降はそれ以外の人たち向けにごく低価格で声を出す方法について話を進めていくことにします。

このようにより多くの選択肢を準備し提供する取り組みにはある重要な意味があります。特に病気やけがで『このやり方しかありません』『ほかに手段はありません』などの言葉を受けた人々には、より多くの選択肢と方法や手段を用意しその中から自分で選んで決める機会を提供することで、自己選択、自立と自律、再起へとすすんでいただくことができると考えられています。そしてリハビリテーションのめざすところがここにあると思います。そのためにもあまりお金がかからない方法が求められるのです。

声を出すいろいろな方法

エンチャント文字盤ではこれまで予め用意した音声ファイルを前回説明した方法で再生していました。この方法では『あ』をクリックすると「あ」と発音し、『ありがとう』をクリックすると「ありがとう」と発声します。

しかしこの方法では予め準備した言葉しか発声できません。 例えば、しゃべる文字盤50音で自由に作った文章を読み上げるにはうまく対応できません。 例えば「こんにちは」と発声するのに、「こ」「ん」「に」「ち」「は」と順番に声を出したのではアクセントはまるでデタラメで大昔のSF映画のような品質になります。でももしかしたら小さなこどもさんは喜んでくれるかもしれません。

一般的に合成音声とかTTS(text to speech)と呼ばれる、『文字を声に変換する技術』でこの問題は解決に近づきます。エンチャント文字盤はJavaScriptという言語で作られているので合成音声も同じ言語で扱えること、さらに誰でも無料で利用できるために費用のかからない合成音声を探したところWebSpeechAPIに行き着きました。

このページの一番上にJavaScriptで作ったWebSpeechAPIのデモサンプルを組み込みました。エンチャント文字盤の読み上げ機能にも基本的に同じものが使われています。 テキストボックスに任意の文字を入れて『話す』をクリックすると発声します。 10年ほど間にも同じ試みを行いましたが当時とは比較にならないくらい品質が向上し人間の声に近づいています。これで無料とはとても信じられません。

WebSpeechAPIで声を出す方法

使ってみると、WebSpeechAPIは単純に文字列を追って声を出しているのではなく、事前に文字列のなかの単語を識別して発声を決めているようです。たとえば、『トマト』は野菜のトマトのアクセントで発声しますが、『とまと』では異なるアクセントで発声します。

これは外国語の場合はさらにはっきりします。西洋言語の場合既にインストールされている英語(米語)言語データを使用してとにかく発声を試みるためか、英語訛りのフランス語が発声されることが特に初期にはよくあります。

おそらく日本語の場合も類似の方法を使用していると思われます。いずれのせよ各国語の話し言葉の研究がWebSpeechAPIの基礎に存在するのだと思います。

WEBspeechAPIでの声の出し方。

            // 音声の設定 起動時の音声発声
            var synthes = new SpeechSynthesisUtterance();
               synthes.voiceURI = 'Google 日本人';//'native';
               synthes.volume = 1;
               synthes.rate = 0.9;
               synthes.pitch = 0.75;
               synthes.lang = 'ja-JP';
               synthes.text = '準備出来ました';
               //synthes.lang = 'en-US';
               //synthes.text = 'hello, Now, We start the enchant.js';
               speechSynthesis.speak(synthes);

このコードはエンチャント文字盤の50音文字盤の起動時の『準備出来ました』発声部分です。米語を試した部分が、//でコメントアウトしてあります。
前半は声の設定部で、volumeとrateとpitchが調整できます。
7行目は発声する言語、日本語を選んでいます。 8行目は発声する文字列を設定しています。 11行目で発声しています。 日本語以外には、英語8種類スペイン語20種類を含む60種類以上の言葉を選べます。

                synthes.text = '全部消す';
                speechSynthesis.speak(synthes);

こちらは全文字消去の時の発声部分です。synthes.text に文字列を代入して speechSynthesis.speak(synthes)で発声しています。発声の際にやるべきことはこれだけです。

おわりに

今回はエンチャント文字盤で声を出す目的と方法について説明しました。 この方法でパソコンもスマホもタブレットもしゃべります。何か国語もしゃべります。

WebSpeechAPIの使い方やサンプルは検索するとたくさん見つかります。 ここまで説明したこともごく短時間で見つかります。またさらに詳しい解説記事も読むことができます。このような知識や技能が簡単に手に入るのがインターネットのスゴイところです。

普通ならここで目的は達成されめでたしめでたしなのですが、 ここから先に問題が潜んでいました。 次回はその問題と対応策についてお送りします。

参考URL

Web Speech API関係

その他


2018/03/30 公開

研究企画課リハ工学科にもどる