Qt Academy has now launched! See how we aim to teach the next generation of developers. Get started
最新版Qt 6.3已正式发布。 了解更多。
最新バージョンQt 6.3がご利用いただけます。 詳細はこちら

Qt Speech (文字の音声化)について

この記事は The Qt BlogQt Speech (Text to Speech) is here を翻訳したものです。
執筆: Frederik Gladhorn, 2017年1月20日

Qt 5.8.0 には Qt Speech モジュールがテクノロジープレビューとして追加されました。ここまでくるのには結構な時間を要しましたが、これは注目に値する要素が今のところ少ないためです。Android ではバックエンドが正常に動作するためのビルドとも格闘をしました。が、幸運なことに、手助けをしてくれるコミュニティがいつも存在しています。

Example application show Qt Text to Speech

パッケージに含まれるものは、テキストの音声化(Text to speech)です。モジュールはとてもコンパクトで、異なるプラットフォームの様々なバックエンドに賢い言葉を喋らせるための抽象化された API を提供します。上記のスクリーンショットは、Linux 上でのスピーチのバックエンドで、これは性別などの属性の機能がありません。これらはプラットフォームに依存していて、我々は様々な音声を選択できるように最大限の工夫をしました。

普通のことを最大限シンプルにし、綺麗な API を提供するのが Qt のゴールです。さて、どのくらいシンプルでしょう?

エンジンの選択(プラットフォームによっては複数選択肢がある場合があります)が可能です。地域と音声を選択しましょう。デフォルトのものが自動で選択されるので、単に QTextToSpeech のインスタンスを生成して、1、2個シグナルの接続をし、say() と呼ぶだけです。

m_speech = new QTextToSpeech(this);
connect(m_speech, &QTextToSpeech::stateChanged,
this, &Window::stateChanged);
m_speech->say("Hello World!");

これだけです。さぁ、やってみましょう。現時点ではテクノロジープレビューなので、API が不完全だったり、やりかたがまずい場合には是非フィードバックをいただければと思います。ドキュメント はこちらになります。

ここで、今回貢献していただいた皆さんに感謝を申し上げます。The Qt Company の Maurice と Richard の他、特に開発初期からお手伝いいただいたコミュニティの皆さん、一般的な改善と後押しをしてくれた Jeremy Whiting(彼なしにはこのプロジェクトはここまでたどり着かなかったでしょう)、Samuel Nevala と Michael Dippold は Android のバックエンドのほとんどの実装をしてくれ、最終的にこういった形にすることができました。本当にありがとう!

Qt Speech の今後の開発予定が気になりますか?音声化側にも細かい問題が色々残っています(簡単なところだと、音声の保存や状態の保持など)。音声認識側は、これは非常に大きなプロジェクトで、適切なアプローチが必要です。まだまだできること、やるべきことがたくさんありますが、様々なユースケースに対する適切な事前調査からはじめるべきだと考えています。簡単なコマンド的な音声化から、オフラインのケース、ネイティブのバックエンドからクラウドの API などなど。焦ってあれこれ進めるのではなく、これらの様々なケースにすべて対応可能な使いやすい API に仕上げたいと思っています。(おそらく多くのクラスが必要になるでしょうが、明確な見通しは今のところありません。)音声認識は非常に重要な分野で、必然性も徐々に高まっているため、近いうちに何かの成果を出せたらいいと思っていますが、ある程度お見せできる形にするまでにはまだしばらく時間がかかるでしょう。


Blog Topics:

Comments