トップQs
タイムライン
チャット
視点

音声合成

発声を目的とした機械音や電子音 ウィキペディアから

Remove ads

音声合成(おんせいごうせい、: speech synthesis)とは、人間音声を人工的に作り出すことである[1]

概要

ヒトは発声器官を通じて音声を生成し、コミュニケーションを行なう(会話演説、講演、各種芸能およびその中継や録音・録画など)。この音声を人工的に生成するタスクが音声合成である。合成された音声を合成音声(ごうせいおんせい)と呼ぶ。

音声合成は様々な手法で実現できる。ある種の楽器は人の声に似た音を発し、また人の喉を模倣した機械に風を吹き込むことで人の声に似た音が生成できる。コンピューターを用い、音声情報処理の一種としてデジタル的に音声を合成することもできる。

2020年代においては、コンピューターを使えば実音声と聞き分け不可能な音声合成が可能になっている[要出典]。さらに人工知能(AI)を用いることで、ある人物が実際には話していない発言を映像とともに偽造すること(ディープフェイク)や、自分の声を学習させて手術による声帯手術などで発声ができなくなった後でもスマートフォンに入力したテキスト文を自分の声色に似せて音声合成する技術[2]も実用化されている。

音声には言語内容・話者性・感情など様々な情報が含まれており、音声合成では望んだ属性をもつ合成音声の生成が求められる[3]。生成にあたり望む属性を外部から入力し生成がおこなわれる。テキスト(文章)を入力し、望む言語内容の音声を生成するタスクは テキスト音声合成: Text-To-Speech; TTS)と呼ばれる。歌声を合成するものは特に歌声合成と呼ばれる。また、音声を別の個人あるいはキャラクターの音声に変換する手法は声質変換と呼ばれる。

音声合成は幅広い用途で実利用されている(⇒ #用途)。その発展を目指して様々な団体が研究をおこなっている(⇒ #研究)。

Remove ads

歴史

要約
視点

現代的な信号処理手法が発明されるずっと以前から、西アフリカトーキングドラム等のように音声を模倣する試みがなされてきた。

1779年には、クリスティアン・クラッツェンシュタインにより母音を発声できる機械が製作された[4]。この流れはふいごを使った機械式音声合成器を作ったオーストリアヴォルフガング・フォン・ケンペレンに引き継がれた。彼は1791年に論文Mechanismus der menschlichen Sprache nebst der Beschreibung seiner sprechenden Maschine(『音声の仕組みとしゃべる機械の解説』)を発表し、その機械について説明している。この機械はをモデル化しており、母音だけでなく子音も発音できた。1837年チャールズ・ホイートストンがフォン・ケンペレンのデザインを元にしゃべる機械を製作し、1857年には、M. FaberがEuphoniaを製作した。ホイートストンの機械は、1923年にPagetが再現している[5]

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[6]は、ベル研究所IBM 704を使った音声合成を行った。そしてデイジー・ベルという歌をコンピュータに歌わせた。友人のジョン・ピアースを訪ねてベル研究所に来ていたアーサー・C・クラークはこのデモを聴いて感銘を受け、2001年宇宙の旅HAL 9000が歌うクライマックスシーンが生まれた[7]

1999年には、東京工業大学のチームにより統計的な生成モデルを用いた音声合成の先駆けである隠れマルコフモデル音声合成が提案された。2013年にはGoogleのチームにより深層学習(ディープラーニング)に基づいた音声合成が提案され、2017年にはテキスト処理部が不要なend-to-endテキスト音声合成が提案された。

Remove ads

用途

音声合成は幅広い用途で実利用されている。以下はその一例である:

理論

要約
視点

音声合成では統計的機械学習がしばしば用いられる。すなわち音声データベースコーパス)に基づき波形生成の確率モデルを学習し合成器とするアプローチである。人の音声生成において、同一話者が同じ文を何回か読み上げたときに全く同一の波形が得られることは極めて稀である。このように音声生成過程および音声信号は非決定的な性質をもち、確率的な枠組みは有効である[要出典]

例えば統計的機械学習を用いたテキスト音声合成では、コーパス内のテキスト と音声波形 、与えられたテキスト 、合成目標音声 として、 の予測分布 から推定し、この予測分布から をサンプリングする[10]

パイプラインモデル

例えば補助変数として言語特徴量と音響特徴量を導入し次のように定式化する。音声信号の性質を表す音響特徴量を(データベース)および(合成)、テキストの性質を表す言語特徴量を(データベース)および(任意に与えられたテキスト)、言語特徴量が与えられた際の音響特徴量の生起確率を表現するパラメトリックな音響モデルをとしたとき、予測分布は以下のように分解できる。あとは補助変数について周辺化を行えばよいが、これを補助変数の同時確率を最大化する点で近似すると、予測分布は以下のように近似できる。ただし、である。

しかし、同時確率の最大化もなお困難であるため、さらに逐次最適化で近似すると、以下の6つの副問題をそれぞれ最適化することになる。

  • (音響特徴量の抽出)
  • (言語特徴量の抽出)
  • (音響モデルの学習)
  • (言語特徴量の予測)
  • (音響特徴量の予測)
  • (音声波形の生成)

End-to-Endモデル

中間特徴量を用いず直接音声波形を生成するモデルを End-to-End モデルという。すなわち を1つのモデルで表現し、コーパスを用いて を学習する。

Remove ads

手法

要約
視点

音声合成手法は3つに大別される。

  • 規則合成: 音声生成に関する知識を元に定めた規則に基づいて音声を合成
  • 波形接続型音声合成: 録音された音声の素片を連結して合成
  • 統計的パラメトリック音声合成: 統計的に学習したパラメトリックな生成モデルの出力を元に音声を合成

それぞれの手法は音質、計算量、リアルタイム性などの特徴が異なり、用途に合わせて手法が選択される。

規則合成

規則合成[11]は、研究を通じて得られた音声生成に関する知識を元に規則を定め、その規則に基づいて音声を生成する。歴史的には比較的古い。例えば以下のようなものがある[12]

分析合成

分析合成は、規則に沿って生成・制御した音響特徴量を合成モデルへ渡すことで音声を合成する手法である[13]。合成モデルとそれに対応する音響特徴量の例として以下が挙げられる。

フォルマント音声合成

フォルマント音声合成: formant synthesis[14])はフォルマントに基づくフィルタを用いた減算合成の総称である[15]

ヒトの言語音は周波数スペクトル包絡の凹凸(フォルマント)で特徴づけられる。もしスペクトルが平坦な励起信号(例: 基本周波数に基づく調波、ランダムな白色雑音)に対してフォルマントを反映したフィルタを適用できれば、フォルマントを持った信号を生成できる。これがフォルマント音声合成である。フォルマント音声合成は励起信号とフィルタに基づくため減算合成の一種であり、またフォルマントを音響特徴量とした音声分析合成の一種でもある[16]

フォルマント音声合成は数個のフォルマントと励起信号によるシンプルな減算合成であるため、高い信号圧縮を小さい合成器で実現できる。また解釈性が高いため、音素-フォルマント対応の手動設計や音色操作が容易に可能である。音の欠損がなく高速に発声させても明瞭に聞き取れる一方、合成された音声はロボット的なものであり人間の音声らしさは乏しい[要出典]

かつては組み込みシステムでよく使われた。例えば、1970年代末にテキサス・インスツルメンツが発売した玩具・Speak & Spell、セガ1980年代に開発したいくつかのアーケードゲーム(Astro Blaster、Space Fury、Star Trek: Strategic Operations Simulatorなど)、ヤマハPLG100-SG[注 1][17]が挙げられる。

調音音声合成

調音音声合成は人間の発声過程モデルに基づいた音声合成の総称である。分析合成が「出てきた音」に着目するのに対し、調音合成では「音が出てくる身体」に着目する。例えば音声を声道長や調音部位のパラメータとして表現し、発声過程の物理モデルを用いて音声を合成する。

商用でも使われた例があり、NeXTで使われていたシステムは、カルガリー大学の研究チームがスピンオフして作ったTrillium Sound Research Inc.が開発したものである。Trilliumはこれをフリーな gnuspeech として公開しており、GNU savannah siteで入手可能である。

波形接続型音声合成

波形接続型音声合成はけいせつぞくがたおんせいごうせい: concatenation-based synthesisは音声素片を調整・連結して音声を合成する手法の総称である[18]

波形接続型音声合成では、短い音声波形を素片としこれらを調整したうえで連結して音声を合成する[18]。出力目標に近い素片があれば繋ぐだけで自然な音声を合成できる一方、無ければ素片の調整が必要となり自然性が調整法の品質に依存する。また幅広い表現のためには幅広い表現の素片を用意する、あるいは自然かつ表現力のある調整法を採用する必要があり[19]、様々な手法が開発されている(例: PSOLA - 音高操作[19]MBROLA[要出典])。これらの前提として、表現を言語化しその音響的特徴を理解する必要がある(収集基準の設定、調整法の考案、合成時の選択に必須)。

単位選択型音声合成

単位選択型音声合成たんいせんたくがたおんせいごうせい: unit selection speech synthesisは事前収集された要素の選択に基づく音声合成の総称である[20][21]単位選択型合成: unit selection synthesis)とも[22]。古くはコーパスベース音声合成: corpus based synthesis)とも呼ばれた[注 2][22]

単位選択型音声合成では合成のもととなる「ユニット unit」をラベルと共に事前収集し、合成入力に基づいてユニットを選択し合成することで音声を生み出す。

ユニット収集はデータベース作成とも呼ばれる。データベース作成音声を録音し、その録音した音声に対して、文・フレーズ・アクセント句・形態素音素・アクセントなどを表すラベルを付与するとともに、音声認識や人手での調整により、ラベルと音声区間の対応を取る。

音声を合成する際には一般に、まず入力テキストをテキスト解析器により解析し、そのテキストの文・フレーズ・アクセント句・形態素・音素・アクセントなどの情報(言語特徴量)を得る。次いで、得られた言語特徴量から基本周波数や音素継続長などを予測し、それに最も合致する(ターゲットコスト)音声素片を、接続部分の滑らかさ(接続コスト)も考慮しつつ、データベース中から選んで接続し、音声を得る。

これにより、肉声に近く自然な音声を合成することを可能としている。しかし、あらゆる入力テキストに対してより自然に聞こえる音声を合成するには、想定される入力テキストに応じて録音する音声を増やす必要があり、その分データベースが巨大になる[23]。単位選択型音声合成では合成器が音声素片を保持しておく必要があるため、容量の小さな補助記憶装置しか持たないシステムではこれが問題になることがある。システムの利用分野を限定する(例: 駅の定型読み上げに限定する)ことでデータベースのサイズを絞ることが可能である一方、これは柔軟性を下げ変更コストを大きくする。

ダイフォン音声合成

ダイフォン音声合成は音声素片にダイフォン(: diphone、音素ペア)波形を利用した波形接続型音声合成の一種である。

ダイフォン音声合成ではダイフォン波形が収められたデータベースから入力にマッチする音声素片を選択し、韻律を与えながら素片を接続することで音声を生む。ダイフォンの個数(~音素素片数)は各言語の音素配列論で決定される(例: スペイン語約800、ドイツ語約2,500)。ゆえに単位選択型音声合成と比べてデータベースが小さくなる一方、合成音質に劣る。単位選択型音声合成の発展などのため、近年では使われることが少ない[要出典]

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

統計的パラメトリック音声合成(: statistical parametric speech synthesis; SPSS)は統計モデルに基づく音声合成、すなわち確率的音声合成の総称である[24]

録音された音声から音声の特徴を学習したパラメトリックな生成モデルを作り、その生成モデルの出力を元に音声を合成する。波形接続型音声合成では条件次第で合成された音声の滑らかさに問題が生じうるが、統計的音声合成では基本的には滑らかな音声を合成できる。また手法により、複数話者の中間声質、感情が込められた変化の激しい音声など、柔軟で多様な音声合成が可能である。

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

隠れマルコフモデル (HMM) を音響モデルに用いた音声合成である。HMMにより音響特徴量系列を確率的に生成し、これをボコーダーにより音声波形へと変換する。

統計的パラメトリック音声合成の先駆けであり、東京工業大学のチームによって1999年に提案された[25]。少数のパラメータで音声の特徴を表現でき、モデルの大きさや、モデルの学習および音声の合成に要する計算コストは小さい。携帯電話(フィーチャーフォン)や電子手帳など、ハードウェアの制約が大きい端末でも動作する。また必要な録音時間も(商用の)単位選択型音声合成に比べて短くて済む。

モデルの単純さからスペクトルが人間の音声と比べて平滑なものになりがちであり、このため合成された音声は肉声感に乏しい[要出典]。また、基本周波数の軌跡も単純なものになりがちである[要出典]

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

ニューラルネットワーク音声合成ニューラルネットワークを音声合成モデルに利用した音声合成である。

音響モデル(言語特徴量 to 音響特徴量)をニューラルネットワークでモデル化する、言語特徴量で条件付けられる音声波形確率分布(生成モデル)自体をニューラルネットワークでモデル化する等の方法がある。ニューラルネットワークモデルは隠れマルコフモデルに比べて表現力が高く自然性が高い一方、モデルのパラメータ数、学習・音声合成計算コストは大きい[要出典]

最初のニューラルネットワーク音声合成モデルは2013年に発表された[26]。初期の研究では隠れマルコフモデル音声合成と同様に音響特徴量を出力していた。2016年には音声波形の直接出力(波形生成モデル)で人間と同等品質の合成が可能な WaveNet が登場した[27]。高い声質をより速く、軽く、シンプルなモデルで実現するための様々な研究が行われてる(例: WaveNet Vocoder[28]、Clarinet[29]、WaveGlow[30]、WaveRNN[31]、RNN_MS[32])。

また従来はモデル入力に(入力テキストをテキスト解析器によって解析した)言語特徴量が用いられていた。2017年には言語特徴量(テキスト解析器)を不要としたChar2Wav[33]、Deep Voice[34]、Tacotron[35]などのいわゆるend-to-end音声合成が提案された。

さらに見る モデル名, 入力 ...

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

2017年には自然言語処理向けとして効率の良い Transformer が登場し、2018年にはそれを音声合成向けに応用した Transformer TTS が登場した[38]。その後、拡散モデル と組み合わせた音声合成モデルが多数登場した。

また Transformer はハードウェアの限界までスケールするため大規模言語モデル (LLM) の技術が発展していき、2021年には画像生成で LLM の GPT-3 を用いた DALL-E が登場し、その後、音声合成でも DALL-E に影響を受けて LLM の GPT-2 を用いた TorToiSe TTS が登場した[39]。次いで2024年にはそれを改良して多言語化した XTTS が登場した[40]

一方、汎用ニューラルオーディオコーデックの技術も発展し、2023年には EnCodec コーデックを音響トークンとして用いるVALL-Eや[41]、SoundStream コーデックを音響トークンとして用いる SPEAR-TTS が登場した[42][43]

2024年には WavTokenizer コーデックを音響トークンとして用いて、それを大規模言語モデル (LLM) の LLaMA と組み合わせた OuteTTS が登場した[44]

さらに見る モデル名, サイズ ...
Remove ads

分類

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

生成元

合成先

  • 歌声: 歌声合成(: singing voice synthesis; SVS[52]

テキスト音声合成

テキスト音声合成テキストおんせいごうせい: text-to-speech, TTSはテキスト(文章)を音声に変換するタスクである。この変換は「テキストとそれに対応する音声波形の組があるとき、任意に与えられたテキストに対応する音声波形を求める」問題と捉えられる[53][54]

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

音声変換

音声変換おんせいへんかん: voice conversion, VC)は入力音声がもつ特徴の一部を変換するタスクである[55]。言語内容を維持したまま話者を変える話者変換[56]、声のトーンのみを変える感情変換など、様々なサブタスクに分類できる。話者性や音色を維持し言語内容のみを外国語に変えるタスクは音声翻訳タスクとも音声変換タスクとも捉えられる。

帯域拡張

帯域拡張たいいきかくちょう: bandwidth extension, BWEは入力音の実効周波数帯域を合成により引き上げるタスクである[57]周波数帯域拡張: frequency bandwidth extension)、音響超解像: audio super-resolution)とも[58]

ヒトは20kHzまでの音を聞き取る能力をもつ(可聴域)が、様々な制約によりそれ以下の周波数成分までしか持たない合成音は様々存在する(例: 固定電話)。下限についても同様であり、この失われた周波数帯域を推定し補完する音声合成タスクが帯域拡張である。帯域拡張を実現できれば音響・音声の明瞭性や自然性を向上でき、また帯域拡張を前提とした高圧縮アルゴリズムにも貢献できる。

帯域拡張は狭帯域音声を入力として広帯域音声を合成するタスクであるため、条件付け音声合成の一種と見做せる[59]

Remove ads

属性

音声合成では特性の属性を指定した合成音声を生成する場合が多い[3]。属性には音響的特徴から音声認知的特徴まで以下のようなものがある。属性の組み合わせにより個人性や訛りが生まれる。

課題

品質の客観評価

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

性能の公平な比較

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

なお、特に商用の音声合成システムではその目的に応じたデータセットを用いることでその目的に特化した性能向上を図ることがあり、これは各社のノウハウとなっている。

Remove ads

音声合成システム

2020年代において、主要なパーソナルコンピュータおよびスマートフォンのオペレーティングシステムは音声合成による読み上げ機能(スクリーンリーダー)を搭載している。歴史的にも様々な音声合成システムが実用されてきた。以下はその一例である。

  • TI-99/4Aには音声合成機能をオプションで追加可能であった[62]
  • PC-6001は音声合成カートリッジが追加でき、PC-6001mkIIには音声合成機能が内蔵されていた。後継のPC-6001mkIISRやPC-6601では歌うことも可能であった。
  • FM-7/FM-77シリーズには音声合成ボード (MB22437/FM-77-431) がオプションとして用意されていた。
  • MZ-1500/2500/2861にはオプションとしてボイスボード (MZ-1M08) が存在した。五十音と、いくつかのフレーズを外部チップにサンプリングされROMとして焼きこまれており、制御によって再生するものである。
  • 富士通は、セントロニクス規格プリンタポートに接続する外付けハードウエアFMVS-101日本語音声合成装置を出していた。ASCIIもOEMしていた。これはプリンタポートさえあれば機種を問わず動作していた。
  • NEC PC-9801シリーズにて、外付けハードウェア無しに(BEEP音スピーカを使う)ソフトだけで実現する音声合成ソフトが複数でていた。校了Jrなど。
  • OSS
    • Festival Speech Synthesis System
    • gnuspeech
    • HMM-based Speech Synthesis System (HTS)
    • Open JTalk(HTSに基づいた日本語向け音声合成システム)
    • MaryTTS
    • eSpeak英語版
    • Coqui-TTS(Mozilla TTSの後継[63])- 日本語未対応。
    • PaddleSpeech - 英語および中国語。
    • ESPnet
    • NVIDIA NeMo
    • llama.cpp英語版 (llama-tts)

研究

要約
視点

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

学術雑誌

  • European Association for Signal Processing (EURASIP) Speech Communication(ISCAと合同)
  • IEEE
    • 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

学会

国際学会

  • Asia Pacific Signal and Information Processing Association Annual Summit Conference (APSIPA ASC)
  • IEEE
    • 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研究室(猿渡・小山研究室)
  • 東京工業大学 工学院 情報通信系 小林研究室
  • 東北大学 大学院工学研究科 通信工学専攻 伊藤・能勢研究室
  • 名古屋工業大学 大学院工学研究科 情報工学専攻 徳田・南角研究室
  • 名古屋大学
    • 大学院情報学研究科 知能システム学専攻 武田研究室
    • 大学院情報学研究科 知能システム学専攻 戸田研究室
  • 奈良先端科学技術大学院大学 先端科学技術研究科 情報科学領域 知能コミュニケーション研究室
  • 山梨大学 大学院総合研究部 森勢将雅[要検証]
  • 立命館大学 立命館大学 情報理工学部 メディア情報学科 山下研究室

公的研究機関

その他にも多数の企業が音声合成の研究を行っている(国内の代表例: NHK放送技術研究所/NHK技研、国際電気通信基礎技術研究所/ATR、日本電信電話/NTT)。

Remove ads

その他

音声合成マークアップ言語 (Speech Synthesis Markup Language; SSML)

音声合成においてテキスト解析を100%正しく行うことは困難である。また、テキストからは解釈できない、特定の読み方をさせたいこともある。そこで何らかの方法により情報を指定する必要があるが、ドメイン固有言語により行う方法のほか、W3Cにより定義された音声合成マークアップ言語 (Speech Synthesis Markup Language; SSML) により行う方法がある。

脚注

参考文献

関連項目

外部リンク

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads