歴史
ESpeak
eSpeakNGは、Linux、Windows、およびその他のプラットフォーム向けのコンパクトでオープンソースのソフトウェア音声合成装置です。フォルマント合成法を使用して、多くの言語を小さなサイズで提供します。 eSpeakNGの言語サポートのプログラミングの多くは、ネイティブスピーカーからのフィードバックを含むルールファイルを使用して行われます。
サイズが小さく、多くの言語があるため、Windows、Android、Ubuntu、およびその他のLinuxディストリビューション用のNVDAオープンソーススクリーンリーダーのデフォルトの音声シンセサイザーとして含まれています。その前身であるeSpeakは、2016年にMicrosoftによって推奨され、2010年には27言語のGoogle翻訳で使用されました。これらのうち17は、その後商業的な声に置き換えられました。
言語の声の質は大きく異なります。 eSpeakNGの前身であるeSpeakでは、各言語の初期バージョンはWikipediaにある情報に基づいていました。一部の言語は、ネイティブスピーカーから他の言語よりも多くの作業またはフィードバックを受けています。さまざまな言語の改善に協力してきたほとんどの人々は、テキスト読み上げの盲目のユーザーです。
歴史
1995年、Jonathan Duddingtonは、イギリス英語をサポートするRISC OSコンピューター用のSpeak音声シンセサイザーをリリースしました。 2006年2月17日に、Speak 1.05がGPLv2ライセンスでリリースされました。最初はLinux用で、2007年1月にWindows SAPI 5バージョンが追加されました。Speakの開発はバージョン1.14まで続きました。
eSpeakの開発は1.16(1.15リリースではありません)から継続され、eSpeak音声データを編集および構築するためのeSpeakEditプログラムが追加されました。これらは、eSpeak 1.24までの個別のソースおよびバイナリダウンロードとしてのみ利用可能でした。 eSpeakのバージョン1.24.02は、Subversionを使用してバージョン管理された最初のバージョンのeSpeakであり、Sourceforgeで個別のソースとバイナリのダウンロードが利用可能になりました。 eSpeak 1.27から、eSpeakはGPLv3ライセンスを使用するように更新されました。 eSpeakの最後の公式リリースは、WindowsおよびLinuxで1.48.04、RISC OSで1.47.06、Mac OS Xで1.45.04でした。eSpeakの最後の開発リリースは、2015年4月16日の1.48.15でした。
eSpeakはUsenetスキームを使用して、ASCII文字で音素を表します。
eSpeak NG
2010年6月25日に、Reece Dunnは1.43.46リリースを使用してGitHubでeSpeakの分岐を開始しました。これは、Linuxおよび他のPOSIXプラットフォームでのeSpeakの構築を容易にするための取り組みとして始まりました。
2015年10月4日(eSpeakの1.48.15リリースから6か月後)に、このフォークは元のeSpeakからさらに大きく分岐し始めました。
2015年12月8日に、eSpeakメーリングリストで、最後のeSpeak開発リリースからの過去8か月間のJonathan Duddingtonの活動の欠如に関する議論がありました。これは、ジョナサンの不在下でのeSpeakの継続的な開発に関する議論に発展しました。この結果、eSpeakのGitHubバージョンを将来の開発の基盤として使用して、espeak-ng(次世代)フォークが作成されました。
2015年12月11日に、espeak-ngフォークが開始されました。 espeak-ngの最初のリリースは2016年9月10日の1.49.0で、重要なコードのクリーンアップ、バグ修正、言語の更新が含まれていました。
特徴
eSpeakNGは、コマンドラインプログラムとして、または共有ライブラリとして使用できます。
Speech Synthesis Markup Language(SSML)をサポートしています。
言語音声は、言語のISO 639-1コードによって識別されます。これらは「音声バリアント」によって変更できます。これらは、ピッチ範囲などの特性を変更したり、エコー、ささやき声などの効果を追加したり、フォルマント周波数を体系的に調整して音声を変更したりできるテキストファイルです。たとえば、「af」はアフリカーンス語の声です。 「af + f2」は、フォルマントとピッチ範囲を変更して女性の音を出す「f2」音声バリアントで修正されたアフリカーンス語の音声です。
eSpeakNGは、Usenetシステムに大まかに基づいた音素名のASCII表現を使用します。
音声表現は、二重角括弧内に含めることにより、テキスト入力内に含めることができます。例えば:
espeak-ng -v en "こんにちはw3:ldeSpeakNGは、ユーザーが使用するテキスト音声変換ステップに応じて、さまざまな方法でテキスト音声変換器として使用できます。
1.ステップ—テキストから音素への翻訳
多くの言語(特に英語)には、書くことと発音の間の簡単な1対1の規則がないものがあります。したがって、テキストから音声への生成の最初のステップは、テキストから音素への変換でなければなりません。
- 入力テキストは発音音素に変換されます(たとえば、入力テキストxeroxは発音のためにzi @ r0ksに変換されます)。
- 発音音素は音に合成されます。たとえば、zi @ r0ksは、単調な方法でzi @ r0ksとして表されます。
スピーチにイントネーションを追加するには、韻律データ(例:音節のストレス、基本周波数のピッチの下降または上昇、一時停止など)およびその他の情報が必要です。これにより、より単調でない音声を合成できます。たとえば、eSpeakNG形式の強調音節は、アポストロフィを使用して追加されます。z'i@ r0ksは、より自然な音声を提供します:z'i @ r0ksイントネーション
韻律データありとなしの2つのサンプルを比較する場合:
- DI Iz m0noUntoUn spi:tSDIs Iz 'Int @ n、eItI2d sp'i:tS eSpeakNGは、2つの異なるアプローチを使用して、2種類のフォルマント音声合成を提供します。独自のeSpeakNGシンセサイザーとKlattシンセサイザーの場合 :
- eSpeakNGシンセサイザーは、加算合成により正弦波を加算して合計音を生成することにより、母音や超音波子音などの有声音声を作成します。無声の子音(例:s)は、録音されたサウンドを再生することによって作成されます。なぜなら、それらは倍音が豊富であるため、加算合成の効果が低下するためです。 / z /などの有声子音は、合成された有声音を無声音の録音サンプルと混合することで作成されます。
- Klattシンセサイザーは、ほとんどの場合、eSpeakNGシンセサイザーと同じフォルマントデータを使用します。ただし、高調波が豊富な生成ノイズから始めて、特定の子音(s、t、k)またはソノラント( l、m、n)音。
言語
eSpeakNGは、次の言語のテキスト音声合成を実行します。- アフリカーンス語
- アルバニア語
- アムハラ語
- アラビア語
- アラゴン語
- アルメニア人
- アッサム語
- アゼルバイジャン語
- バスク
- ベンガル語
- ビシュヌプリヤ・マニプリ
- ボスニア語
- ブルガリア語
- ビルマ語
- カタロニア語
- 広東語
- クロアチア語
- チェコ語
- デンマーク語
- オランダの
- 英語
- エスペラント
- エストニア語
- フィンランド語
- フランス語
- ジョージア語
- ドイツ人
- ギリシャ語
- グリーンランド
- グアラニ
- グジャラート語
- 客家語(Pha̍k-fa-sṳ)
- ハイチのクレオール
- ヒンディー語
- ハンガリー語
- アイスランド語
- インドネシア人
- インターリングア
- アイルランド語、
- イタリアの
- 日本語
- カンナダ語
- コンカニ
- 韓国語
- クルド
- キルギス
- ラテン
- ラトビア
- Lingua Franca Nova
- リトアニア語
- ロジバン
- マケドニアの
- マレー語
- マラヤーラム語
- マルタ語
- マンダリン
- マオリ
- マラーティー語
- ナワトル
- ネパール語
- ノルウェー語
- オリヤ
- オロモ
- パピアメント
- ペルシャ語
- 研磨
- ポルトガル語
- パンジャブ語
- ルーマニア語
- ロシア
- スコットランドゲール語
- セルビア語
- セツワナ
- シンハラ語
- スロバキア
- スロベニア語
- スペイン語
- スワヒリ語、
- スウェーデンの
- タミル語
- タタール
- テルグ語
- トルコ語
- ウルドゥー語
- ベトナム人
- ウェールズ