WolfDavid commited on
Commit
03804fb
·
1 Parent(s): 831334e

docs(voice): record the 雨晴はう licence terms and update the voice docs

Browse files

- LICENSES.md: voice-model credit cell and the character row now describe 雨晴はう (Amehare
Project, https://amehau.com/?page_id=225, HTTP 403 to non-browser user agents); section 3
carries the VOICEVOX-shipped policy sentence, the five 音声(VOICEVOX_雨晴はう)の利用 lines, the
禁止事項 list and the お願い verbatim, states there is no credit-omission fee clause for this
character, flags the medical-claim clause for Phase 3; verification rows updated; the three
VOICEVOX rows above the character are unchanged
- docs/VOICEVOX-SETUP.md: speaker uuid / style 10, frame-quantisation table re-measured on
雨晴はう (91 / 499 / 666 frames, ratio 1.334669) with the old values kept as dated history,
licence-compliance section rewritten for the 雨晴はう terms, zundamon.vvm named as a
historical filename
- docs/ASSETS.md and docs/ASR-TIERS.md: credit string and a dated note that the ASR clips were
re-synthesised on 2026-09-12 while the A/B table predates it
- deferred-items: test_audio_unlocks_inside_the_gesture on the 6-frame コ under the strict
profile, with the re-run outcome and three levers

.planning/phases/02-japanese-language-core/deferred-items.md CHANGED
@@ -97,3 +97,27 @@ Out-of-scope discoveries logged during execution, not fixed in the plan that fou
97
  in `docs/LATENCY.md § Translation` row 8. It is queued for the owner's ten-sentence quality pass
98
  (02-10 Task 3) and for `docs/LANGUAGE.md § Known translation issues`; it is an upstream OPUS-MT
99
  property, not a bug in this repo's wiring.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  in `docs/LATENCY.md § Translation` row 8. It is queued for the owner's ten-sentence quality pass
98
  (02-10 Task 3) and for `docs/LANGUAGE.md § Known translation issues`; it is an upstream OPUS-MT
99
  property, not a bug in this repo's wiring.
100
+
101
+ ## Logged by quick-260912-eg4 (2026-09-12)
102
+
103
+ - **`tests/e2e/test_stage_standalone.py::test_audio_unlocks_inside_the_gesture` fails on the
104
+ regenerated 雨晴はう demo under the strict-autoplay profile** - `the mouth did not move on the
105
+ running clock: {'aa': 1, 'ih': 1, 'ou': 0, 'ee': 0, 'oh': 0}` (line 362, wants aa/ih/oh all
106
+ above 0.5). Cause: the only `oh` mora in こんにちは is コ, which the voice switch shortened from
107
+ **14 frames (0.149 s) to 6 frames (0.064 s)** (`avatar/stage.html` `DEMO_TIMELINE`, row 3).
108
+ With `avatar/lipsync.js` `ATTACK = 0.05` the weight crosses 0.5 only 25 ms into the mora, so
109
+ `oh > 0.5` is true for a **39 ms window**; the stage-recorded peak was exactly 0, i.e. no frame
110
+ was rendered inside the 64 ms mora at all. The profile is visibly starved - speech-start arrived
111
+ **3,161 ms** after the tap in the whole-directory run (2,964 ms on the re-run). This is the
112
+ Phase 1 entry "Sub-frame moras under slow rendering" (`01-voice-avatar-loop-skeleton/
113
+ deferred-items.md`: a 53 ms う was never written at ~15 fps) reached by a 64 ms コ.
114
+ Evidence it is rendering-rate, not data: `test_demo_timeline_drives_visemes[chromium]` - same
115
+ WAV, same timeline, same `VISEME_SAMPLER`, same aa/ih/oh > 0.5 assertion, normal profile -
116
+ **passed** in the same whole-directory run (38 passed / 1 failed / 25 skipped, 350 s).
117
+ Re-run of the single test once, in isolation (8.7 s): **failed again, identical peaks** - so on
118
+ this machine's strict-autoplay profile it is 2/2, not a coin flip. The assertion was not
119
+ loosened, `lipsync.js` was not touched, the demo sentence was not changed. Levers, for whoever
120
+ owns it: (1) `ATTACK` is a tunable (Phase 1's entry); (2) a demo sentence whose shortest mora is
121
+ >= 100 ms (Phase 1's entry); (3) assert visemes against frames actually rendered (count the
122
+ `setExpressionWeights` writes that fell inside each mora) rather than against wall-clock
123
+ sampling, so a starved renderer reports "no frame landed" instead of "the mouth did not move".
LICENSES.md CHANGED
@@ -21,8 +21,8 @@ covered by that licence.
21
  | **VRM character** `avatar/assets/tutor.vrm` | `VRM1_Constraint_Twist_Sample` v1.0.1, VRM 1.0 | pixiv Inc. — `(c) 2022 pixiv Inc.` | https://github.com/vrm-c/vrm-specification/tree/master/samples/VRM1_Constraint_Twist_Sample | https://vrm.dev/licenses/1.0/ (VRM Public License 1.0, with per-file flags embedded in the file) | Embedded `VRMC_vrm.meta`: `allowRedistribution: true`, `avatarPermission: everyone`, `modification: allowModificationRedistribution`, `commercialUsage: corporation` | **none** (`creditNotation: unnecessary`); credited voluntarily as `VRM1_Constraint_Twist_Sample (c) 2022 pixiv Inc. - VRM Public License 1.0` | Committed through Git LFS unmodified; credit rendered in the footer, the About panel and the README; the one restriction (`allowAntisocialOrHateUsage: false`) is stated below; sourcing gate re-raised and closed in plan 01-10 (kept; `docs/ASSETS.md`) |
22
  | **VOICEVOX CORE** (software) | `voicevox_core` 0.17.0 (Python wheel, abi3) | Hiroshiba Kazuyuki (ヒホ) / the VOICEVOX project | https://github.com/VOICEVOX/voicevox_core/releases/tag/0.17.0 | https://voicevox.hiroshiba.jp/term/ (VOICEVOX ソフトウェア利用規約); code and build artefacts MIT — https://github.com/VOICEVOX/voicevox_core/blob/0.17.0/LICENSE | Software terms: commercial and non-commercial use permitted; generated audio may be provided onward **subject to the flow-down obligation of clause 3**. MIT for the linked code | `VOICEVOX:<character>` — satisfied by the character row below; plus the terms notice wherever audio is obtainable | Installed from the official release URL pinned in `requirements.txt`; the wheel is **never vendored** (禁止事項 forbids unauthorised redistribution of the software); flow-down notice rendered next to the Replay control |
23
  | **VOICEVOX ONNX Runtime** | `voicevox_onnxruntime` 1.23.2 | VOICEVOX project build of Microsoft ONNX Runtime | https://github.com/VOICEVOX/onnxruntime-builder/releases/tag/voicevox_onnxruntime-1.23.2 | MIT (both `VOICEVOX/onnxruntime-builder` and `microsoft/onnxruntime`) | MIT | none | Fetched lazily at runtime into the gitignored `voicevox_runtime/` from the official release; never committed or redistributed (`docs/VOICEVOX-SETUP.md` § ONNX Runtime acquisition) |
24
- | **VOICEVOX voice model** `voicevox/model/zundamon.vvm` | `voicevox_vvm` 0.17.0, file `0.vvm` (SHA-256 `ecd35374d4182cd883cba5040376f7f888cc6ba248b1c2f4cea07cdb34bb1318`) | the VOICEVOX project (model file); voices inside it belong to their character licensors | https://github.com/VOICEVOX/voicevox_vvm/releases/tag/0.17.0 | VOICEVOX 音声モデル 利用規約 — https://github.com/VOICEVOX/voicevox_vvm/blob/main/README.md (shipped as `README.txt` / `TERMS.txt` with the release) | Clause 2: 「アプリケーションに組み込んで再配布することができます」 — embedded redistribution is explicitly permitted; clause 4 flow-down; a credit that shows VOICEVOX was used is required | `VOICEVOX:ずんだもん` (only ずんだもん, style 3, is used; the other voices packaged in `0.vvm` are neither used nor credited) | Committed through Git LFS under clause 2; credit and flow-down notice rendered; the model is used only through VOICEVOX CORE |
25
- | **ずんだもん** (character voice) | — (voice library shipped inside `0.vvm`) | SSS LLC (合同会社SSS) | https://zunko.jp/ | https://zunko.jp/con_ongen_kiyaku.html (音源利用規約, one document covering nine characters) | Commercial and non-commercial use of generated audio permitted **with credit**; app use requires the credit on an introduction/about screen | **`VOICEVOX:ずんだもん`** — exact, ASCII colon, no spaces | Persistent footer credit + About panel on first paint (server-delivered, not injected); flow-down notice linking both terms URLs; no prohibited-use path exists (see below) |
26
  | **Open JTalk dictionary** `voicevox/open_jtalk_dic_utf_8-1.11/` | `open_jtalk_dic_utf_8-1.11` | © 2009 **Nara Institute of Science and Technology** (NAIST), Japan | https://downloads.sourceforge.net/project/open-jtalk/Dictionary/open_jtalk_dic-1.11/open_jtalk_dic_utf_8-1.11.tar.gz | BSD-3-Clause — `voicevox/open_jtalk_dic_utf_8-1.11/COPYING` (reproduced below) | BSD-3-Clause redistribution in binary form, with the notice reproduced | none (attribution notice) | `COPYING` is committed alongside the dictionary files; the notice is reproduced in this file; the About panel names NAIST. Open JTalk itself (Nagoya Institute of Technology / HTS Working Group, modified BSD) is linked inside VOICEVOX CORE and is attributed too |
27
  | **three.js** (incl. its `GLTFLoader` addon) | 0.185.1 | three.js authors (mrdoob et al.) | https://github.com/mrdoob/three.js | MIT — https://github.com/mrdoob/three.js/blob/master/LICENSE | MIT: redistribution permitted with the copyright and permission notice kept | none | **Vendored into this repository** (plan 01-10) as `avatar/vendor/three.mjs` and `avatar/vendor/GLTFLoader.mjs`, the package's `LICENSE` copied alongside as `avatar/vendor/LICENSE-three.txt`; served by the Space itself, no CDN in the render path. Provenance, hashes and the regeneration command: `avatar/vendor/README.md` |
28
  | **@pixiv/three-vrm** | 3.5.5 | pixiv Inc. | https://github.com/pixiv/three-vrm | MIT — https://github.com/pixiv/three-vrm/blob/dev/LICENSE | MIT: redistribution permitted with the copyright and permission notice kept | none | **Vendored into this repository** (plan 01-10) as `avatar/vendor/three-vrm.mjs` (the build against three@0.185.1), the package's `LICENSE` copied alongside as `avatar/vendor/LICENSE-three-vrm.txt`; served by the Space itself |
@@ -139,25 +139,50 @@ forbid redistributing the *software*; the model terms permit redistributing the
139
  application. Clause 4 carries the same flow-down obligation, and a credit showing that VOICEVOX
140
  was used is required.
141
 
142
- **3. Character** — ずんだもん, SSS LLC, https://zunko.jp/con_ongen_kiyaku.html. Audio generated
143
- with the ずんだもん voice library may be used commercially and non-commercially **provided the
144
- credit `VOICEVOX:ずんだもん` is displayed**. Without the credit, per-character licensing is
145
- **¥400,000 (+ tax) per character** which is why the credit is not optional and why it is
146
- rendered on first paint rather than behind a click. Placement (clause 2): for app use, on an
147
- introduction/about screen, somewhere findable with a little looking
148
- (アプリ紹介画面などに記載お願いし。(少し探せわかる場所に)); Phase 1 renders it in a
149
- persistent footer beside the avatar **and** in the About panel, open on first load.
150
-
151
- Prohibited uses under the character terms, recorded so later phases can check against them:
152
- 公序良俗に反する利用; 政治的・宗教的活動; 情報商材; **意図的な**虚偽情報作成・拡散; 風俗営業;
153
- 反社会的勢力よる利用. The falsehood clause is scoped to *intentional* creation or spread —
154
- relevant once an LLM produces the avatar's lines (Phase 3): a tutor that is sometimes wrong is not
155
- in scope of it; a product designed to mislead would be.
156
-
157
- There is no escalation path and none should be sought: SSS LLC's 免責条項 2 states that they do
158
- not, as a rule, answer "does my use qualify" questions
159
- (「本ガイドラインに該当するかどうかのご質問については、原則お答えしておりません。」). The posture is:
160
- read the guideline, comply visibly, document here.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
 
162
  The credit obligation survives an engine swap: the official VOICEVOX Q&A answers that using the
163
  intermediate `AudioQuery` with another synthesiser still requires the credit
@@ -167,8 +192,9 @@ is owed on that basis alone.
167
  **Pre-cleared swap-in: VOICEVOX Nemo.** If the character terms ever become inconvenient,
168
  `n0.vvm` from the same `voicevox_vvm` 0.17.0 release (nine voices, style IDs 10000–10008) is a
169
  two-line change. Credit is just `VOICEVOX Nemo`; the terms live entirely in the `voicevox_vvm`
170
- README (https://voicevox.hiroshiba.jp/nemo/term/); there is no third-party rights holder and no
171
- ¥400,000 credit-omission clause. The cost is the loss of a recognisable character.
 
172
 
173
  ## Open JTalk dictionary — `voicevox/open_jtalk_dic_utf_8-1.11/`
174
 
@@ -343,7 +369,7 @@ overrule it). **Result: no gaps.**
343
  | 1 | VRM character | yes | `docs/ASSETS.md` (same source, licence URL and embedded flags); `tests/e2e/test_avatar_loop.py::test_vrm_meta_matches_licenses` green on the deployed file. Sourcing gate closed: the file is final |
344
  | 2 | VOICEVOX software | yes | `docs/VOICEVOX-SETUP.md` (terms URL `voicevox.hiroshiba.jp/term/`, MIT at tag 0.17.0); `requirements.txt` installs exactly the 0.17.0 release wheel from the official URL |
345
  | 3 | VOICEVOX voice model (`.vvm`) | yes | `voicevox_vvm` 0.17.0 release in `docs/VOICEVOX-SETUP.md`; `sha256sum voicevox/model/zundamon.vvm` = `ecd35374…1318`, the value in the row; the file is an LFS object |
346
- | 4 | ずんだもん character terms | yes | `docs/VOICEVOX-SETUP.md` (`zunko.jp/con_ongen_kiyaku.html`); the credit string in the `credits` block is what `test_credits_visible` asserted on the Space |
347
  | 5 | Open JTalk dictionary | yes | `voicevox/open_jtalk_dic_utf_8-1.11/COPYING` first line `Copyright (c) 2009, Nara Institute of Science and Technology, Japan.`; the Nagoya Institute of Technology / HTS Working Group attribution for Open JTalk itself, as `docs/VOICEVOX-SETUP.md` records; the About panel names both institutions |
348
  | 6 | three.js | yes | `avatar/vendor/README.md` (three@0.185.1 es2022 build, SHA256 recorded, `tests/test_vendor.py` re-checks); `avatar/vendor/LICENSE-three.txt` is the MIT notice © 2010-2026 three.js authors |
349
  | 7 | @pixiv/three-vrm | yes | `avatar/vendor/README.md` (3.5.5 built against three@0.185.1); `avatar/vendor/LICENSE-three-vrm.txt` is the MIT notice © 2019-2026 pixiv Inc. |
@@ -386,7 +412,7 @@ which is the obligation that a `LICENSES.md` row alone would not discharge.
386
  | `openai/whisper-base` model card | HF API `cardData.license = apache-2.0`; `openai/whisper` repo MIT |
387
  | `onnx-community/whisper-base` card | no licence field; `base_model: openai/whisper-base` |
388
  | Open JTalk `COPYING` | first line: `Copyright (c) 2009, Nara Institute of Science and Technology, Japan.` |
389
- | Terms URLs answer | voicevox.hiroshiba.jp/term/ 200 · zunko.jp/con_ongen_kiyaku.html 200 · voicevox.hiroshiba.jp/nemo/term/ 200 · vrm.dev/licenses/1.0/ 200 |
390
 
391
  ### Phase 2 assets (plan 02-11)
392
 
 
21
  | **VRM character** `avatar/assets/tutor.vrm` | `VRM1_Constraint_Twist_Sample` v1.0.1, VRM 1.0 | pixiv Inc. — `(c) 2022 pixiv Inc.` | https://github.com/vrm-c/vrm-specification/tree/master/samples/VRM1_Constraint_Twist_Sample | https://vrm.dev/licenses/1.0/ (VRM Public License 1.0, with per-file flags embedded in the file) | Embedded `VRMC_vrm.meta`: `allowRedistribution: true`, `avatarPermission: everyone`, `modification: allowModificationRedistribution`, `commercialUsage: corporation` | **none** (`creditNotation: unnecessary`); credited voluntarily as `VRM1_Constraint_Twist_Sample (c) 2022 pixiv Inc. - VRM Public License 1.0` | Committed through Git LFS unmodified; credit rendered in the footer, the About panel and the README; the one restriction (`allowAntisocialOrHateUsage: false`) is stated below; sourcing gate re-raised and closed in plan 01-10 (kept; `docs/ASSETS.md`) |
22
  | **VOICEVOX CORE** (software) | `voicevox_core` 0.17.0 (Python wheel, abi3) | Hiroshiba Kazuyuki (ヒホ) / the VOICEVOX project | https://github.com/VOICEVOX/voicevox_core/releases/tag/0.17.0 | https://voicevox.hiroshiba.jp/term/ (VOICEVOX ソフトウェア利用規約); code and build artefacts MIT — https://github.com/VOICEVOX/voicevox_core/blob/0.17.0/LICENSE | Software terms: commercial and non-commercial use permitted; generated audio may be provided onward **subject to the flow-down obligation of clause 3**. MIT for the linked code | `VOICEVOX:<character>` — satisfied by the character row below; plus the terms notice wherever audio is obtainable | Installed from the official release URL pinned in `requirements.txt`; the wheel is **never vendored** (禁止事項 forbids unauthorised redistribution of the software); flow-down notice rendered next to the Replay control |
23
  | **VOICEVOX ONNX Runtime** | `voicevox_onnxruntime` 1.23.2 | VOICEVOX project build of Microsoft ONNX Runtime | https://github.com/VOICEVOX/onnxruntime-builder/releases/tag/voicevox_onnxruntime-1.23.2 | MIT (both `VOICEVOX/onnxruntime-builder` and `microsoft/onnxruntime`) | MIT | none | Fetched lazily at runtime into the gitignored `voicevox_runtime/` from the official release; never committed or redistributed (`docs/VOICEVOX-SETUP.md` § ONNX Runtime acquisition) |
24
+ | **VOICEVOX voice model** `voicevox/model/zundamon.vvm` | `voicevox_vvm` 0.17.0, file `0.vvm` (SHA-256 `ecd35374d4182cd883cba5040376f7f888cc6ba248b1c2f4cea07cdb34bb1318`) | the VOICEVOX project (model file); voices inside it belong to their character licensors | https://github.com/VOICEVOX/voicevox_vvm/releases/tag/0.17.0 | VOICEVOX 音声モデル 利用規約 — https://github.com/VOICEVOX/voicevox_vvm/blob/main/README.md (shipped as `README.txt` / `TERMS.txt` with the release) | Clause 2: 「アプリケーションに組み込んで再配布することができます」 — embedded redistribution is explicitly permitted; clause 4 flow-down; a credit that shows VOICEVOX was used is required | `VOICEVOX:雨晴はう` (only 雨晴はう, style 10, is used; the other voices packaged in `0.vvm` — 四国めたん, ずんだもん, 春日部つむぎ — are neither used nor credited) | Committed through Git LFS under clause 2; credit and flow-down notice rendered; the model is used only through VOICEVOX CORE |
25
+ | **雨晴はう** (character voice) | — (voice library shipped inside `0.vvm`) | Amehare Project (©2021-2026 Amehare Project, あめはれくりにっく) | https://amehau.com/ | https://amehau.com/?page_id=225 (雨晴はう 利用規約; returns HTTP 403 to non-browser user agents read with a Chrome UA, HTTP 200, 13,954 bytes, 2026-09-12); restated by VOICEVOX at https://github.com/VOICEVOX/voicevox_resource/blob/main/character_info/雨晴はう_3474ee95-c274-47f9-aa1a-8322163d96f1/policy.md | 「個人様/企業様ともに商用・非商用問わず利用可能です。ただし音声のR18指定利用はご遠慮ください。」 and 「VOICEVOXのクレジット記載は必須となります。」; the character-name credit is optional: 「キャラクター名のクレジット表記は必須ではありませんが、記載があれば嬉しいです。(例:VOICEVOX:雨晴はう)」 | **`VOICEVOX:雨晴はう`** — the terms' own example, exact, ASCII colon, no spaces; satisfies the mandatory VOICEVOX credit and the welcomed character credit in one string | Persistent footer credit + About panel on first paint (server-delivered, not injected); flow-down notice linking both terms URLs; the audio is generated directly by VOICEVOX CORE, so the voice-changer prohibition does not apply; no prohibited-use path exists (see below) |
26
  | **Open JTalk dictionary** `voicevox/open_jtalk_dic_utf_8-1.11/` | `open_jtalk_dic_utf_8-1.11` | © 2009 **Nara Institute of Science and Technology** (NAIST), Japan | https://downloads.sourceforge.net/project/open-jtalk/Dictionary/open_jtalk_dic-1.11/open_jtalk_dic_utf_8-1.11.tar.gz | BSD-3-Clause — `voicevox/open_jtalk_dic_utf_8-1.11/COPYING` (reproduced below) | BSD-3-Clause redistribution in binary form, with the notice reproduced | none (attribution notice) | `COPYING` is committed alongside the dictionary files; the notice is reproduced in this file; the About panel names NAIST. Open JTalk itself (Nagoya Institute of Technology / HTS Working Group, modified BSD) is linked inside VOICEVOX CORE and is attributed too |
27
  | **three.js** (incl. its `GLTFLoader` addon) | 0.185.1 | three.js authors (mrdoob et al.) | https://github.com/mrdoob/three.js | MIT — https://github.com/mrdoob/three.js/blob/master/LICENSE | MIT: redistribution permitted with the copyright and permission notice kept | none | **Vendored into this repository** (plan 01-10) as `avatar/vendor/three.mjs` and `avatar/vendor/GLTFLoader.mjs`, the package's `LICENSE` copied alongside as `avatar/vendor/LICENSE-three.txt`; served by the Space itself, no CDN in the render path. Provenance, hashes and the regeneration command: `avatar/vendor/README.md` |
28
  | **@pixiv/three-vrm** | 3.5.5 | pixiv Inc. | https://github.com/pixiv/three-vrm | MIT — https://github.com/pixiv/three-vrm/blob/dev/LICENSE | MIT: redistribution permitted with the copyright and permission notice kept | none | **Vendored into this repository** (plan 01-10) as `avatar/vendor/three-vrm.mjs` (the build against three@0.185.1), the package's `LICENSE` copied alongside as `avatar/vendor/LICENSE-three-vrm.txt`; served by the Space itself |
 
139
  application. Clause 4 carries the same flow-down obligation, and a credit showing that VOICEVOX
140
  was used is required.
141
 
142
+ **3. Character** — 雨晴はう, Amehare Project (©2021-2026 Amehare Project, あめはれくりにっく),
143
+ https://amehau.com/?page_id=225 (「雨晴はう 利用規約」). The page returns **HTTP 403 to non-browser
144
+ user agents**; it was read with a Chrome UA (HTTP 200, 13,954 bytes) on 2026-09-12 a verifier
145
+ whose script gets a 403 has hit that wall, not a takedown. VOICEVOX's own restatement, shipped in
146
+ `voicevox_resource` as `character_info/雨晴はう_3474ee95-c274-47f9-aa1a-8322163d96f1/policy.md`,
147
+ reads verbatim:
148
+ 雨晴はう音声ライブラリて生成た音声は、「VOICEVOX:雨晴はう」とクレジットを記載、商用・非商用で利用可能です。
149
+
150
+ The character's own terms, section 音声(VOICEVOX_雨晴はう)の利用, verbatim and in order:
151
+
152
+ - 「VOICEVOX利用規約を守ってご使用下さい。」
153
+ - 「個人様/企業様とも商用・非商用問わず利用可能です。ただし音声のR18指定利用はご遠慮ください。」
154
+ - 「キャラクター名のクレジット表記は必須ではありませんが、記載があれば嬉しいです。(:VOICEVOX:雨晴はう)」
155
+ - 「VOICEVOXのクレジット記載は必須となります。仕様上で記載が出来ない場合はお問合せください。」
156
+ - 「VOICEVOXで直接生成していない音声及びVOICEVOX出力音声を利用して作成したボイスチェンジャーモデルの利用を禁止。」
157
+ The terms list approved exceptions to this line (WEB版VOICEVOX / 文章(コメント)読み上げ /
158
+ ゆかりねっと等). This project's audio is generated directly by VOICEVOX CORE from the `.vvm`, and
159
+ no voice-changer model is trained or used, so the prohibition does not apply here.
160
+
161
+ So the VOICEVOX credit is **mandatory** and the character-name credit is optional-but-welcomed;
162
+ the string `VOICEVOX:雨晴はう` — the terms' own example — satisfies both at once, and Phase 1's
163
+ placement standard (a persistent footer beside the avatar **and** the About panel, open on first
164
+ load) is kept unchanged.
165
+
166
+ 禁止事項 (general), verbatim, recorded so later phases can check against them:
167
+ 法令に違反する行為又は犯罪行為に関連する行為 / 第三者に不利益、損害、不快感を与える行為 / 第三者に対する詐欺または脅迫行為・公序良俗に著しく反する行為 / 特定の思想運動の勧誘・社会問題の特定の主張に当たる行為団体 / 許可無しに公式イラストを利用した二次配布、商品の販売行為 / キャラクターの著作情報を偽る行為、自作発言 / 故意に医療知識の誤った主張をする及び誤解を生む行為.
168
+ お願い: 倫理的配慮が欠如している作品の公開はお控えください。
169
+
170
+ The clause Phase 3 must be checked against is 「故意に医療知識の誤った主張をする及び誤解を生む行為」:
171
+ the character is a nurse, and once an LLM produces the avatar's lines, a tutor that is sometimes
172
+ wrong is not in scope of an *intentional* false medical claim; a product designed to mislead would
173
+ be — the same reading the ずんだもん "intentional falsehood" clause was given.
174
+
175
+ **There is no ¥400,000 credit-omission clause for this character.** The ずんだもん terms this
176
+ section described until 2026-09-12 carried one (per-character licensing at ¥400,000 + tax without
177
+ the credit), which is why that explanation stood here. 雨晴はう's terms contain no such fee. The
178
+ credit is still rendered on first paint rather than behind a click, because the VOICEVOX credit is
179
+ mandatory (「VOICEVOXのクレジット記載は必須となります。仕様上で記載が出来ない場合はお問合せください。」)
180
+ and because consuming the `AudioQuery` requires it on its own (next paragraph).
181
+
182
+ There is no escalation path and none should be sought: the 雨晴はう terms carry a disclaimer of
183
+ liability, state that they may change at any time, and state that questions about other parties'
184
+ terms are not answered. The posture is unchanged: read the terms (with a browser UA — see the 403
185
+ caveat above), comply visibly, document here.
186
 
187
  The credit obligation survives an engine swap: the official VOICEVOX Q&A answers that using the
188
  intermediate `AudioQuery` with another synthesiser still requires the credit
 
192
  **Pre-cleared swap-in: VOICEVOX Nemo.** If the character terms ever become inconvenient,
193
  `n0.vvm` from the same `voicevox_vvm` 0.17.0 release (nine voices, style IDs 10000–10008) is a
194
  two-line change. Credit is just `VOICEVOX Nemo`; the terms live entirely in the `voicevox_vvm`
195
+ README (https://voicevox.hiroshiba.jp/nemo/term/); there is no third-party rights holder. 雨晴はう
196
+ has no ¥400,000 credit-omission clause either, so what Nemo removes is the third-party rights
197
+ holder, not a fee. The cost is the loss of a recognisable character.
198
 
199
  ## Open JTalk dictionary — `voicevox/open_jtalk_dic_utf_8-1.11/`
200
 
 
369
  | 1 | VRM character | yes | `docs/ASSETS.md` (same source, licence URL and embedded flags); `tests/e2e/test_avatar_loop.py::test_vrm_meta_matches_licenses` green on the deployed file. Sourcing gate closed: the file is final |
370
  | 2 | VOICEVOX software | yes | `docs/VOICEVOX-SETUP.md` (terms URL `voicevox.hiroshiba.jp/term/`, MIT at tag 0.17.0); `requirements.txt` installs exactly the 0.17.0 release wheel from the official URL |
371
  | 3 | VOICEVOX voice model (`.vvm`) | yes | `voicevox_vvm` 0.17.0 release in `docs/VOICEVOX-SETUP.md`; `sha256sum voicevox/model/zundamon.vvm` = `ecd35374…1318`, the value in the row; the file is an LFS object |
372
+ | 4 | 雨晴はう character terms | yes | `docs/VOICEVOX-SETUP.md` (`amehau.com/?page_id=225`, browser UA required — 403 otherwise); the credit string in the `credits` block is what `test_credits_visible` asserts; NOT yet re-asserted on the Space (still on 7eb3e94 with ずんだもん until the owner pushes) |
373
  | 5 | Open JTalk dictionary | yes | `voicevox/open_jtalk_dic_utf_8-1.11/COPYING` first line `Copyright (c) 2009, Nara Institute of Science and Technology, Japan.`; the Nagoya Institute of Technology / HTS Working Group attribution for Open JTalk itself, as `docs/VOICEVOX-SETUP.md` records; the About panel names both institutions |
374
  | 6 | three.js | yes | `avatar/vendor/README.md` (three@0.185.1 es2022 build, SHA256 recorded, `tests/test_vendor.py` re-checks); `avatar/vendor/LICENSE-three.txt` is the MIT notice © 2010-2026 three.js authors |
375
  | 7 | @pixiv/three-vrm | yes | `avatar/vendor/README.md` (3.5.5 built against three@0.185.1); `avatar/vendor/LICENSE-three-vrm.txt` is the MIT notice © 2019-2026 pixiv Inc. |
 
412
  | `openai/whisper-base` model card | HF API `cardData.license = apache-2.0`; `openai/whisper` repo MIT |
413
  | `onnx-community/whisper-base` card | no licence field; `base_model: openai/whisper-base` |
414
  | Open JTalk `COPYING` | first line: `Copyright (c) 2009, Nara Institute of Science and Technology, Japan.` |
415
+ | Terms URLs answer | voicevox.hiroshiba.jp/term/ 200 · zunko.jp/con_ongen_kiyaku.html 200 (historical — the ずんだもん row, not re-fetched since the 2026-09-12 voice switch) · voicevox.hiroshiba.jp/nemo/term/ 200 · vrm.dev/licenses/1.0/ 200 · amehau.com/?page_id=225 403 (non-browser UA) / 200 with a Chrome UA, 13,954 bytes, 2026-09-12 |
416
 
417
  ### Phase 2 assets (plan 02-11)
418
 
docs/ASR-TIERS.md CHANGED
@@ -13,6 +13,10 @@ from a model card.
13
  | Runtime | `https://esm.sh/@huggingface/transformers@4.2.0` |
14
  | Clips | `speech_ja.wav`, `speech_ja_long.wav`, `speech_ja_slow.wav` — VOICEVOX ずんだもん, plan 01-04 |
15
 
 
 
 
 
16
  ---
17
 
18
  ## Tier design
 
13
  | Runtime | `https://esm.sh/@huggingface/transformers@4.2.0` |
14
  | Clips | `speech_ja.wav`, `speech_ja_long.wav`, `speech_ja_slow.wav` — VOICEVOX ずんだもん, plan 01-04 |
15
 
16
+ The three clips were re-synthesised with 雨晴はう (VOICEVOX style 10) on 2026-09-12 (quick task
17
+ 260912-eg4); every number in this document predates that and was measured on the ずんだもん clips.
18
+ `tests/fixtures/asr_ab_results.json` was deliberately not regenerated.
19
+
20
  ---
21
 
22
  ## Tier design
docs/ASSETS.md CHANGED
@@ -132,10 +132,11 @@ oval), い (flat, teeth visible) and う (small, pursed) are clearly distinct, w
132
  asks for. A bespoke character could widen the five-way distinction; the pipeline drives all five
133
  presets independently to weight 1.0 (reference sheet `docs/evidence/2026-09-06-viseme-ref-*.png`).
134
 
135
- ## Voice — VOICEVOX / ずんだもん
136
 
137
  **Already recorded in full by plan 01-04. See `docs/VOICEVOX-SETUP.md`**, which carries all three
138
- licence layers, the exact `VOICEVOX:ずんだもん` credit string, the placement standard, the flow-down
 
139
  obligation, the Nemo pre-cleared swap, and the Open JTalk dictionary's BSD-3-Clause notice with its
140
  dual Nara/Nagoya attribution. Not duplicated here; `LICENSES.md` (plan 01-10) should read that file
141
  directly.
 
132
  asks for. A bespoke character could widen the five-way distinction; the pipeline drives all five
133
  presets independently to weight 1.0 (reference sheet `docs/evidence/2026-09-06-viseme-ref-*.png`).
134
 
135
+ ## Voice — VOICEVOX / 雨晴はう
136
 
137
  **Already recorded in full by plan 01-04. See `docs/VOICEVOX-SETUP.md`**, which carries all three
138
+ licence layers, the exact `VOICEVOX:雨晴はう` credit string (switched from ずんだもん on 2026-09-12),
139
+ the placement standard, the flow-down
140
  obligation, the Nemo pre-cleared swap, and the Open JTalk dictionary's BSD-3-Clause notice with its
141
  dual Nara/Nagoya attribution. Not duplicated here; `LICENSES.md` (plan 01-10) should read that file
142
  directly.
docs/VOICEVOX-SETUP.md CHANGED
@@ -132,11 +132,13 @@ set cannot silently drift away from the engine.
132
 
133
  | Fixture | speedScale | Frames | Duration (s) |
134
  |---|---|---|---|
135
- | `short` | 1.0 | 99 | 1.056 |
136
- | `long` | 1.0 | 516 | 5.504 |
137
- | `slow` | 0.75 | 692 | 7.381333333333333 |
138
 
139
- Note that `slow / long = 1.341085`, **not** exactly `1/0.75 = 1.333333`. Re-quantisation after
 
 
140
  scaling means the realised ratio lands near the requested one, not on it. A test that asserts
141
  "exactly 1/0.75× longer" against *durations* will fail; assert the timeline matches the WAV
142
  instead, which is the property that actually matters for lip-sync.
@@ -177,15 +179,21 @@ phrase keys (`moras`, `accent`, `pause_mora`, `is_interrogative`) pass through u
177
  | Voice model | `voicevox/model/zundamon.vvm` | 59,308,488 B | `voicevox_vvm` 0.17.0 asset, original filename **`0.vvm`** | **yes** — root `.gitattributes` `*.vvm` |
178
  | VOICEVOX ONNX Runtime | *not in the repo* — fetched to `voicevox_runtime/` (gitignored) | 8.2 MB (linux-x64 CPU `.tgz`) | `github.com/VOICEVOX/onnxruntime-builder` release `voicevox_onnxruntime-1.23.2` | **NO — never vendored** (option **c**, below) |
179
 
 
 
 
 
180
  ```text
181
  SHA256 zundamon.vvm: ecd35374d4182cd883cba5040376f7f888cc6ba248b1c2f4cea07cdb34bb1318
182
- speaker_uuid: 388f246b-8c41-4ac1-8e2d-5d79f3ff56d9
183
- style_id (ノーマル): 3
184
  ```
185
 
186
- `style_id` **3** is the integer constant `SPEAKER_STYLE_ID` in `src/japanese_avatar/voice/tts.py`.
 
 
187
 
188
- `0.vvm` also carries 四国めたん (2/0/6/4), 春日部つむぎ (8) and 雨晴はう (10). Only ずんだもん is
189
  credited and used; the others are present because the model file is packaged that way upstream.
190
  Confirmed against the `metas.json` inside the downloaded file and against the character↔style
191
  table in the release's own `README.txt`.
@@ -195,7 +203,8 @@ table in the release's own `README.txt`.
195
  The `voicevox_vvm` 0.17.0 release ships 29 assets — 25 talk models `0.vvm`..`24.vvm`, `n0.vvm`
196
  (Nemo), `s0.vvm` (song), plus `README.txt` and `TERMS.txt`. Each talk model is 57-67 MB. The
197
  character↔file index lives in `README.txt` (section 音声モデル(.vvm)ファイルと声…の対応表), which
198
- resolves ずんだもん ノーマル to **`0.vvm`, style ID 3**. Only that one file was downloaded.
 
199
 
200
  ---
201
 
@@ -245,7 +254,7 @@ the `StyleType::StreamingTalk` variant were **introduced in core 0.17.0**. So:
245
 
246
  Evidence, executed: loading `voicevox/model/zundamon.vvm` into a 0.17.0 `Synthesizer` succeeded and
247
  `create_audio_query("こんにちは", 3)` → `synthesis(...)` returned a 50,732-byte RIFF WAV at
248
- 24000 Hz / mono / 16-bit, duration 1.056 s.
249
 
250
  Pin both to **0.17.0**. If either is bumped, regenerate the fixtures with
251
  `tests/fixtures/make_synth_fixtures.py` — `tests/test_tts_contract.py::test_fixtures_match_current_engine`
@@ -271,7 +280,8 @@ Measured on Windows / Python 3.12.12, warm disk, runtime already present:
271
  | **Total import-to-ready (`warmup()`)** | **1.73 s** |
272
  | Second `warmup()` call (cache hit) | 0.000001 s |
273
 
274
- Per-turn, once warm: `create_audio_query` **1.2 ms**, `synthesis` **1215 ms** for 「こんにちは」.
 
275
  Both are recorded through `TurnTimings`, so plan 01-08's latency harness gets them for free.
276
 
277
  **The lazy runtime download is exercised, not assumed.** Pointing `VOICEVOX_ORT_DIR` at an empty
@@ -302,28 +312,34 @@ The VRM's equivalent lives in `docs/ASSETS.md`, owned by plan 01-01. Plan 01-09
302
  as `README.txt` / `TERMS.txt` alongside the release assets. Clause 2 reads
303
  「アプリケーションに組み込んで再配布することができます」 — **embedded redistribution is explicitly
304
  permitted**, which is what licenses committing `zundamon.vvm` to this repo.
305
- - **Character** — ずんだもん, SSS LLC, <https://zunko.jp/con_ongen_kiyaku.html>. One document covers
306
- nine characters. Commercial and non-commercial use permitted *with credit*; without credit,
307
- per-character licensing is ¥400,000 (+ tax).
 
 
 
 
308
 
309
  ### The credit string
310
 
311
  ```text
312
- VOICEVOX:ずんだもん
313
  ```
314
 
315
  Exact, including the ASCII colon and no spaces. Later plans render it; this document is where the
316
  string is defined.
317
 
318
- **Placement requirement** (character terms clause 2):
319
- 「アプリなどでの利用の場合は、アプリの紹介画面などに記載をお願いします。(少し探せばわかる場所に)」
320
- — an app introduction / about screen, in a place findable with a little looking. Phase 1 satisfies
321
- this with a persistently visible footer line next to the avatar **plus** an About/Credits surface.
 
 
322
 
323
  **Flow-down obligation** (software clause 3 / voice-model clause 4): when audio generated here is
324
  made available to others, those others must be bound to the same terms. Anywhere audio is
325
  user-obtainable (playback, replay, download), display a terms notice to the effect of *"Synthesised
326
- audio is provided under the VOICEVOX and VOICEVOX:ずんだもん terms of use; by using it you agree to
327
  comply with them"*, linking both URLs above.
328
 
329
  **The credit obligation survives an engine swap.** The official Q&A answers
@@ -333,11 +349,13 @@ timeline consumes — triggers the credit requirement on its own.
333
 
334
  ### There is no "ask the rights holder" step, ever
335
 
336
- SSS LLC 免責条項 2: 「本ガイドラインに該当するかどうかのご質問については、原則お答えしておりません。
337
- 特に無償利用の範囲についての問い合わせについては回答いたしかねます。…できるかぎりガイドラインを自身で
338
- 読み込んだ上での判断をいたします。They decline "does my use qualify?" questions as a matter
339
- of policy. The compliance posture is: read the guideline (done, above), comply visibly, document
340
- here. Recorded so it is never re-litigated in a later phase.
 
 
341
 
342
  ### Pre-cleared swap-in: VOICEVOX Nemo
343
 
@@ -348,9 +366,11 @@ the swap is a two-line change (`SPEAKER_STYLE_ID` plus the model path):
348
  10000-10008 (男声1-3, 女声1-6), all ノーマル.
349
  - Credit string is just `VOICEVOX Nemo` — no character name, no third-party rights holder.
350
  - Terms: <https://voicevox.hiroshiba.jp/nemo/term/>, restated in the `voicevox_vvm` README.
351
- - No ¥400,000 credit-omission clause, because there is no separate character licensor.
 
352
 
353
- Cost of the swap: the loss of a recognisable character identity. Recommendation remains ずんだもん.
 
354
 
355
  ### Open JTalk dictionary licence
356
 
 
132
 
133
  | Fixture | speedScale | Frames | Duration (s) |
134
  |---|---|---|---|
135
+ | `short` | 1.0 | 91 | 0.9706666666666667 |
136
+ | `long` | 1.0 | 499 | 5.322666666666667 |
137
+ | `slow` | 0.75 | 666 | 7.104 |
138
 
139
+ (Re-measured on 雨晴はう, 2026-09-12; the ずんだもん values were 99/516/692, ratio 1.341085.)
140
+
141
+ Note that `slow / long = 1.334669`, **not** exactly `1/0.75 = 1.333333`. Re-quantisation after
142
  scaling means the realised ratio lands near the requested one, not on it. A test that asserts
143
  "exactly 1/0.75× longer" against *durations* will fail; assert the timeline matches the WAV
144
  instead, which is the property that actually matters for lip-sync.
 
179
  | Voice model | `voicevox/model/zundamon.vvm` | 59,308,488 B | `voicevox_vvm` 0.17.0 asset, original filename **`0.vvm`** | **yes** — root `.gitattributes` `*.vvm` |
180
  | VOICEVOX ONNX Runtime | *not in the repo* — fetched to `voicevox_runtime/` (gitignored) | 8.2 MB (linux-x64 CPU `.tgz`) | `github.com/VOICEVOX/onnxruntime-builder` release `voicevox_onnxruntime-1.23.2` | **NO — never vendored** (option **c**, below) |
181
 
182
+ The on-disk name `zundamon.vvm` is historical (chosen when ずんだもん was the speaker); the file is
183
+ upstream `0.vvm` unchanged and carries all four voices, so the 2026-09-12 voice switch did not
184
+ rename it.
185
+
186
  ```text
187
  SHA256 zundamon.vvm: ecd35374d4182cd883cba5040376f7f888cc6ba248b1c2f4cea07cdb34bb1318
188
+ speaker_uuid: 3474ee95-c274-47f9-aa1a-8322163d96f1 (雨晴はう)
189
+ style_id (ノーマル): 10
190
  ```
191
 
192
+ ずんだもん (`388f246b-8c41-4ac1-8e2d-5d79f3ff56d9`, style 3) was the speaker until 2026-09-12.
193
+
194
+ `style_id` **10** is the integer constant `SPEAKER_STYLE_ID` in `src/japanese_avatar/voice/tts.py`.
195
 
196
+ `0.vvm` also carries 四国めたん (2/0/6/4), ずんだもん (3) and 春日部つむぎ (8). Only 雨晴はう is
197
  credited and used; the others are present because the model file is packaged that way upstream.
198
  Confirmed against the `metas.json` inside the downloaded file and against the character↔style
199
  table in the release's own `README.txt`.
 
203
  The `voicevox_vvm` 0.17.0 release ships 29 assets — 25 talk models `0.vvm`..`24.vvm`, `n0.vvm`
204
  (Nemo), `s0.vvm` (song), plus `README.txt` and `TERMS.txt`. Each talk model is 57-67 MB. The
205
  character↔file index lives in `README.txt` (section 音声モデル(.vvm)ファイルと声…の対応表), which
206
+ resolves 雨晴はう ノーマル to **`0.vvm`, style ID 10** (the file was originally downloaded for
207
+ ずんだもん ノーマル, `0.vvm` style ID 3 — the same file). Only that one file was downloaded.
208
 
209
  ---
210
 
 
254
 
255
  Evidence, executed: loading `voicevox/model/zundamon.vvm` into a 0.17.0 `Synthesizer` succeeded and
256
  `create_audio_query("こんにちは", 3)` → `synthesis(...)` returned a 50,732-byte RIFF WAV at
257
+ 24000 Hz / mono / 16-bit, duration 1.056 s (measured with style 3 in plan 01-04).
258
 
259
  Pin both to **0.17.0**. If either is bumped, regenerate the fixtures with
260
  `tests/fixtures/make_synth_fixtures.py` — `tests/test_tts_contract.py::test_fixtures_match_current_engine`
 
280
  | **Total import-to-ready (`warmup()`)** | **1.73 s** |
281
  | Second `warmup()` call (cache hit) | 0.000001 s |
282
 
283
+ Per-turn, once warm: `create_audio_query` **1.2 ms**, `synthesis` **1215 ms** for 「こんにちは」
284
+ (measured with style 3 in plan 01-04).
285
  Both are recorded through `TurnTimings`, so plan 01-08's latency harness gets them for free.
286
 
287
  **The lazy runtime download is exercised, not assumed.** Pointing `VOICEVOX_ORT_DIR` at an empty
 
312
  as `README.txt` / `TERMS.txt` alongside the release assets. Clause 2 reads
313
  「アプリケーションに組み込んで再配布することができます」 — **embedded redistribution is explicitly
314
  permitted**, which is what licenses committing `zundamon.vvm` to this repo.
315
+ - **Character** — 雨晴はう, Amehare Project (©2021-2026 Amehare Project, あめはれくりにっく),
316
+ <https://amehau.com/?page_id=225> (雨晴はう 利用規約; the page returns HTTP 403 to non-browser
317
+ user agents read it with a browser UA). Verbatim:
318
+ 「個人様/企業様ともに商用・非商用問わず利用可能です。ただし音声のR18指定利用はご遠慮ください。」 and
319
+ 「VOICEVOXのクレジット記載は必須となります。仕様上で記載が出来ない場合はお問合せください。」
320
+ Switched from ずんだもん on 2026-09-12 (quick task 260912-eg4); speaker uuid
321
+ `3474ee95-c274-47f9-aa1a-8322163d96f1`, style 10.
322
 
323
  ### The credit string
324
 
325
  ```text
326
+ VOICEVOX:雨晴はう
327
  ```
328
 
329
  Exact, including the ASCII colon and no spaces. Later plans render it; this document is where the
330
  string is defined.
331
 
332
+ **Credit requirement** (character terms, 音声(VOICEVOX_雨晴はう)の利用): the VOICEVOX credit is
333
+ mandatory and the character credit is optional —
334
+ 「キャラクター名のクレジット表記は必須ではありませんが、記載があれば嬉しいです。(例:VOICEVOX:雨晴はう)」
335
+ so `VOICEVOX:雨晴はう`, the terms' own example, satisfies both in one string. The placement
336
+ standard is kept unchanged from Phase 1: a persistently visible footer line next to the avatar
337
+ **plus** an About/Credits surface, open on first load.
338
 
339
  **Flow-down obligation** (software clause 3 / voice-model clause 4): when audio generated here is
340
  made available to others, those others must be bound to the same terms. Anywhere audio is
341
  user-obtainable (playback, replay, download), display a terms notice to the effect of *"Synthesised
342
+ audio is provided under the VOICEVOX and VOICEVOX:雨晴はう terms of use; by using it you agree to
343
  comply with them"*, linking both URLs above.
344
 
345
  **The credit obligation survives an engine swap.** The official Q&A answers
 
349
 
350
  ### There is no "ask the rights holder" step, ever
351
 
352
+ The 雨晴はう terms carry a disclaimer of liability, state that they may change at any time, and
353
+ state that questions about other parties' terms are not answered. The one contact they invite is
354
+ 「仕様上で記載が出来ない場合は問合せください」, which does not arise here because the credit is
355
+ rendered. The terms page answers HTTP 403 to non-browser user agents (read with a Chrome UA, HTTP
356
+ 200, 13,954 bytes, 2026-09-12) a scripted 403 is not a takedown. The compliance posture is
357
+ unchanged: read the terms (done, above), comply visibly, document here. Recorded so it is never
358
+ re-litigated in a later phase.
359
 
360
  ### Pre-cleared swap-in: VOICEVOX Nemo
361
 
 
366
  10000-10008 (男声1-3, 女声1-6), all ノーマル.
367
  - Credit string is just `VOICEVOX Nemo` — no character name, no third-party rights holder.
368
  - Terms: <https://voicevox.hiroshiba.jp/nemo/term/>, restated in the `voicevox_vvm` README.
369
+ - No ¥400,000 credit-omission clause and 雨晴はう has none either; what Nemo removes is the
370
+ third-party rights holder, not a fee.
371
 
372
+ Cost of the swap: the loss of a recognisable character identity. Recommendation remains 雨晴はう
373
+ (switched from ずんだもん on 2026-09-12 for a more natural voice).
374
 
375
  ### Open JTalk dictionary licence
376