こんにちは。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>
例えばこれで W3C を World 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、楽しいですが、謎ですね。 発話してくれない文字があったら、今回の方法を試してみて下さい。