音声合成
音声合成(おんせいごうせい、英: speech synthesis)とは、人間の音声を人工的に作り出すことである。
ヒトは発声器官を通じて音声を生成し、コミュニケーションを行なう(会話や演説、講演、各種芸能およびその中継や録音・録画など)。この音声を人工的に生成するタスクが音声合成である。合成された音声を合成音声(ごうせいおんせい)と呼ぶ。
音声合成は様々な手法で実現できる。ある種の楽器は人の声に似た音を発し、また人の喉を模倣した機械に風を吹き込むことで人の声に似た音が生成できる。コンピューターを用い、音声情報処理の一種としてデジタル的に音声を合成することもできる。
2020年代においては、コンピューターを使えば実音声と聞き分け不可能な音声合成が可能になっている。さらに人工知能(AI)を用いることで、ある人物が実際には話していない発言を映像とともに偽造すること(ディープフェイク)や、自分の声を学習させて癌手術による声帯手術などで発声ができなくなった後でもスマートフォンに入力したテキスト文を自分の声色に似せて音声合成する技術も実用化されている。
音声には言語内容・話者性・感情など様々な情報が含まれており、音声合成では望んだ属性をもつ合成音声の生成が求められる。生成にあたり望む属性を外部から入力し生成がおこなわれる。テキスト(文章)を入力し、望む言語内容の音声を生成するタスクは テキスト音声合成(Text-To-Speech; TTS)と呼ばれる。歌声を合成するものは特に歌声合成と呼ばれる。また、音声を別の個人あるいはキャラクターの音声に変換する手法は声質変換と呼ばれる。
現代的な信号処理手法が発明されるずっと以前から、西アフリカのトーキングドラム等のように音声を模倣する試みがなされてきた。
1779年には、クリスティアン・クラッツェンシュタインにより母音を発声できる機械が製作された。この流れはふいごを使った機械式音声合成器を作ったオーストリアのヴォルフガング・フォン・ケンペレンに引き継がれた。彼は1791年に論文Mechanismus der menschlichen Sprache nebst der Beschreibung seiner sprechenden Maschine(『音声の仕組みとしゃべる機械の解説』)を発表し、その機械について説明している。この機械は舌と唇をモデル化しており、母音だけでなく子音も発音できた。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テキスト音声合成が提案された。
Emergency broadcast in Mihama town 180918.opus
音声合成は様々なサービスで利用されている。例えば、コールセンターの自動応答、ATMや複合機などの電子機器、工場などでの構内放送、防災無線、駅・バスターミナル・空港などでの車内放送や案内放送、カーナビゲーション、電子辞書、家電、スマートフォンやスマートスピーカーなどのアプリケーションや音声アシスタント、エンターテインメントロボット、アニメ、テレビ番組・コミュニティ放送・ハイウェイラジオなどの放送分野、電子書籍の読み上げなどである。そのほか、音声合成は視覚障害者あるいは読字障害(ディスレクシア)者などのためにスクリーンリーダーとして使用されている。また、病気やその治療などのために発声または音声発話が困難な人が、自分の声の代わりに使用することもある。
テキスト音声合成はテキスト(文章)を音声に変換するタスクである。この変換は以下の問題と捉えることができる。テキストとそれに対応する音声波形の組があるとき、任意に与えられたテキストに対応する音声波形を求めよ。この問題に対する解法の1つが統計的機械学習である。すなわち音声データベース(コーパス)に基づき波形生成の確率モデルを学習し合成器とするアプローチである。人の音声生成において、同一話者が同じ文を何回か読み上げたときに全く同一の波形が得られることは極めて稀である。このように音声生成過程および音声信号は非決定的な性質をもち、確率的な枠組みは有効である。
この枠組みでは、音声データベース(コーパス)に存在するテキストおよび音声波形をそれぞれ \mathcal{W} および \Chi、与えられた任意のテキストを \boldsymbol{w}、合成すべき音声を \boldsymbol{x} としたとき、\boldsymbol{x} の予測分布 p(\boldsymbol{x}|\boldsymbol{w}, \Chi, \mathcal{W}) を \boldsymbol{w}, \Chi, \mathcal{W} から推定し、この予測分布から \boldsymbol{x} をサンプリングする。分布モデルはしばしば補助変数と近似を導入して複数のステップに分割される。
例えば補助変数として言語特徴量と音響特徴量を導入し次のように定式化する。音声信号の性質を表す音響特徴量を\mathcal{O}(データベース)および\boldsymbol{o}(合成)、テキストの性質を表す言語特徴量を\mathcal{L}(データベース)および\boldsymbol{l}(任意に与えられたテキスト)、言語特徴量が与えられた際の音響特徴量の生起確率を表現するパラメトリックな音響モデルを\lambdaとしたとき、予測分布は以下のように分解できる。\begin{align} p(\boldsymbol{x}\mid\boldsymbol{w}, \Chi, \mathcal{W}) &= \iiint \sum_{\forall\boldsymbol{l} \sum_{\forall\mathcal{L} p(\boldsymbol{x}, \boldsymbol{o}, \boldsymbol{l}, \mathcal{O}, \mathcal{L}, \lambda\mid\boldsymbol{w}, \Chi, \mathcal{W})d\boldsymbol{o}d\mathcal{O}d\lambda \\ & =  \sum_{\forall\boldsymbol{l} \sum_{\forall\mathcal{L} \iiint p(\boldsymbol{x}\mid\boldsymbol{o})p(\boldsymbol{o}\mid\boldsymbol{l}, \lambda)p(\boldsymbol{l}\mid\boldsymbol{w})\frac{p(\Chi\mid\mathcal{O})p(\mathcal{O}\mid\mathcal{L}, \lambda)p(\lambda)p(\mathcal{L}\mid\mathcal{W})}{p(\Chi)}d\boldsymbol{o}d\mathcal{O}d\lambda\\ \end{align}あとは補助変数について周辺化を行えばよいが、これを補助変数の同時確率を最大化する点で近似すると、予測分布は以下のように近似できる。p(\boldsymbol{x}\mid\boldsymbol{w}, \Chi, \mathcal{W}) \approx p(\boldsymbol{x}\mid\hat\boldsymbol{o})ただし、\{\hat\boldsymbol{o}, \hat\boldsymbol{l}, \hat\lambda, \hat\mathcal{O}, \hat\mathcal{L}\} = {\rm arg~max}_{\boldsymbol{o}, \boldsymbol{l}, \lambda, \mathcal{O}, \mathcal{L} \big\{p(\boldsymbol{x}\mid\boldsymbol{o})p(\boldsymbol{o}\mid\boldsymbol{l}, \lambda)p(\boldsymbol{l}\mid\boldsymbol{w})p(\Chi\mid\mathcal{O})p(\mathcal{O}\mid\mathcal{L}, \lambda)p(\lambda)p(\mathcal{L}\mid\mathcal{W})\big\}である。
しかし、同時確率の最大化もなお困難であるため、さらに逐次最適化で近似すると、以下の6つの副問題をそれぞれ最適化することになる。
\hat\mathcal{O} = {\rm arg~max}_{\mathcal{O}p(\Chi\mid\mathcal{O})(音響特徴量の抽出)
\hat\mathcal{L} = {\rm arg~max}_{\mathcal{L}p(\mathcal{L}\mid\mathcal{W})(言語特徴量の抽出)
\hat\lambda = {\rm arg~max}_{\lambda}p(\hat\mathcal{O}\mid\hat\mathcal{L}, \lambda)(音響モデルの学習)
\hat\boldsymbol{l} = {\rm arg~max}_{\boldsymbol{l}p(\boldsymbol{l}\mid\boldsymbol{w})(言語特徴量の予測)
\hat\boldsymbol{o} = {\rm arg~max}_{\boldsymbol{o}p(\boldsymbol{o}\mid\hat\boldsymbol{l}, \hat\lambda)(音響特徴量の予測)
\hat\boldsymbol{x} \sim p(\boldsymbol{x}\mid\hat\boldsymbol{o})(音声波形の生成)
中間特徴量を用いず直接音声波形を生成するモデルを End-to-End モデルという。すなわち p(wave|text, \theta) を1つのモデルで表現し、コーパスを用いて \theta を学習する。
音声合成手法は3つに大別される。
規則合成: 音声生成に関する知識を元に定めた規則に基づいて音声を合成
波形接続型音声合成: 録音された音声の素片を連結して合成
統計的パラメトリック音声合成: 統計的に学習したパラメトリックな生成モデルの出力を元に音声を合成
それぞれの手法は音質、計算量、リアルタイム性などの特徴が異なり、用途に合わせて手法が選択される。
規則合成は、研究を通じて得られた音声生成に関する知識を元に規則を定め、その規則に基づいて音声を生成する。歴史的には比較的古い。例えば以下のようなものがある。
分析合成は、規則に沿って生成・制御した音響特徴量を合成モデルへ渡すことで音声を合成する手法である。合成モデルとそれに対応する音響特徴量の例として以下が挙げられる。
ケプストラム分析: 基本周波数とスペクトル包絡
加算合成: 各周波数と強度
減算合成: 励起信号とスペクトル
線形予測符号化: 励起信号とARフィルタ係数
フォルマント音声合成: 励起信号とフォルマント
フォルマント音声合成(formant synthesis)はフォルマントに基づくフィルタを用いた減算合成の総称である。
ヒトの言語音は周波数スペクトル包絡の凹凸(フォルマント)で特徴づけられる。もしスペクトルが平坦な励起信号(例: 基本周波数に基づく調波、ランダムな白色雑音)に対してフォルマントを反映したフィルタを適用できれば、フォルマントを持った信号を生成できる。これがフォルマント音声合成である。フォルマント音声合成は励起信号とフィルタに基づくため減算合成の一種であり、またフォルマントを音響特徴量とした音声分析合成の一種でもある。
フォルマント音声合成は数個のフォルマントと励起信号によるシンプルな減算合成であるため、高い信号圧縮を小さい合成器で実現できる。また解釈性が高いため、音素-フォルマント対応の手動設計や音色操作が容易に可能である。。
かつては組み込みシステムでよく使われた。例えば、1970年代末にテキサス・インスツルメンツが発売した玩具・Speak & Spell、セガが1980年代に開発したいくつかのアーケードゲーム(Astro Blaster、Space Fury、Star Trek: Strategic Operations Simulatorなど)がある。
調音音声合成は人間の発声過程モデルに基づいた音声合成の総称である。分析合成が「出てきた音」に着目するのに対し、調音合成では「音が出てくる身体」に着目する。例えば音声を声道長や調音部位のパラメータとして表現し、発声過程の物理モデルを用いて音声を合成する。
商用でも使われた例があり、NeXTで使われていたシステムは、カルガリー大学の研究チームがスピンオフして作ったTrillium Sound Research Inc.が開発したものである。Trilliumはこれをフリーな gnuspeech として公開しており、GNU savannah siteで入手可能である。
録音された音声の素片を連結して合成する。録音された音声の素片を利用するため、入力テキストに近いものが録音された音声中にあれば肉声に近く自然な合成音声になるが、そうでなければ接続部分などで自然性を損なうことがある。また、発話速度や声の高さを多少調整することはできるものの、それ以外の音声の柔軟な加工は原理的に困難である。あまり変化の激しい音声の合成は技術的に困難であり、そのため話し方はニュートラルなものがほとんどである。
例えば以下のようなものがある。
単位選択型音声合成は、コーパスベース音声合成とも呼ばれるが、生成モデル型音声合成でもモデルの学習にコーパスを使用する。データベースの作成では、音声を録音し、その録音した音声に対して、文・フレーズ・アクセント句・形態素・音素・アクセントなどを表すラベルを付与するとともに、音声認識や人手での調整により、ラベルと音声区間の対応を取る。音声を合成する際には一般に、まず入力テキストをテキスト解析器により解析し、そのテキストの文・フレーズ・アクセント句・形態素・音素・アクセントなどの情報(言語特徴量)を得る。次いで、得られた言語特徴量から基本周波数や音素継続長などを予測し、それに最も合致する(ターゲットコスト)音声素片を、接続部分の滑らかさ(接続コスト)も考慮しつつ、データベース中から選んで接続する。これにより、肉声に近く自然な音声を合成することを可能としている。しかし、あらゆる入力テキストに対してより自然に聞こえる音声を合成するには、想定される入力テキストに応じて録音する音声を増やす必要があり、その分データベースが巨大になる。波形接続型音声合成では合成器が音声素片を保持しておく必要があるため、容量の小さな補助記憶装置しか持たないシステムではこれが問題になることがある。システムの利用分野を限定する(例: 駅の定型読み上げに限定する)ことでデータベースのサイズを絞ることが可能である一方、これは柔軟性を下げ変更コストを大きくする。
ダイフォン音声合成は音声素片にダイフォン(diphone、音素ペア)波形を利用した波形接続型音声合成の一種である。
ダイフォン音声合成ではダイフォン波形が収められたデータベースから入力にマッチする音声素片を選択し、PSOLA・MBROLA等の技法を用いて韻律を与えながら素片列を接続し合成音声を生成する。ダイフォンの個数(~音素素片数)は各言語の音素配列論で決定される(例: スペイン語約800、ドイツ語約2,500)。ゆえに単位選択型音声合成と比べてデータベースが小さくなる一方、。
統計的パラメトリック音声合成(statistical parametric speech synthesis; SPSS)は統計モデルに基づく音声合成、すなわち確率的音声合成の総称である。
録音された音声から音声の特徴を学習したパラメトリックな生成モデルを作り、その生成モデルの出力を元に音声を合成する。波形接続型音声合成では条件次第で合成された音声の滑らかさに問題が生じうるが、統計的音声合成では基本的には滑らかな音声を合成できる。また手法により、複数話者の中間声質、感情が込められた変化の激しい音声など、柔軟で多様な音声合成が可能である。
隠れマルコフモデル (HMM) を音響モデルに用いた音声合成である。HMMにより音響特徴量系列を確率的に生成し、これをボコーダーにより音声波形へと変換する。
統計的パラメトリック音声合成の先駆けであり、東京工業大学のチームによって1999年に提案された。少数のパラメータで音声の特徴を表現でき、モデルの大きさや、モデルの学習および音声の合成に要する計算コストは小さい。携帯電話(フィーチャー・フォン)や電子手帳など、ハードウェアの制約が大きい端末でも動作する。また必要な録音時間も(商用の)単位選択型音声合成に比べて短くて済む。
モデルの単純さからスペクトルが人間の音声と比べて平滑なものになりがちであり、このため合成された音声は肉声感に乏しい。また、基本周波数の軌跡も単純なものになりがちである。
ニューラルネットワーク音声合成はニューラルネットワークを音声合成モデルに利用した音声合成である。音響モデル(言語特徴量 to 音響特徴量)をニューラルネットワークでモデル化する、言語特徴量で条件付けられる音声波形確率分布(生成モデル)自体をニューラルネットワークでモデル化する等の方法がある。
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)へと範囲を広げつつある。
2017年には自然言語処理向けとして効率の良いTransformerが登場し、2018年にはそれを音声合成向けに応用したTransformer TTSが登場した。その後、拡散モデル と組み合わせた音声合成モデルが多数登場した。
また汎用ニューラルオーディオコーデックの技術が発展し、2023年にはEnCodecコーデックを音響トークンとして用いるVALL-Eや、SoundStreamコーデックを音響トークンとして用いるSPEAR-TTSが登場した。
音声合成では特性の属性を指定した合成音声を生成する場合が多い。属性には音響的特徴から音声認知的特徴まで以下のようなものがある。属性の組み合わせにより個人性や訛りが生まれる。
言語内容(字句情報)
話速、音素長
大きさ(ラウドネス)
音量遷移/強弱アクセント
音高(ピッチ)
テキスト音声合成においては、入力されたテキスト(文章)の読み方を正しく推定することが必要である。一般には規則・辞書・統計的手法などを組み合わせて行う。しかし、これには様々な困難がある。例えば日本語では、漢字の音読み・訓読みの区別(あるいはそれぞれが複数ある場合にどの読み方か推定する)、同形異音語の区別、アクセントの推定、人名や地名の読み方の推定などを正しく行うには困難が伴う。
音声合成の品質のうち、合成音声の自然性を客観的に評価するのは困難である。専門家の間で共通して有効であると認識されているような客観指標は存在しない。目的話者との類似性や、目的の発話スタイルの再現性などについても同様である。
音声合成の手法は研究者によってそれぞれ独自のデータセットを用いてモデル学習を行い、かつ独自の課題により評価することが少なくなく、性能を公平に比較することが困難な場合がある。そこで、音声に関する国際学会であるInternational Speech Communication Association(ISCA) のSpeech Synthesis Special Interest Group(SynSIG)では、2005年より毎年Blizzard Challengeという競技会を行っている。この競技会では、共通のデータセットを学習に用いた音声合成システムを、共通の課題により評価することで、性能の公平な比較を可能としている。
なお、特に商用の音声合成システムではその目的に応じたデータセットを用いることでその目的に特化した性能向上を図ることがあり、これは各社のノウハウとなっている。
2020年代において、主要なパーソナルコンピュータおよびスマートフォンのオペレーティングシステムは音声合成による読み上げ機能(スクリーンリーダー)を搭載している。歴史的にも様々な音声合成システムが実用されてきた。以下はその一例である。
Mac OS、macOS、iOS
MacInTalk(Macintosh, 1984~)
PlainTalk: 音声認識とMacInTalkによる視覚障害者サポート
VoiceOver(Mac OS X v10.4 ~)
Narrator(Windows XP)
TI-99/4Aには音声合成機能をオプションで追加可能であった。
PC-6001は音声合成カートリッジが追加でき、PC-6001mkIIには音声合成機能が内蔵されていた。後継のPC-6001mkIISRやPC-6601では歌うことも可能であった。
FM-7/FM-77シリーズには音声合成ボード (MB22437/FM-77-431) がオプションとして用意されていた。
MZ-1500/2500/2861にはオプションとしてボイスボード (MZ-1M08) が存在した。五十音と、いくつかのフレーズを外部チップにサンプリングされROMとして焼きこまれており、制御によって再生するものである。
Festival Speech Synthesis System
HMM-based Speech Synthesis System (HTS)
Open JTalk(HTSに基づいた日本語向け音声合成システム)
Coqui-TTS(Mozilla TTSの後継)- 日本語未対応。
PaddleSpeech - 英語および中国語。
NVIDIA NeMo
音声合成の研究について議論されている学術雑誌や学会には、以下のようなものがある(太字は一部または全部の論文について査読を行っているもの)。
European Association for Signal Processing (EURASIP)
Speech Communication(ISCAと合同)
IEEE Transaction on Information and Systems
IEEE Transaction on Signal Processing
International Speech Communication Association (ISCA)
Computer Speech and Language
Speech Communication(EURASIPと合同)
International Journal of Speech Technology
日本音響学会誌
Acoustical Science and Technology (AST)
電子情報通信学会論文誌
情報処理学会論文誌
Asia Pacific Signal and Information Processing Association (APSIPA)
APSIPA Annual Summit Conference (APSIPA ASC)
International Conference on Acoustics, Speech, and Signal Processing (ICASSP)
Spoken Language Technology (SLP)
International Speech Communication Association (ISCA)
INTERSPEECH
Speech Prosody
Speech Synthesis Workshop (SSW)
音声研究会(SP。電子情報通信学会と合同)
音声研究会(SP。日本音響学会と合同)
音声言語情報処理研究会 (SLP)
音声合成の研究を行っている団体には以下のようなものがある。
大学院工学研究科 システム創生工学専攻 森研究室
大学院情報学研究科 知能情報学専攻 河原研究室
大学院自然科学教育部 情報電気工学専攻 緒方研究室
大学院システム情報学研究科 情報科学専攻 滝口研究室
総合研究大学院大学(国立情報学研究所の教員が指導)
国立情報学研究所 コンテンツ科学研究系 山岸研究室
大学院工学系研究科 技術経営戦略学専攻 松尾研究室
大学院工学系研究科 電気系工学専攻 峯松・齋藤研究室
大学院情報理工学系研究科 システム情報学専攻 システム情報第1研究室(猿渡・小山研究室)
工学院 情報通信系 小林研究室
大学院工学研究科 通信工学専攻 伊藤・能勢研究室
大学院工学研究科 情報工学専攻 徳田・南角研究室
大学院情報学研究科 知能システム学専攻 武田研究室
大学院情報学研究科 知能システム学専攻 戸田研究室