昨日の記事、【React】テキストを読み上げるためのコンポーネント「react-speech」 でも書いていた通り、react-speech というコンポーネントを触っていましたが、どうにも無理そうだと悟り、違うパッケージにも手を出してみました。
それが、「speak-tts」というパッケージです。
インストール手順及び実装方法については、こちらのページをご確認ください。
インストールは下記のコマンドを実行します。
npm install speak-tts
実行後は、下記でプロジェクトにインポートします。
import SpeechTts from 'speak-tts'
まずは、使用している環境が、音声合成をサポートしているかをチェックします。
チェック方法は下記を実行。
const speech = new SpeechTts();
if (speech.hasBrowserSupport()) {
    // サポートされている
}
で、サポートされていたら、下記で初期化を行います。
const speech = new Speech();
speech.init(
    'voice':'Google UK English Male',
    'lang': 'en-GB'
).then((data) => {
    // 初期化成功
}).catch(e => {
    // 初期化失敗
});
なお、init() 内で、上記のようにオプションを設定することも可能です。
あとは、任意のタイミングで下記コードを実行し、テキストを読み上げます。
speech.speak({
    text: '[読み上げさせたいテキスト]',
}).then(() => {
    // テキスト読み上げ成功
}).catch(e => {
    // テキスト読み上げ失敗
})
なお、上で紹介した初期化を実行しないで speak() メソッドを実行すると、警告が出るので注意してください。
こちらも簡単で使いやすいと思ったのですが…Cordova アプリには実装できませんでした…。
Android で実行したところ、サポートされていないとのこと。
PC の Google Chrome で動作したので、Android でも使えるかも!と期待したのですが、残念でした。
なお、昨日の react-speech コンポーネントもPC のブラウザで実行したところ、正常に動作しました…。
うーん、そういう落ちか…。
以上、テキスト読み上げを実装するためのパッケージ「speak-tts」のご紹介でした。
触った感じとしては、react-speech よりも speak-tts の方が使いやすそうな印象を受けましたね。
オプションや機能はほぼ同一なので、お好きな方を導入ください。
 
					         
               
                       
                