SSMLで発話できない文字を発話する方法
actionsongoogleSSMLGoogleアシスタント
6/12/2019

こんにちは。SSMLいいですよね。

先日、Googleアシスタントは数字を何桁まで発話してくれるのか試してみた所、1000兆円まで発話してくれました。 でも、それ以上になると、数値として読み上げてくれません。

// センチョウエン
<say-as interpret-as="cardinal">1000000000000000</say-as>円

// イチゼロゼロゼロゼロゼロ・・・エン
<say-as interpret-as="cardinal">1000000000000000</say-as>円

なんとかしてその上の桁の を読み上げさせてみましょう。

※ 記事全体で <speak> タグは省略しております。

結論

100<sub alias="ガイ円">垓円</sub>

これで 100垓円ヒャクガイエン と発話してくれます。 なぜこういうSSMLになったのかを以下で説明します。

そもそも発話できない

どうやらGoogleアシスタントは を発話できないようです。 漢数字を調べてみた所 𥝱 が発話できませんでした。 これでは 100垓円 と読み上げてもらえません。

SSMlのsubを使ってみる

subとは、文字の読みと書きを指定できるタグです。

<sub alias="World Wide Web Consortium">W3C</sub>

例えばこれで W3CWorld Wide Web Consortium と読ませる事ができます。 さっそく、subを使って ガイ と発話させてみましょう。

パターン1
<sub alias="ガイ">垓</sub>

・・・?なんも発話してくれません。 どうやら読めない文字に対してsubは有効にならないようです。

パターン2
<sub alias="ヒャクガイエン">100垓円</sub>

お!この指定だとちゃんと ヒャクガイエン と発話してくれました。 しかし100の読みすら指定するのは骨が折れます。 もっといい方法を探しましょう。

パターン3
100<sub alias="ガイ">垓</sub>

これはどうでしょうか? ・・・なんも発話しれくれませんね。 読めない文字の前に数値を置いてもダメなようです。

パターン4
ヒャク<sub alias="ガイ">垓</sub>

これは ヒャク としか発話してくれません。

パターン5
100<sub alias="ガイエン">垓円</sub>

これはなんと エン としか発話してくれません。 なんでや。 しかし少し答えに近づいてきたような気もします。

パターン6
<say-as interpret-as="cardinal">100</say-as><sub alias="ガイエン">垓円</sub>

100をsay-asで囲むとなんと ヒャクエン と発話しました。 いなくなってしまった のこと、時々でいいから…思い出してください。 ※ say-asタグは文字の型を指定できます。今回は100を基数と指定しました。

パターン7
<say-as interpret-as="cardinal">100</say-as><sub alias="ガイ円">垓円</sub>

思いつきでsubのaliasの ガイエンガイ円 にしてみた所、なんと無事に ヒャクガイエン と発話しました! 謎仕様ですが、おめでとう自分!

最終パターン
100<sub alias="ガイ円">垓円</sub>

say-as必要ないのでは?と思ったので外してみたら、無事にこちらも ヒャクガイエン と発話しました! 完成です!

おわり

SSML、楽しいですが、謎ですね。 発話してくれない文字があったら、今回の方法を試してみて下さい。

account_circle

Daisuke Kobayashi

alternate_email

d.covayashi@gmail.com

outbound

copyright

Tlazolteotnia