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