Model card: document the espeak-ng 1.52 /ʊɐ fix and the ç phonemizer-patch note
Browse files
README.md
CHANGED
|
@@ -45,16 +45,28 @@ The result loads and synthesizes in sherpa-onnx with the weights unchanged.
|
|
| 45 |
|
| 46 |
- `model.onnx` — the Martin ONNX with sherpa-onnx Kokoro metadata injected
|
| 47 |
- `voices.bin` — the voice style vector (510×1×256 float32)
|
| 48 |
-
- `tokens.txt`
|
| 49 |
-
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 58 |
|
| 59 |
## How it was built
|
| 60 |
|
|
|
|
| 45 |
|
| 46 |
- `model.onnx` — the Martin ONNX with sherpa-onnx Kokoro metadata injected
|
| 47 |
- `voices.bin` — the voice style vector (510×1×256 float32)
|
| 48 |
+
- `tokens.txt` — from the k2-fsa sherpa-onnx Kokoro release
|
| 49 |
+
- `espeak-ng-data/` — from **espeak-ng 1.52** (see the pronunciation note below)
|
| 50 |
+
|
| 51 |
+
## Pronunciation notes (German G2P)
|
| 52 |
+
|
| 53 |
+
sherpa-onnx phonemizes German with espeak-ng / piper-phonemize, and two properties of that
|
| 54 |
+
pipeline affect raw-text rendering. Both are properties of the sherpa-onnx Kokoro G2P, not of the
|
| 55 |
+
voice weights.
|
| 56 |
+
|
| 57 |
+
- **`ʊɐ` ("ur") vowel — fixed in this package.** The espeak-ng-data shipped by k2-fsa's base
|
| 58 |
+
Kokoro release is stale and emits a literal `?` for the vocalized-r `ʊɐ`, so `durch`, `kurz`,
|
| 59 |
+
`wurde`, … mispronounce. This package instead bundles current **espeak-ng 1.52** data, which
|
| 60 |
+
resolves `ʊɐ` correctly (`durch` → `dˈʊɐç`). A build-time check guards it.
|
| 61 |
+
- **ich-laut `/ç/` — needs a phonemizer patch, not a lexicon.** piper-phonemize NFD-decomposes
|
| 62 |
+
`ç` into `c` + combining cedilla (U+0327), which the precomposed Kokoro token set drops, so
|
| 63 |
+
`ich`, `nicht`, `-lich` / `-ig` don't render cleanly. **Note the usual "add a lexicon entry"
|
| 64 |
+
workaround does _not_ apply here:** sherpa-onnx consults the Kokoro lexicon only for its
|
| 65 |
+
dictionary languages (en/zh); for espeak-driven languages (incl. German) it goes straight to
|
| 66 |
+
espeak and never reads the lexicon. The fix has to be in the phonemizer — recompose the pair
|
| 67 |
+
back to `ç` when that codepoint is a known token. The [Page Reader](https://github.com/) app
|
| 68 |
+
that consumes this package carries exactly that patch in its bundled sherpa-onnx build; if you
|
| 69 |
+
run this archive on **stock** sherpa-onnx, ç-words are still affected.
|
| 70 |
|
| 71 |
## How it was built
|
| 72 |
|