SSML

since 2010-11-19

Speech Synthesis Markup Language (SSML)は W3C が標準化を進めている音声合成マークアップ言語。

W3C は 2010年9月に Speech Synthesis Markup Language (SSML) Version 1.1 を Recommendation にした。

Amazon Polly

since 2018-07-31

クラウドサービスによる(日本語対応の)音声合成。

Polly で使える SSML タグ

レキシコン(辞書カスタマイズ)も W3C Pronunciation Lexicon Specification (PLS) バージョン 1.0 準拠とのこと。

以下、AWS Polly のコンソールで確認。

エイリアス

日本語のテキストに PLS でユーザ辞書を適用して読み上げられる

ja.pls

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0" 
      xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:schemaLocation="http://www.w3.org/2005/01/pronunciation-lexicon 
        http://www.w3.org/TR/2007/CR-pronunciation-lexicon-20071212/pls.xsd"
      alphabet="ipa" 
      xml:lang="ja-JP">
  <lexeme>
    <grapheme>( ^)o(^ )</grapheme>
    <alias>顔文字</alias>
  </lexeme>
</lexicon>

プレーンテキスト

こんにちは ( ^)o(^ )

日本語で実行すると「こんにちは、かおもじ」と読み上げる。

alphabet に ipa と指定していても、alias 要素には関係ないようだ。

発音の指定

since 2018-07-31

日本語でも ipa や x-sampa で発音を指定できそうだが、あまり正しく再現されないようだ

SSML(PLSは使用せず phoneme タグで指定)

<speak><phoneme alphabet="ipa" ph='käkikɯkeko'>( ^)o(^ )</phoneme></speak>

日本語で実行すると「コーキクーケーコ」と読み上げているように聞こえる。

カナ文字で読みを指定できなさそう。 x-jeida は実装されていないようだ。

使用できる音素のリスト

PLS ファイルの記述例(英語の例)

日本語TTSの実装

以下 2010年から2011年にかけて書いていた記事です。

Pronunciation Lexicon Specification (PLS) は daisy でも利用される。

電子書籍変換ツール daisy-pipeline で利用可能な PLS 対応エンジンが求められている。

DAISY4はEPUB3と協調しつつ標準化を進めている。

以下、オープンソース音声合成エンジンである galateatalk および open-jtalk に基づいた PLS 実装について検討する。

スクリーンリーダー nvdajp の実装に使っている libopenjtalk および ojt-python をベースに、 仕様を確認して、プロトタイプ実装をして、 daisy-pipeline に役立ててもらえる実装に発展させたい。

現状

TODO: 商用の日本語音声合成エンジンにおける SSML1.1 のサポート状況は?

GalateaTalk

GalateaTalk は JEIDA-62-2000 日本語テキスト音声合成用記号 を実装している。

読み表記に関して JEIDA-62-2000 は 音声認識のための読み表記 情報処理学会 試行標準 IPSJ-TS 0004:2003 (解説) とほぼ同一とされている。

GalateaTalkのテキスト解析処理の詳細 (sf.jp)

Galatea Dialog Studio のVoiceXML実装では、SSML 1.0 の一部の要素を JEIDA (JEITA) マークアップに変換して GalateaTalk に送っている。

Open JTalk

Open JTalk はマークアップを実装していない。

要求仕様とテストケース

誰かが作り始めているのだと思うが。。

sub要素

<?xml version="1.0" encoding='utf-8' ?>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                   http://www.w3.org/TR/speech-synthesis/synthesis.xsd"
         xml:lang="ja">
    荒川区<sub alias="にっぽり">日暮里</sub>
</speak>

w要素

サンプルを考えてみる。

<?xml version="1.0" encoding='utf-8' ?>
<speak version="1.1" xmlns="http://www.w3.org/2001/10/synthesis"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                 http://www.w3.org/TR/speech-synthesis11/synthesis.xsd"
       xml:lang="ja">
  <token>東京都</token><token>文京区</token>
  茨城県<w>かすみがうら市</w>
</speak>

phoneme要素

要確認:JEITA-2000 の発音表記文字セットの定義と、本当に下記のようにつかってもいいのかどうか。

下記ではアクセント記号「’」を使っている。

<?xml version="1.0" encoding='utf-8' ?>
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/10/synthesis
                   http://www.w3.org/TR/speech-synthesis/synthesis.xsd"
         xml:lang="ja">
  <phoneme alphabet="x-JEITA-2000" ph="と’まと"> トマト </phoneme>
</speak>

ssml.txt · 最終更新: 2018/07/31 11:05 by Takuya Nishimoto
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0