sanoTTS-jp — ブラウザで動くランタイムデモ
ESP32 向けに書いた C99 の推論コアと漢字経路を、そのまま WebAssembly にしたものです。 形態素解析もアクセント推定も音声合成も、全部このページの中で走ります(サーバに文字は送りません)。
公式実装 Ampixa/sanoTTS は GPL-3.0 の別物で、 本プロジェクトはそのソースコードを一切参照せずに、論文本文の数値と piper-plus の実装から独立に書いています。
初回の再生で、モデルと辞書(合わせて数 MB)をダウンロードします。
| レーン | — |
|---|---|
| 経路 | — |
| 音素 id 数 | — |
| 合成にかかった時間 | — |
| 音声長 | — |
| arena 使用 | — |
この demo について
- 経路(かな / 辞書 / 拒否)は wasm の中が決めています。 JavaScript は打たれた文字列をそのまま渡すだけで、「ひらがなだから」のような判定を一切持ちません (ホストと端末で同じ列が出ることを、リポジトリのゲートが守っています)。
- 合成の作業領域は ESP32 と同じ 139,264 B の arena に固定してあります。 ブラウザなら緩められますが、同じ枠で動くこと自体が「MCU に載る」の証拠になるので緩めていません。
- 成果物は今も ESP32 の 567 K パラメータのモデルです。Web は触れる入口でしかありません。
AudioContext が
要求どおり 22,050 Hz を返すことを確かめました(M-95。既定は 48,000 Hz)が、
それ以外のブラウザでは分かりません。リサンプルが挟まれば出音は checksum と一致しません。
音は両レーンとも聴いてもらって「問題なかった」/ 途切れ無し(M-96)。
⚠️ 1 名・対照なし・盲検なしで、欠陥が無いことの証明ではありません。
⚠️ モバイルと Safari は速度も音も測っていません。
ライセンスと帰属
モデルの帰属表示(LICENSE-MODEL.md §3.1・必須)
This model was distilled from a piper-plus teacher model.
sanoTTS-jp — https://github.com/ayutaz/sanoTTS-jp
つくよみちゃんコーパス
本ソフトウェアの音声合成には、フリー素材キャラクター「つくよみちゃん」
(© 夢前黎)が無料公開している音声データを使用しています。
https://tyc.rei-yumesaki.net/material/corpus/
教師 base の学習に使用した音声コーパス
(⚠️ 改変あり: いずれも音声合成モデルの学習に使用しています):
- LibriTTS-R (en) — Koizumi et al., 2023 — CC BY 4.0
素材: https://www.openslr.org/141/
ライセンス: https://creativecommons.org/licenses/by/4.0/
- CML-TTS (es / fr / pt) — freds0 et al. — CC BY 4.0
素材: https://github.com/freds0/CML-TTS-Dataset
ライセンス: https://creativecommons.org/licenses/by/4.0/
- AISHELL-3 (zh) — Shi et al., 2020 — Apache-2.0
素材: https://www.aishelltech.com/aishell_3
ライセンス: https://www.apache.org/licenses/LICENSE-2.0
上記 3 素材は現状のまま (AS IS) 提供され、明示・黙示を問わず保証はありません。
蒸留に使用したテキストコーパス:
- JSUT ver1.1 (高道慎之介) — CC-BY-SA-4.0 ほか(subset 別)
https://sites.google.com/site/shinnosuketakamichi/publication/jsut
ライセンス: https://creativecommons.org/licenses/by-sa/4.0/
⚠️ **v4 以降の重みでは不要**(下記)
出力の用途制限(LICENSE-MODEL.md §3.2・必須・伝播します)
つくよみちゃんコーパスの条件により、このページが生成した音声は次に使えません。
✅ このページが動かしているのは v4 の重みです
(リリース v1.0.0 をタグ固定で読み込んでいます。
saanotts-jp-v4-int8.bin / sha256 a1eb6b08…)。
蒸留テキストから JSUT を外したので、上の帰属ブロックの
JSUT の行はこのページには必要ありません
(⚠️ ブロックは正典 LICENSE-MODEL.md §3.1 の写しなので、
v3 を使う人のために行ごと残してあります)。
⚠️ 下の用途制限とコピーレフトは v4 でも 1 つも減りません —
それはつくよみちゃんコーパスの条件から来ています。
- ❌ 人を批判・攻撃すること
- ❌ 特定の政治的立場・宗教・思想への賛同または反対を呼びかけること
- ❌ 刺激の強い表現をゾーニングなしで公開すること
- ❌ 他者に対して二次利用(素材としての利用)を許可する形で公開すること
⚠️ 成人向け表現そのものは禁止されていません (提供元は「適切なゾーニングが実施されている限りにおいては、成人向け表現や残酷な表現についても 制限を設けておりません」と明言しています)。 ⚠️ 鑑賞用の作品として配布・販売することも問題ありません — 禁止されているのは他者に二次利用を許可する形での公開です。
一次ソース: https://tyc.rei-yumesaki.net/material/corpus/ (条件は提供元が更新しうるため、配布・利用の前に一次ソースを確認してください。 一次ソースと本ページが食い違う場合、一次ソースが優先します。)
この 2 つの条件は第三者にも課す義務があります(§3.3)。 音声を再配布する場合は、§3.1 と §3.2 を外さないでください。
⚠️ このページに音声のダウンロード機能が無いのは意図的です(上の「素材としての再配布」の線を曖昧にしないため)。
同梱している第三者のもの
- Open JTalk(NJD / JPCommon 系)— 修正 BSD / Copyright (c) 2008-2016 Nagoya Institute of Technology, HTS Working Group。 漢字経路の形態素解析とアクセント規則に使っています。全文は NOTICE-openjtalk.txt。
- 辞書(NAIST / UniDic / 名古屋工業大学)— 権利者と条件は NOTICE-dictionary.txt。
- Emscripten — MIT / NCSA。 ⚠️ emcc は生成物にライセンス文を 1 文字も書かないので、こちらで表示しています。 LICENSE。
- その他の帰属・既知の法的リスクは NOTICE.txt にまとめてあります。