音声合成マークアップ言語 - Speech Synthesis Markup Language (SSML)
庄司です。
現在では様々なところで、コンピュータを使用した音声合成を聞くことができます。
音声合成のマークアップ言語の仕様として、W3C による「Speech Synthesis Markup Language (SSML) Version 1.1」があります。
この SSML をサポートするサービスには次のようなものがあります。
SSML で使用できるエレメントの概説は次のとおりです。
エレメント | 説明 |
---|---|
lexicon | 辞書 |
lookup | 辞書の参照 |
meta | メタ情報 |
metadata | メタ情報 |
p | パラグラフ |
s | センテンス |
token | トークン指定 |
w | 品詞の指定 |
say-as | 発声方法の制御 |
phoneme | 発音記号の使用 |
sub | 頭字語等の発音 |
lang | 言語の指定 |
prosody | 音量、速度、ピッチなど |
voice | 声の変更 |
emphasis | 単語を強調 |
break | 一時停止 |
audio | 音声に合成するオーディオ |
mark | カスタムタグの配置 |
desc | audio のみで使用可能でオーディオの説明 |
この記事では、Amazon Polly を使用した音声サンプルを用意しました。
Amazon Polly では、SSML 仕様の一部をサポートしています。
Amazon Polly は言語別にいくつかの音声が選択可能です。ここでは「Takumi, 男性」を使用してみます。
また、エンジンは、可能な限り自然で人間に似た音声を生成する「ニューラル」と自然な音声を生成する「スタンダード」があります。
音声のテキストは著作権の制約を受けない日本国憲法から引用しました。両者を聞き比べてください。
<speak>すべて国民は、法の下に平等であつて、人種、信条、性別、社会的身分又は門地により、政治的、経済的又は社会的関係において、差別されない。</speak>
ニューラルの場合です。
スタンダードの場合です。
SSML で細かく調整していない場合でもニューラルによる音声合成は自然に感じられます。
スタンダードを使用する場合は、例えば <prosody>
タグを使用して音量 (volume)、話す速度 (rate)、ピッチ (pitch) 等を調整して求める品質を探索する必要がありそうです。
<speak>すべて国民は、法の下に平等であつて、人種、信条、性別、社会的身分又は門地により、政治的、経済的<prosody rate="150%">又は</prosody>社会的関係において、差別されない。</speak>
SSML のようなテキストだけで台本の定義ができるとプレゼンテーションのリハーサルや e-Learning 教材の準備あるいは最終成果物の構築に git 等のバージョン管理システムが活用でき保守性の向上が期待できます。
例えば、GitHub Actions のようなツールを使って、台本の変更をトリガとして自動的に音声ファイルを生成することや、機械翻訳を組み合わせて複数の言語を提供することも可能となります。