【エンジニアブログ】多言語音声合成システムについて

こんにちは。プロアクシアコンサルティングでオープンソリューション事業部に所属しています M.N です。
今日は、多言語音声合成システムについて紹介していきたいと思います。

プロアクシアでの役割とこれまでの経験を教えてください

システム開発に携わり始めたころは、騒音計測システム、顔認識システム、HPLC (高速液体クロマトグラフ) 分析装置などの機器を制御するための Windows アプリケーションの開発を主に担当しておりました。

10 年ほど前に国立の研究開発法人の業務を担当させていただく機会があり、現在まで多言語音声合成システムの開発に参画しております。

多言語音声合成システムとはどのようなシステムですか

多言語音声合成システムは、様々な言語で書かれたテキストをその言語の音声に変換して読み上げるためのシステムです。

最近ではスマートフォンやスマートスピーカーなど、音声インターフェースを用いる機器が普及してきていますが、多言語音声合成システムは音声出力の部分で利用されています。
これらのシステムでは、音声認識システムを利用して入力された音声をテキスト変換し、検索やアプリケーションの実行などの処理を実行した後に、多言語音声合成システムを利用して処理結果をテキストから音声に変換して出力しています。

私が担当している多言語音声合成システムでは、日本語・英語・中国語など 15 言語をサポートしており、翻訳システムなどの多言語で利用するシステムなどでも活用されております。

音声合成の処理はどのように行われているのでしょうか

音声合成のシステムは、大きく分けるとテキスト処理部と信号処理部の2つで構成されており、テキスト処理部で入力されたテキストの内容を解析して音素列に置き換えたのちに、信号処理部で音素列を合成音声に変換します。

テキスト処理部

入力されたテキストデータを解析して音素列に変換するための処理を実行します。

具体的には、「数字を単語列に変換」・「文を単語毎に分割」・「単語を音素列に変換」・「ポーズ位置を推定」などのプロセスを経ることで、文を音素列に変換します。この音素列の音素 1 つ 1 つには、アクセントの有無や文内の音素位置などの属性が付与されています。

日本語や中国語などの言語は分かち書き (言葉の区切りに空白を入れる書き方) をせずに表記するため、単語毎に分割する必要があります。英語やフランス語、ベトナム語などの分かち書きして表記する言語の場合は、複合語 (2 語以上の単語からなる語) を 1 語とみなす必要があります。

単語の発音については、基本的には辞書に登録されている音素列を利用しますが、未知語 (辞書に登録されていない単語) については単語の綴りから音素列を推定します。

信号処理部

現在広く利用されている HMM 音声合成という手法について説明します。

テキスト処理部から出力された音素列の情報を用いて、音素の長さ (継続長)、基本周波数、スペクトルを決定します。基本周波数の変化によってアクセント (日本語)・声調 (中国語) やイントネーションが特徴づけられ、スペクトルによって母音や子音の聞こえ方が特徴づけられます。

基本周波数とスペクトルを掛け合わせる処理により、音声信号を出力します。

システム開発に関する苦労や大変だったことはありますか

多言語音声合成システムは、多言語間でのコミュニケーション支援ツールなどに利用されることが多いため、国際的なイベントの開催に向けて開発が進められることがあります。

最近であれば、東京オリンピックに向けて対応言語の増強が行われました。
このようにシステム開発のスケジュールが、イベントの開催に向けて決められたりすることがあるので、思っていた以上に開発期間が厳しい場合などがあります。

言語によって苦労する点としては、参考文献の準備や言語の聞き取りの難しさがあります。

言語にもよりますが、対象言語を学習するために利用する参考文献がとても少ない言語があります。
最近対応した言語では、ミャンマー語やクメール語などは日本語で書かれている文献がかなり少なかったです。こういった言語を対応する場合は、多くの書店を回ったりネット通販で色々と検索するなど、書籍を探す作業が難航するため開発を行うための準備段階で苦労します。

言語の聞き取りの難しさについては、開発者自体が対象言語を聞き分けることができるかが課題になります。
多言語音声合成システムの開発の評価段階では、その言語が正確に発音されているかや、文章が自然に話せているかなどを評価する必要があります。評価を行うための前提として発音されている内容を聞き分ける必要があるのですが、開発している本人が発音に違いを聞き分けれないと評価のしようがありません。

このため、評価段階では開発者でなく対象言語を母語として利用されている方にご協力いただくのですが、その方からの評価がどのようなニュアンスで違うと判断されているのかを理解してシステムへ反映していくのがとても難しいです。特に、音素の多い言語の場合は微妙な発音の違いが多いこともあり、発音の調整が難しい要因になります。

お客様からの要望を満たすためにどのようなアプローチを行われますか

多言語音声合成システムの開発の場合、通常の業務システムなどと比べて要件を明確にすることが難しいこともあり、お客様からいただく要望事項が大まかになってしましがちです。

このため、円滑に開発を進めるためにも、「なぜそのような要望が出てくるのか」という背景を可能な限り理解することが重要だと思っています。背景を理解することでお客様と認識を合わせることができ、要望されている内容をより深く理解することができるようになります。

また、成果物の評価についても業務システムのように明確に正解となる動作が判断できるものではないので、どこまでできればお客様のご要望を満たせたと判断できるのかについても、事前に認識合わせをしておくことが重要です。

自分の強みはどんなところでしょうか

本案件に長く携わっていることもありますが、研究者の方が話す専門的な言葉でどういったことを望まれているのか理解しながら、アプリケーション開発者の目線から要望事項を整理し、理解していくことができるのが強みだと思っています。

研究者の方は、直接アプリケーションを開発されているわけではないので、開発側での制限事項や実現が難しい部分などが見えていない場合もありますので、両方の目線で判断することができることでより円滑に開発が進めれていると自負しています

今後どのような案件に携わっていきたいと考えていますか

今この分野に携わりたいという目標があるわけではありませんが、新しい技術や案件にチャレンジすることは好きなので、今後興味が持てる案件であれば新しいい分野にもどんどんチャレンジしていきたいです。

音声合成については 10 年間携わってきましたので、この分野がこの先どのように進化していくのか、利用場面がどこまで広がるのかを見届けられればと思います