SSML 単語

エスエスエムエル

2.3千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

SSML(Speech Syntesis Markup Language)とは、音を表現しようとするマークアップ言語である。

概要

文章というものには、音程速さのような情報は含まれていない。それらの情報人間読み上げる時に付与するものである。

SSML(Speech Syntesis Markup Language)とは、そういった読み上げに必要な情報の一部を文書に埋め込んで、コンピューター自然合成音声を出力する助けにしようとするXMLによるマークアップ言語である。

もっとも、2010年代以降のAIブームによりコンピューターが文脈を解釈して、上記のような情報PC(あるいはクラウド)側で補できるようになりつつある。それでも明示的に定すればAI単独よりもより自然合成音声が得られるかもしれない。

開発終了

W3Cが中心となって開発していた。最初の案が出たのは2000年8月8日バージョン1.0は2004年9月7日バージョン1.1は2010年9月7日W3C推奨になった。

だが、W3Cの音ブラウザ作業部会は2015年10月12日に解散しており、後発団体であるWHATWG内にもSSMLに関するものはない(要望があがったが却下されているexit)ので、これ以上進歩することはないと思われる。

用途

Web Speech APIMicrosoft Speech API, Microsoft Speech Platform以外にも、GoogleCloud Text-to-Speechや、Alexa、Azureなどでもサポートされているが、多くはSSMLの一部の機サポートにとどまっている。

以下はPowerShellスクリプト内のSSMLを読み上げるサンプルである。(SJISで保存しないと日本語文字化け状態で読み上げられる。)音程定が十分に反映されないのは音声合成エンジン側の仕様と思われる。

<speak>タグで囲まれた部分がSSMLである。

Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak("日本語使用可")
$Phrase = '
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xml:lang="en-US">
<voice xml:lang="en-US">
<prosody rate="1">
<p>Normal pitch. </p>
<p><prosody pitch="x-high"> High Pitch. </prosody></p>
<p><prosody pitch="low"> High Pitch. </prosody></p>
<p><prosody pitch="+2st"> High Pitch. </prosody></p>
<p><prosody pitch="+4st"> High Pitch. </prosody></p>
<p><prosody pitch="+6st"> High Pitch. </prosody></p>
<p><prosody pitch="+8st"> High Pitch. </prosody></p>
<p><prosody pitch="+10st"> High Pitch. </prosody></p>
<p><prosody pitch="+12st"> High Pitch. </prosody></p>
<p><prosody pitch="x-low" range="x-high" rate="fast" volume="x-loud"> High Pitch. </prosody></p>
<p>Normal pitch. </p>
</prosody>
</voice>
</speak>
'
$speak.SpeakSsml($Phrase)

# $speak.SetOutputToWaveFile("testwave.wav")
$Phrase = '
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
xml:lang="jp">
<voice xml:lang="jp">
<prosody rate="1">
<p><prosody pitch="+2st"> ド </prosody>
<prosody pitch="+4st"> レ </prosody>
<prosody pitch="+6st"></prosody>
<prosody pitch="+8st"> </prosody>
<prosody pitch="+10st">  </prosody>
<prosody pitch="+12st"> ラ </prosody>
<prosody pitch="+14st"> シ </prosody></p>
<p><prosody pitch="+16st"></prosody></p>
<p><prosody pitch="500Hz" range="x-high"> High Pitch. </prosody></p>
<p>Normal pitch. </p>
</prosody>
</voice>
</speak>
'
$speak.SpeakSsml($Phrase)


$speak.Dispose()

外部リンク

関連項目

この記事を編集する

掲示板

掲示板に書き込みがありません。

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/04/07(月) 00:00

ほめられた記事

最終更新:2025/04/06(日) 23:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。