音声合成

音声合成（おんせいごうせい、英: speech synthesis）とは、人間の音声を人工的に作り出すことである。音声情報処理の一分野。音声合成器により合成された音声を合成音声（ごうせいおんせい）と呼ぶ。典型的にはテキスト（文章）を音声に変換できることから、しばしばテキスト音声合成またはText-To-Speech (TTS)とも呼ばれる。なお、歌声を合成するものは特に歌声合成と呼ばれる。また、音声を別の個人あるいはキャラクターの音声に変換する手法は声質変換と呼ばれる。

歴史

現代的な信号処理手法が発明されるずっと以前から、西アフリカのトーキングドラム等のように音声を模倣する試みがなされてきた。
1779年には、クリスティアン・クラッツェンシュタインにより母音を発声できる機械が製作された。この流れはふいごを使った機械式音声合成器を作ったオヴォルフガング・フォン・ケンペレンに引き継がれた。彼は1791年に論文を発表し、その機械について説明している。この機械は舌と唇をモデル化しており、母音だけでなく子音も発音できた。1837年、チャールズ・ホイートストンがフォン・ケンペレンのデザインを元にしゃべる機械を製作し、1857年には、M. FaberがEuphoniaを製作した。ホイートストンの機械は、1923年にPagetが再現している。
1930年代、ベル研究所のホーマー・ダドリー（Homer Dudley）は通信用の電子式音声分析・音声合成器であるボコーダー（vocoder、voice coderの略）を開発した。その後これを応用し、音声合成部にキーボードを付加した鍵盤演奏型の音声合成器であるvoderを製作し、ニューヨーク万国博覧会 (1939年)に出展した。その発声は十分理解可能だったと言われる。1940年代には、ハスキンズ研究所のフランクリン・S・クーパー（Franklin S. Cooper）らがPattern playbackという機械の開発に取り組み、1950年に完成した。この機械にはいくつかのバージョンがあるが、実際に機能したのは一つだけである。この機械は、スペクトル形式の音声パターンの図を音に変換するものであった。アルヴィン・リバーマン（Alvin Liberman）らは、これを音声学の研究に利用した。
コンピュータを使った最初の音声合成器は1950年代終盤に開発され、最初のテキスト音声合成器は1968年に開発された。1961年、物理学者のJohn Larry Kelly, Jr.とLouis Gerstmenは、ベル研究所でIBM 704を使った音声合成を行った。そしてデイジー・ベルという歌をコンピュータに歌わせた。友人のジョン・ピアースを訪ねてベル研究所に来ていたアーサー・C・クラークはこのデモを聴いて感銘を受け、2001年宇宙の旅でHAL 9000が歌うクライマックスシーンが生まれた。
1999年には、東京工業大学のチームにより統計的な生成モデルを用いた音声合成の先駆けである隠れマルコフモデル音声合成が提案された。2013年にはGoogleのチームにより深層学習（ディープラーニング）に基づいた音声合成が提案され、2017年にはテキスト処理部が不要なend-to-endテキスト音声合成が提案された。

理論

音声合成の中でもテキスト音声合成は、テキスト（文章）を音声に変換するものであるが、この変換は以下のような問題と捉えることができる。
テキストとそれに対応する音声波形の組があるとき、任意に与えられたテキストに対応する音声波形を求めよ。
この問題の解き方としては様々なものが考えられるが、現在よく用いられる手法である統計的手法では、大規模な音声データベース（コーパス）に基づいて、この問題を確率的な枠組みで解いている。また、同一話者が同じ文を何回か読み上げたときに、全く同一の波形が得られることは極めて稀である。このような音声生成過程および音声信号の非決定的な性質を扱うためにも、確率的な枠組みは有効である。この枠組みでは、音声データベース（コーパス）に存在するテキストおよび音声波形をそれぞれおよび、与えられた任意のテキストを、合成すべき音声をとしたとき、の予測分布をから推定し、この予測分布からをランダムサンプリングすればよいことになる。
しかし、予測分布を計算することは困難であるため、実際には補助変数と近似を導入して、いくつかの副問題に分解する。すなわち、音声信号の性質を表す音響特徴量を（データベース）および（合成）、テキストの性質を表す言語特徴量を（データベース）および（任意に与えられたテキスト）、言語特徴量が与えられた際の音響特徴量の生起確率を表現するパラメトリックな音響モデルをとしたとき、予測分布は以下のように分解できる。
あとは補助変数について周辺化を行えばよいが、これを補助変数の同時確率を最大化する点で近似すると、予測分布は以下のように近似できる。
ただし、
である。
しかし、同時確率の最大化もなお困難であるため、さらに逐次最適化で近似すると、以下の6つの副問題をそれぞれ最適化することになる。すなわち、（音響特徴量の抽出）、（言語特徴量の抽出）、（音響モデルの学習）、（言語特徴量の予測）、（音響特徴量の予測）、（音声波形の生成）を、それぞれ最適化する。ただし、近年ではこれらの副問題を統合して最適化する手法も提案されている。

規則合成

研究を通じて得られた音声生成に関する知識を元に規則を定め、その規則に基づいて音声を生成する。歴史的には比較的古く、現在では用いられることは稀である。
例えば以下のようなものがある。

フォルマント音声合成

スペクトルや基本周波数などのパラメータを調整して音声を合成する。音の欠損がなく高速に発声させても明瞭に聞き取れる、統計的手法のような音声データベースを必要としないために合成器のサイズが小さくなる、イントネーションや音色を（規則の範囲内で）自由に変えることができるなどの特徴がある。一方で、合成された音声はロボット的なものであり、人間の音声らしさは乏しい。
かつては組み込みシステムでよく使われた。例えば、1970年代末にテキサス・インスツルメンツが発売した玩具・Speak & Spell、セガが1980年代に開発したいくつかのアーケードゲーム（Astro Blaster、Space Fury、Star Trek: Strategic Operations Simulatorなど）がある。

調音音声合成

人間の声道の構造をモデル化して、それを元に音声を合成する。商用でも使われた例があり、NeXTで使われていたシステムは、カルガリー大学の研究チームがスピンオフして作ったTrillium Sound Research Inc.が開発したものである。Trilliumはこれをフリーなgnuspeechとして公開しており、GNU savannah siteで入手可能である。

波形接続型音声合成

録音された音声の素片を連結して合成する。録音された音声の素片を利用するため、入力テキストに近いものが録音された音声中にあれば肉声に近く自然な合成音声になるが、そうでなければ接続部分などで自然性を損なうことがある。また、発話速度や声の高さを多少調整することはできるものの、それ以外の音声の柔軟な加工は原理的に困難である。あまり変化の激しい音声の合成は技術的に困難であり、そのため話し方はニュートラルなものがほとんどである。
例えば以下のようなものがある。

単位選択型音声合成

コーパスベース音声合成とも呼ばれるが、生成モデル型音声合成でもモデルの学習にコーパスを使用する。データベースの作成では、音声を録音し、その録音した音声に対して、文・フレーズ・アクセント句・形態素・音素・アクセントなどを表すラベルを付与するとともに、音声認識や人手での調整により、ラベルと音声区間の対応を取る。音声を合成する際には一般に、まず入力テキストをテキスト解析器により解析し、そのテキストの文・フレーズ・アクセント句・形態素・音素・アクセントなどの情報（言語特徴量）を得る。次いで、得られた言語特徴量から基本周波数や音素継続長などを予測し、それに最も合致する（ターゲットコスト）音声素片を、接続部分の滑らかさ（接続コスト）も考慮しつつ、データベース中から選んで接続する。これにより、肉声に近く自然な音声を合成することを可能としている。しかし、あらゆる入力テキストに対してより自然に聞こえる音声を合成するには、想定される入力テキストに応じて録音する音声を増やす必要があり、その分データベースが巨大になる。波形接続型音声合成では合成器が音声素片を保持しておく必要があるため、容量の小さな補助記憶装置しか持たないシステムではこれが問題になることがある。

ダイフォン音声合成

音声データベースに目的言語のダイフォン（diphone、音素のペア）を保持し、それを使用して合成する。ダイフォンの個数はその言語の音素配列論により決まる（例えば、スペイン語なら約800、ドイツ語なら約2,500のダイフォンを持つ）。ダイフォン音声合成では、データベースは1つのダイフォンにつき1つの音声素片を保持しておけばよいので、データベースの大きさが単位選択合成と比較して圧倒的に小さくて済む。音声を合成する際には、ダイフォンを並べたものに線形予測分析法（PSOLA、MBROLAなど）のようなデジタル信号処理を施して韻律を作る。合成された音声は、単位選択型音声合成と比べて音質が劣る。単位選択型音声合成の発展などのため、近年では使われることが少ない。

分野限定音声合成

録音された単語や文節を連結して音声を合成する。これは特定分野のテキスト読み上げ、例えば駅の案内放送などで用いられる。この方式は分野を限定しているので、自然に聞こえる音声を合成するのは簡単である。しかし、どのような入力テキストでも合成できるわけではなく、特定の合成器を別の分野で使用するのは極めて困難である。データベースが保持している単語や文節しか合成できないため、入力テキストはそれらによって限定される。新しい入力テキストに対応する場合（例えば、新駅が設置された場合など）は、追加の録音を行う必要がある。また、フランス語におけるリエゾンなど、前後の単語などとの関係で発音が変わるのを再現するのは難しい。この場合、文脈を考慮して録音および合成を行う必要がある。

統計的パラメトリック音声合成

録音された音声から音声の特徴を学習したパラメトリックな生成モデルを作り、その生成モデルの出力を元に音声を合成する。生成モデルから人工的に音声波形を生成するために従来は肉声感に劣っていたが、2013年以降、深層学習（ディープラーニング）を利用することにより急速な改善が見られている。波形接続型音声合成では条件次第で合成された音声の滑らかさに問題が生じうるが、統計的音声合成では基本的には常に滑らかな音声を合成することが可能である。また、手法によっては例えばAさんの声とBさんの声の中間の声を合成するなど、音声を柔軟に加工することが可能である。また、比較的変化の激しい音声も合成可能であり、ニュートラルな話し方だけでなく、感情を込めた話し方など多様な表現が可能である。
主な手法は以下のとおり。

隠れマルコフモデル音声合成

隠れマルコフモデル (Hidden Markov Model; HMM) を生成モデルに用いた音声合成。統計的パラメトリック音声合成の先駆けであり、東京工業大学のチームによって1999年に提案された。比較的少数のパラメータで音声の特徴を表現でき、モデルの大きさや、モデルの学習および音声の合成に要する計算コストは比較的小さい。携帯電話（フィーチャー・フォン）や電子手帳など、ハードウェアの制約が比較的大きい端末でも十分に動作が可能である。また、必要な録音時間も（商用の）単位選択型音声合成に比べて一般に短くて済む。隠れマルコフモデルは音声波形そのものを出力するのではなく、メル周波数ケプストラム係数 (Mel Frequency Cepstral Coefficients; MFCC) や線スペクトル対 (Linear Spectral Pairs: LSP) といった音声のスペクトルを表現する特徴量、および基本周波数などの特徴量系列を出力し、それをボコーダーによって音声波形に変換する。統計モデルの単純さからスペクトルが人間の音声と比べて平滑なものになりがちであり、このため合成された音声は肉声感に乏しい。また、基本周波数の軌跡も単純なものになりがちである。

ニューラルネットワーク音声合成

ニューラルネットワーク音声合成はニューラルネットワークを音声合成モデルに利用した音声合成である。言語特徴量から音響特徴量への（決定論的な）非線形変換をニューラルネットワークでモデル化する、言語特徴量で条件付けられる音声波形確率分布（生成モデル）自体をニューラルネットワークでモデル化する等の方法がある。
Googleのチームから2013年に最初の論文が発表された。ニューラルネットワークモデルは隠れマルコフモデルに比べて表現力が高く、より自然な音声合成が可能である。一方、モデルのパラメータ数、学習・音声合成計算コストは大きい。そのため実用段階ではサーバにおける合成が行われていたり、非GPU環境（一部のスマートフォンなど）での動作を可能にするための様々な研究が行われている。
隠れマルコフモデル音声合成と同様、ニューラルネットワークモデルは音響特徴量を出力する。さらにWaveNet（Google, 2016)をきっかけとして音声波形を直接モデル化・出力する手法が登場した。これら波形生成モデルは限られた条件下では人間の音声に極めて近い（あるいは同等の）品質の音声を合成できる。WaveNetの登場と商用化を背景に、同等の声質をより速く、軽く、シンプルなモデルで実現するための様々な研究が行われてる（WaveNet Vocoder、Clarinet、WaveGlow、WaveRNN、RNN_MSなど）。
また従来はモデル入力に（入力テキストをテキスト解析器によって解析した）言語特徴量が用いられていた。2017年には言語特徴量（テキスト解析器）を不要としたChar2Wav、Deep Voice、Tacotronなどのいわゆるend-to-end音声合成が提案され、活発な研究開発が行われている。

このように、設計された言語・音響特徴量を用いたパラメトリックな音声合成（統計的パラメトリック音声合成）は、特徴量によらない波形生成すなわち統計的音声波形合成（statistical speech waveform synthesis / SSWS）へと範囲を広げつつある。

分類

音声合成はいくつかの観点から分類できる。

テキストの読み方の正しい推定

テキスト音声合成においては、入力されたテキスト（文章）の読み方を正しく推定することが必要である。一般には規則・辞書・統計的手法などを組み合わせて行う。しかし、これには様々な困難がある。例えば日本語では、漢字の音読み・訓読みの区別（あるいはそれぞれが複数ある場合にどの読み方か推定する）、同形異音語の区別、アクセントの推定、人名や地名の読み方の推定などを正しく行うには困難が伴う。

品質の客観評価

音声合成の品質のうち、合成音声の自然性を客観的に評価するのは困難である。専門家の間で共通して有効であると認識されているような客観指標は存在しない。目的話者との類似性や、目的の発話スタイルの再現性などについても同様である。

性能の公平な比較

音声合成の手法は研究者によってそれぞれ独自のデータセットを用いてモデル学習を行い、かつ独自の課題により評価することが少なくなく、性能を公平に比較することが困難な場合がある。そこで、音声に関する国際学会であるInternational Speech Communication Association (ISCA) のSpeech Synthesis Special Interest Group (SynSIG) では、2005年より毎年Blizzard Challengeという競技会を行っている。この競技会では、共通のデータセットを学習に用いた音声合成システムを、共通の課題により評価することで、性能の公平な比較を可能としている。
なお、特に商用の音声合成システムではその目的に応じたデータセットを用いることでその目的に特化した性能向上を図ることがあり、これは各社のノウハウとなっている。

クラウドコンピューティング

様々な音声合成がクラウドコンピューティングを通じて利用可能であり、多数のAPIが提供されている。

オペレーティングシステム

現代では、様々なパーソナルコンピュータ向けあるいはスマートフォン向けなどのオペレーティングシステムに音声合成機能が搭載されている。

Mac OS、macOS

1984年、アップルはMacintoshに音声合成機能MacInTalkを追加した。また、音声認識も導入しており、これらの機能を統合したPlainTalkは視覚障害者のためのサポートプログラムであった。Mac OS X v10.4以降にはVoiceOverという音声合成機能が搭載されている。また、音声アシスタントのSiriでも音声合成が使用されている。

iOS

Siriで音声合成が使用されているほか、テキスト読み上げ機能がある。

Microsoft Windows

SAPIという音声関係のAPIを用意していた。Windows XPにはNarratorという音声合成プログラムが追加された。現在は、音声アシスタントのCortanaで音声合成が使用されているほか、スクリーンリーダーが搭載されている。

Android

音声アシスタントのGoogleアシスタントで音声合成が使用されているほか、テキスト読み上げ機能がある。Googleの提供するテキスト読み上げ機能の音声は、一部の言語でGPUを持たないスマートフォン上でも深層学習に基づく音声合成を行っている。また、Googleアシスタントの音声には、一部の言語でWaveNetが使用されている。

学術雑誌・学会

音声合成の研究について議論されている学術雑誌や学会には、以下のようなものがある（太字は一部または全部の論文について査読を行っているもの）。

研究団体

音声合成の研究を行っている団体には以下のようなものがある。