@kongyo2/kongyoroid 1.0.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/README.md +233 -0
  2. package/dist/cache.d.ts +32 -7
  3. package/dist/cache.d.ts.map +1 -1
  4. package/dist/cache.js +138 -9
  5. package/dist/cache.js.map +1 -1
  6. package/dist/cli/flags.d.ts +270 -0
  7. package/dist/cli/flags.d.ts.map +1 -0
  8. package/dist/cli/flags.js +240 -0
  9. package/dist/cli/flags.js.map +1 -0
  10. package/dist/cli/help.d.ts +11 -0
  11. package/dist/cli/help.d.ts.map +1 -0
  12. package/dist/cli/help.js +336 -0
  13. package/dist/cli/help.js.map +1 -0
  14. package/dist/cli.js +598 -232
  15. package/dist/cli.js.map +1 -1
  16. package/dist/errors.d.ts +43 -3
  17. package/dist/errors.d.ts.map +1 -1
  18. package/dist/errors.js +56 -3
  19. package/dist/errors.js.map +1 -1
  20. package/dist/index.d.ts +59 -22
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +32 -14
  23. package/dist/index.js.map +1 -1
  24. package/dist/io.d.ts +11 -0
  25. package/dist/io.d.ts.map +1 -1
  26. package/dist/io.js +149 -5
  27. package/dist/io.js.map +1 -1
  28. package/dist/kongyoroid.d.ts +237 -10
  29. package/dist/kongyoroid.d.ts.map +1 -1
  30. package/dist/kongyoroid.js +777 -86
  31. package/dist/kongyoroid.js.map +1 -1
  32. package/dist/limits.d.ts +5 -0
  33. package/dist/limits.d.ts.map +1 -1
  34. package/dist/limits.js +6 -1
  35. package/dist/limits.js.map +1 -1
  36. package/dist/request.d.ts +1 -0
  37. package/dist/request.d.ts.map +1 -1
  38. package/dist/request.js +102 -15
  39. package/dist/request.js.map +1 -1
  40. package/dist/schema.d.ts +3 -0
  41. package/dist/schema.d.ts.map +1 -1
  42. package/dist/schema.js +271 -68
  43. package/dist/schema.js.map +1 -1
  44. package/dist/song/mml.d.ts +15 -0
  45. package/dist/song/mml.d.ts.map +1 -0
  46. package/dist/song/mml.js +184 -0
  47. package/dist/song/mml.js.map +1 -0
  48. package/dist/song/pitch.d.ts.map +1 -0
  49. package/dist/{pitch.js → song/pitch.js} +1 -1
  50. package/dist/song/pitch.js.map +1 -0
  51. package/dist/song/score.d.ts +92 -0
  52. package/dist/song/score.d.ts.map +1 -0
  53. package/dist/song/score.js +454 -0
  54. package/dist/song/score.js.map +1 -0
  55. package/dist/synth/acoustics.d.ts +27 -0
  56. package/dist/synth/acoustics.d.ts.map +1 -0
  57. package/dist/synth/acoustics.js +608 -0
  58. package/dist/synth/acoustics.js.map +1 -0
  59. package/dist/synth/analysis.d.ts +22 -0
  60. package/dist/synth/analysis.d.ts.map +1 -0
  61. package/dist/synth/analysis.js +170 -0
  62. package/dist/synth/analysis.js.map +1 -0
  63. package/dist/synth/engine.d.ts +115 -0
  64. package/dist/synth/engine.d.ts.map +1 -0
  65. package/dist/synth/engine.js +223 -0
  66. package/dist/synth/engine.js.map +1 -0
  67. package/dist/synth/filters.d.ts +60 -0
  68. package/dist/synth/filters.d.ts.map +1 -0
  69. package/dist/synth/filters.js +166 -0
  70. package/dist/synth/filters.js.map +1 -0
  71. package/dist/synth/glottal.d.ts +20 -0
  72. package/dist/synth/glottal.d.ts.map +1 -0
  73. package/dist/synth/glottal.js +76 -0
  74. package/dist/synth/glottal.js.map +1 -0
  75. package/dist/synth/phonemes.d.ts +42 -0
  76. package/dist/synth/phonemes.d.ts.map +1 -0
  77. package/dist/synth/phonemes.js +311 -0
  78. package/dist/synth/phonemes.js.map +1 -0
  79. package/dist/synth/plan.d.ts +127 -0
  80. package/dist/synth/plan.d.ts.map +1 -0
  81. package/dist/synth/plan.js +81 -0
  82. package/dist/synth/plan.js.map +1 -0
  83. package/dist/synth/prosody.d.ts +30 -0
  84. package/dist/synth/prosody.d.ts.map +1 -0
  85. package/dist/synth/prosody.js +46 -0
  86. package/dist/synth/prosody.js.map +1 -0
  87. package/dist/synth/random.d.ts +15 -0
  88. package/dist/synth/random.d.ts.map +1 -0
  89. package/dist/synth/random.js +59 -0
  90. package/dist/synth/random.js.map +1 -0
  91. package/dist/synth/renderer.d.ts +77 -0
  92. package/dist/synth/renderer.d.ts.map +1 -0
  93. package/dist/synth/renderer.js +343 -0
  94. package/dist/synth/renderer.js.map +1 -0
  95. package/dist/synth/song.d.ts +30 -0
  96. package/dist/synth/song.d.ts.map +1 -0
  97. package/dist/synth/song.js +453 -0
  98. package/dist/synth/song.js.map +1 -0
  99. package/dist/synth/speech.d.ts +49 -0
  100. package/dist/synth/speech.d.ts.map +1 -0
  101. package/dist/synth/speech.js +354 -0
  102. package/dist/synth/speech.js.map +1 -0
  103. package/dist/synth/stream.d.ts +26 -0
  104. package/dist/synth/stream.d.ts.map +1 -0
  105. package/dist/synth/stream.js +67 -0
  106. package/dist/synth/stream.js.map +1 -0
  107. package/dist/synth/textstream.d.ts +35 -0
  108. package/dist/synth/textstream.d.ts.map +1 -0
  109. package/dist/synth/textstream.js +127 -0
  110. package/dist/synth/textstream.js.map +1 -0
  111. package/dist/synth/voice.d.ts +64 -0
  112. package/dist/synth/voice.d.ts.map +1 -0
  113. package/dist/synth/voice.js +208 -0
  114. package/dist/synth/voice.js.map +1 -0
  115. package/dist/text/dictionary.d.ts +50 -0
  116. package/dist/text/dictionary.d.ts.map +1 -0
  117. package/dist/text/dictionary.js +0 -0
  118. package/dist/text/dictionary.js.map +1 -0
  119. package/dist/text/frontend.d.ts +34 -0
  120. package/dist/text/frontend.d.ts.map +1 -0
  121. package/dist/text/frontend.js +550 -0
  122. package/dist/text/frontend.js.map +1 -0
  123. package/dist/text/lexicon.d.ts +10 -0
  124. package/dist/text/lexicon.d.ts.map +1 -0
  125. package/dist/text/lexicon.js +763 -0
  126. package/dist/text/lexicon.js.map +1 -0
  127. package/dist/{mora.d.ts → text/mora.d.ts} +15 -3
  128. package/dist/text/mora.d.ts.map +1 -0
  129. package/dist/{mora.js → text/mora.js} +87 -9
  130. package/dist/text/mora.js.map +1 -0
  131. package/dist/text/normalize.d.ts +34 -0
  132. package/dist/text/normalize.d.ts.map +1 -0
  133. package/dist/text/normalize.js +496 -0
  134. package/dist/text/normalize.js.map +1 -0
  135. package/dist/text/notation.d.ts +32 -0
  136. package/dist/text/notation.d.ts.map +1 -0
  137. package/dist/text/notation.js +182 -0
  138. package/dist/text/notation.js.map +1 -0
  139. package/dist/text/reading.d.ts +52 -0
  140. package/dist/text/reading.d.ts.map +1 -0
  141. package/dist/text/reading.js +32 -0
  142. package/dist/text/reading.js.map +1 -0
  143. package/dist/text/sentences.d.ts +10 -0
  144. package/dist/text/sentences.d.ts.map +1 -0
  145. package/dist/text/sentences.js +84 -0
  146. package/dist/text/sentences.js.map +1 -0
  147. package/dist/{text.d.ts → text/split.d.ts} +2 -2
  148. package/dist/text/split.d.ts.map +1 -0
  149. package/dist/{text.js → text/split.js} +2 -2
  150. package/dist/text/split.js.map +1 -0
  151. package/dist/types.d.ts +58 -3
  152. package/dist/types.d.ts.map +1 -1
  153. package/dist/version.d.ts +4 -0
  154. package/dist/version.d.ts.map +1 -1
  155. package/dist/version.js +5 -1
  156. package/dist/version.js.map +1 -1
  157. package/dist/voicevox/client.d.ts +1 -1
  158. package/dist/voicevox/client.d.ts.map +1 -1
  159. package/dist/voicevox/dictionary.js +1 -1
  160. package/dist/voicevox/dictionary.js.map +1 -1
  161. package/dist/voicevox/song.js +1 -1
  162. package/dist/voicevox/song.js.map +1 -1
  163. package/dist/voicevox/speech.d.ts +1 -0
  164. package/dist/voicevox/speech.d.ts.map +1 -1
  165. package/dist/voicevox/speech.js +8 -2
  166. package/dist/voicevox/speech.js.map +1 -1
  167. package/docs/cli.md +251 -0
  168. package/examples/batch.jsonl +4 -3
  169. package/examples/builtin/dictionary.json +7 -0
  170. package/examples/builtin/song-compact.json +13 -0
  171. package/examples/builtin/song-mml.json +9 -0
  172. package/examples/builtin/song-notes.json +25 -0
  173. package/examples/builtin/speech-dictionary.json +9 -0
  174. package/examples/builtin/speech-kana.json +7 -0
  175. package/examples/builtin/speech.json +7 -0
  176. package/package.json +11 -3
  177. package/dist/formant.d.ts +0 -34
  178. package/dist/formant.d.ts.map +0 -1
  179. package/dist/formant.js +0 -622
  180. package/dist/formant.js.map +0 -1
  181. package/dist/mora.d.ts.map +0 -1
  182. package/dist/mora.js.map +0 -1
  183. package/dist/notation.d.ts +0 -15
  184. package/dist/notation.d.ts.map +0 -1
  185. package/dist/notation.js +0 -114
  186. package/dist/notation.js.map +0 -1
  187. package/dist/pitch.d.ts.map +0 -1
  188. package/dist/pitch.js.map +0 -1
  189. package/dist/score.d.ts +0 -37
  190. package/dist/score.d.ts.map +0 -1
  191. package/dist/score.js +0 -166
  192. package/dist/score.js.map +0 -1
  193. package/dist/text.d.ts.map +0 -1
  194. package/dist/text.js.map +0 -1
  195. package/examples/song-notes.json +0 -24
  196. /package/dist/{pitch.d.ts → song/pitch.d.ts} +0 -0
  197. /package/examples/{song.json → voicevox/song.json} +0 -0
  198. /package/examples/{speech-kana.json → voicevox/speech-kana.json} +0 -0
  199. /package/examples/{speech.json → voicevox/speech.json} +0 -0
package/dist/schema.js CHANGED
@@ -1,33 +1,83 @@
1
- import { EXIT_CODES } from "./errors.js";
1
+ import { ERROR_CODES, EXIT_CODES } from "./errors.js";
2
2
  import { LIMITS, SAMPLE_RATE_RANGE } from "./limits.js";
3
- import { MAX_BEATS, MAX_NOTES, MIN_BEATS } from "./score.js";
4
- import { PACKAGE_NAME, VERSION } from "./version.js";
3
+ import { MAX_BEATS, MAX_LYRIC_MORAS, MAX_NOTES, MIN_BEATS } from "./song/score.js";
4
+ import { BUILTIN_VOICES, DEFAULT_VOICE_ID } from "./synth/voice.js";
5
+ import { ENGINE_VERSION, FRONTEND_VERSION, PACKAGE_NAME, PLAN_VERSION, SCHEMA_VERSION, VERSION } from "./version.js";
5
6
  const styleRef = {
6
7
  anyOf: [
7
8
  { type: "integer", minimum: 0, maximum: 4_294_967_295 },
8
9
  { type: "string", minLength: 1, maxLength: 200 },
9
10
  ],
10
- description: 'A VOICEVOX style id from the voices command, or a name: "ずんだもん" (first matching style) or "ずんだもん/ノーマル" (exact style).',
11
+ description: 'VOICEVOX only: a style id from the voices command, or a name: "ずんだもん" (first matching style) or "ずんだもん/ノーマル" (exact style). Giving a style selects the voicevox engine.',
11
12
  };
13
+ const VOICE_IDS = BUILTIN_VOICES.map((voice) => voice.id);
12
14
  const common = {
15
+ schemaVersion: { enum: [1, 2], description: "Optional request schema version; omitted means the current version." },
13
16
  engine: {
14
17
  enum: ["formant", "voicevox", "auto"],
15
18
  default: "formant",
16
- description: "formant is the built-in engine: kana text or kana notation, deterministic, no external service. voicevox drives a running VOICEVOX ENGINE (character voices, kanji text, user dictionary) and is selected automatically when speaker, singer, or teacher is given. auto uses voicevox when the endpoint answers, otherwise formant.",
19
+ description: "formant is the built-in engine (default): ordinary Japanese text, kana, deterministic, no external service. voicevox drives a running VOICEVOX ENGINE and is selected automatically when speaker, singer, or teacher is given. auto uses voicevox when the endpoint answers, otherwise formant.",
20
+ },
21
+ voice: {
22
+ type: "string",
23
+ enum: VOICE_IDS,
24
+ default: DEFAULT_VOICE_ID,
25
+ description: `Built-in voice for the formant engine: ${VOICE_IDS.join(", ")}. Run the voices command for details.`,
17
26
  },
18
27
  sampleRate: {
19
28
  type: "integer",
20
29
  minimum: SAMPLE_RATE_RANGE.min,
21
30
  maximum: SAMPLE_RATE_RANGE.max,
22
- description: "Output sample rate in Hz. Defaults to the engine default (24000).",
31
+ description: "Output sample rate in Hz. Defaults to 24000. Rates below 16000 lose fricative detail.",
32
+ },
33
+ volume: {
34
+ type: "number",
35
+ minimum: 0,
36
+ maximum: 3,
37
+ default: 1,
38
+ description: "Linear output gain applied before a continuous soft limiter.",
39
+ },
40
+ gainDb: {
41
+ type: "number",
42
+ minimum: -60,
43
+ maximum: 12,
44
+ description: "Output gain in dB (alternative to volume; do not give both).",
45
+ },
46
+ breathiness: {
47
+ type: "number",
48
+ minimum: -1,
49
+ maximum: 1.5,
50
+ default: 0,
51
+ description: "Glottal tension offset for the formant engine: negative is tenser, positive is breathier.",
23
52
  },
24
- volume: { type: "number", minimum: 0, maximum: 3, default: 1, description: "Linear output gain." },
25
53
  seed: {
26
54
  type: "integer",
27
55
  minimum: 1,
28
56
  maximum: 4_294_967_295,
29
57
  default: 1,
30
- description: "Noise seed for the formant engine; ignored by voicevox.",
58
+ description: "Noise/jitter seed for the formant engine; the same request and seed give identical audio. Ignored by voicevox.",
59
+ },
60
+ };
61
+ export const DICTIONARY_ENTRY_SCHEMA = {
62
+ type: "object",
63
+ additionalProperties: false,
64
+ required: ["surface", "reading"],
65
+ properties: {
66
+ id: { type: "string", minLength: 1, maxLength: 100, description: "Stable identifier (defaults to entry-N)." },
67
+ surface: { type: "string", minLength: 1, maxLength: 200, description: "Text to match (kanji, kana, or ASCII)." },
68
+ reading: { type: "string", minLength: 1, maxLength: 200, description: "Pronunciation in kana (ー allowed)." },
69
+ accent: {
70
+ anyOf: [{ type: "integer", minimum: 0 }, { type: "null" }],
71
+ description: "Accent nucleus mora (1-based); 0 = flat (平板); null = let the frontend decide.",
72
+ },
73
+ match: {
74
+ enum: ["word", "anywhere"],
75
+ default: "word",
76
+ description: "word: do not match inside ASCII words; anywhere: match everywhere.",
77
+ },
78
+ priority: { type: "integer", minimum: 0, maximum: 10, default: 5 },
79
+ caseSensitive: { type: "boolean", default: false },
80
+ note: { type: "string", maxLength: 500 },
31
81
  },
32
82
  };
33
83
  export const SPEECH_PROPERTIES = {
@@ -37,42 +87,67 @@ export const SPEECH_PROPERTIES = {
37
87
  type: "string",
38
88
  minLength: 1,
39
89
  maxLength: LIMITS.textChars,
40
- description: "Text to read. voicevox accepts ordinary Japanese including kanji; formant accepts kana only.",
90
+ description: "Text to read: ordinary Japanese including kanji, numbers, dates, and ASCII words (formant engine uses the built-in jpreprocess frontend with an accent dictionary). Newlines separate sentences; blank lines separate paragraphs.",
41
91
  },
42
92
  kana: {
43
93
  type: "string",
44
94
  minLength: 1,
45
95
  maxLength: LIMITS.kanaChars,
46
- description: "Optional reading in AquesTalk-style notation, e.g. コンニチワ'/セカ'イ? (katakana, / between accent phrases, 、 for a pause, ' after the accent nucleus, _ before a devoiced vowel, ? for a question). When given, it replaces the engine's own reading of text and disables splitting.",
96
+ description: "Optional pronunciation that replaces the reading of text. Kana with optional accent notation: / between accent phrases, ' after the accent nucleus (none = flat), pause, sentence end, ? question, exclamation, _ before a devoiced mora, long vowel. Example: コンニチワ、キョ'ーワ/イ'イ/テ'ンキデ_スネ?",
97
+ },
98
+ dictionary: {
99
+ type: "array",
100
+ maxItems: LIMITS.dictionaryEntries,
101
+ items: { $ref: "#/$defs/dictionaryEntry" },
102
+ description: "One-off reading/accent overrides applied to text before analysis (highest priority).",
103
+ },
104
+ strictReading: {
105
+ type: "boolean",
106
+ default: true,
107
+ description: "Fail with UNREADABLE_TEXT when a character has no reading; false skips it with a warning.",
47
108
  },
48
109
  speaker: styleRef,
49
- speed: { type: "number", minimum: 0.25, maximum: 4, default: 1, description: "Speaking rate multiplier." },
110
+ speed: {
111
+ type: "number",
112
+ minimum: 0.25,
113
+ maximum: 4,
114
+ default: 1,
115
+ description: "Speaking rate multiplier (formant default is about 7 moras per second).",
116
+ },
50
117
  pitch: {
51
118
  type: "number",
52
119
  minimum: -1,
53
120
  maximum: 1,
121
+ description: "VOICEVOX pitchScale semantics (log-F0 exponent); practical range about -0.15 to 0.15. Prefer pitchSemitones for the formant engine.",
122
+ },
123
+ pitchSemitones: {
124
+ type: "number",
125
+ minimum: -24,
126
+ maximum: 24,
54
127
  default: 0,
55
- description: "VOICEVOX pitchScale semantics; the practical range is about -0.15 to 0.15.",
128
+ description: "Shift of the voice's base pitch in semitones (formant engine).",
129
+ },
130
+ intonation: {
131
+ type: "number",
132
+ minimum: 0,
133
+ maximum: 3,
134
+ default: 1,
135
+ description: "Pitch-range multiplier (accent and phrase components).",
56
136
  },
57
- intonation: { type: "number", minimum: 0, maximum: 3, default: 1, description: "Pitch-range multiplier." },
58
137
  prePause: { type: "number", minimum: 0, maximum: 10, default: 0.1, description: "Leading silence in seconds." },
59
138
  postPause: { type: "number", minimum: 0, maximum: 10, default: 0.1, description: "Trailing silence in seconds." },
60
139
  pauseLength: {
61
140
  type: "number",
62
141
  minimum: 0,
63
142
  maximum: 10,
64
- description: "Absolute punctuation pause in seconds. Omit to keep the engine's own pause lengths.",
143
+ description: "Absolute length of 、 pauses in seconds. Omit to keep the engine's own pause lengths.",
65
144
  },
66
145
  pauseScale: { type: "number", minimum: 0, maximum: 10, default: 1, description: "Punctuation pause multiplier." },
67
- upspeak: {
68
- type: "boolean",
69
- default: true,
70
- description: "Raise the final mora of interrogative phrases (VOICEVOX enable_interrogative_upspeak).",
71
- },
146
+ upspeak: { type: "boolean", default: true, description: "Raise the final mora of interrogative phrases." },
72
147
  split: {
73
148
  enum: ["sentence", "paragraph", "none"],
74
149
  default: "sentence",
75
- description: "How long text is chunked before synthesis. Chunks are synthesized concurrently and concatenated in order.",
150
+ description: "voicevox only: how long text is chunked before synthesis. The formant engine always analyses per sentence.",
76
151
  },
77
152
  };
78
153
  export const NOTE_SCHEMA = {
@@ -80,13 +155,19 @@ export const NOTE_SCHEMA = {
80
155
  additionalProperties: false,
81
156
  required: ["key", "beats"],
82
157
  properties: {
158
+ id: {
159
+ type: "string",
160
+ minLength: 1,
161
+ maxLength: 64,
162
+ description: "Stable note id (defaults to n1, n2, …); reported in plan output and errors.",
163
+ },
83
164
  key: {
84
165
  anyOf: [
85
166
  { type: "integer", minimum: 0, maximum: 127 },
86
- { type: "string", pattern: "^[A-Ga-g](#|♯|b|♭|x)?-?[0-9]$" },
167
+ { type: "string", pattern: "^\\s*(?:[A-Ga-g](?:#|♯|b|♭|x)?-?[0-9]|\\d{1,3})\\s*$" },
87
168
  { type: "null" },
88
169
  ],
89
- description: "MIDI key (60 = C4), a note name such as C4 or F#3, or null for a rest.",
170
+ description: "MIDI key (60 = C4), a note name such as C4 or F#3, a numeric string, or null for a rest.",
90
171
  },
91
172
  beats: {
92
173
  type: "number",
@@ -96,14 +177,55 @@ export const NOTE_SCHEMA = {
96
177
  },
97
178
  lyric: {
98
179
  type: "string",
99
- maxLength: 8,
100
- default: "",
101
- description: 'Exactly one kana mora for a pitched note (ア, キャ, ン, ...), "ー" to hold the previous vowel, empty for a rest.',
180
+ maxLength: 32,
181
+ description: `Kana for a pitched note: one mora (ア, キャ, ン) or up to ${MAX_LYRIC_MORAS} moras split inside the note (formant engine). "" holds the previous vowel. Empty for a rest.`,
182
+ },
183
+ continuation: {
184
+ enum: ["none", "tie", "melisma"],
185
+ description: "tie: hold the previous vowel at the same pitch; melisma: hold it at a new pitch. Must directly follow a pitched note.",
186
+ },
187
+ continueFrom: {
188
+ type: "string",
189
+ minLength: 1,
190
+ maxLength: 64,
191
+ description: "Id of the directly preceding note being continued (explicit form of continuation).",
192
+ },
193
+ articulation: {
194
+ enum: ["auto", "legato", "rearticulate"],
195
+ description: "auto: re-articulate a repeated vowel; legato: connect without re-attack.",
196
+ },
197
+ velocity: {
198
+ type: "integer",
199
+ minimum: 1,
200
+ maximum: 127,
201
+ description: "Loudness 1–127 (100 = nominal); louder is also slightly tenser.",
202
+ },
203
+ gainDb: { type: "number", minimum: -40, maximum: 12, description: "Loudness in dB (alternative to velocity)." },
204
+ portamentoMs: {
205
+ type: "number",
206
+ minimum: 0,
207
+ maximum: 2000,
208
+ description: "Pitch transition time into this note (default from the request).",
209
+ },
210
+ vibrato: {
211
+ anyOf: [
212
+ { const: false },
213
+ {
214
+ type: "object",
215
+ additionalProperties: false,
216
+ properties: {
217
+ depthCents: { type: "number", minimum: 0, maximum: 200 },
218
+ rateHz: { type: "number", minimum: 0, maximum: 12 },
219
+ delayMs: { type: "number", minimum: 0, maximum: 5000 },
220
+ fadeMs: { type: "number", minimum: 0, maximum: 5000 },
221
+ },
222
+ },
223
+ ],
224
+ description: "Per-sustain vibrato override, or false to disable vibrato on this note.",
102
225
  },
103
226
  },
104
227
  if: { properties: { key: { type: "null" } } },
105
228
  then: { properties: { lyric: { const: "" } } },
106
- else: { properties: { lyric: { type: "string", minLength: 1 } } },
107
229
  };
108
230
  export const SCORE_TEXT_SCHEMA = {
109
231
  type: "object",
@@ -113,13 +235,13 @@ export const SCORE_TEXT_SCHEMA = {
113
235
  lyrics: {
114
236
  type: "string",
115
237
  maxLength: LIMITS.textChars,
116
- description: "Kana lyrics; one mora is consumed per pitched melody note. ー holds the previous vowel.",
238
+ description: "Kana lyrics; one mora is consumed per pitched melody note.",
117
239
  },
118
240
  melody: {
119
241
  type: "string",
120
242
  minLength: 1,
121
243
  maxLength: LIMITS.textChars,
122
- description: 'Whitespace-separated notes: note names (C4, F#4, Bb3), MIDI integers, R for a rest, ~ for a tie. Example: "C4 D4 E4 R ~".',
244
+ description: 'Whitespace-separated notes: note names (C4, F#4, Bb3), MIDI integers, R for a rest, ~ to hold the previous note (tie), ~D4 to move the held vowel to D4 (melisma), | ignored. Example: "C4 D4 E4 ~ R ~E4".',
123
245
  },
124
246
  beats: {
125
247
  anyOf: [
@@ -130,6 +252,24 @@ export const SCORE_TEXT_SCHEMA = {
130
252
  },
131
253
  },
132
254
  };
255
+ export const MML_SCORE_SCHEMA = {
256
+ type: "object",
257
+ additionalProperties: false,
258
+ required: ["mml"],
259
+ properties: {
260
+ mml: {
261
+ type: "string",
262
+ minLength: 1,
263
+ maxLength: LIMITS.textChars,
264
+ description: "Music Macro Language: t120 tempo, o4 octave, < > octave shift, l8 default length, v12 velocity, c d e f g a b (+ # -), lengths 1–64 with dots, r rest, & tie/melisma, n60 MIDI, [きゃ] inline lyric. Example: t120 o4 l4 c d e2 r4 e8&e8",
265
+ },
266
+ lyrics: {
267
+ type: "string",
268
+ maxLength: LIMITS.textChars,
269
+ description: "Kana lyrics, one mora per pitched note (notes without lyrics sing ラ).",
270
+ },
271
+ },
272
+ };
133
273
  export const SONG_PROPERTIES = {
134
274
  kind: { const: "song" },
135
275
  ...common,
@@ -137,26 +277,65 @@ export const SONG_PROPERTIES = {
137
277
  anyOf: [
138
278
  { type: "array", minItems: 1, maxItems: MAX_NOTES, items: { $ref: "#/$defs/note" } },
139
279
  { $ref: "#/$defs/scoreText" },
280
+ { $ref: "#/$defs/mmlScore" },
140
281
  ],
141
- description: "Either an explicit note list or a compact lyrics/melody/beats score.",
282
+ description: "An explicit note list, a compact lyrics/melody/beats score, or an MML score.",
142
283
  },
143
- tempo: { type: "number", minimum: 20, maximum: 400, default: 120, description: "Beats per minute." },
144
- singer: {
145
- ...styleRef,
146
- description: "VOICEVOX style that renders the voice (type frame_decode or sing). Defaults to the first singing style the engine offers.",
284
+ tempo: {
285
+ type: "number",
286
+ minimum: 20,
287
+ maximum: 400,
288
+ description: "Beats per minute (default 120, or the MML tempo).",
147
289
  },
290
+ singer: { ...styleRef, description: "VOICEVOX only: style that renders the voice (type frame_decode or sing)." },
148
291
  teacher: {
149
292
  ...styleRef,
150
- description: "VOICEVOX style that predicts timing and pitch (type singing_teacher or sing). Defaults to the singer when it can teach, otherwise to the first teacher.",
293
+ description: "VOICEVOX only: style that predicts timing and pitch (type singing_teacher or sing).",
294
+ },
295
+ transpose: {
296
+ type: "integer",
297
+ minimum: -48,
298
+ maximum: 48,
299
+ default: 0,
300
+ description: "Semitones added to every key (applied exactly once).",
151
301
  },
152
- transpose: { type: "integer", minimum: -48, maximum: 48, default: 0, description: "Semitones added to every key." },
153
302
  vibratoDepth: {
154
303
  type: "number",
155
304
  minimum: 0,
156
305
  maximum: 200,
157
- description: "Vibrato depth in cents. voicevox defaults to 0 (the engine's own expression); formant defaults to 25.",
306
+ description: "Vibrato depth in cents (formant default 30, voicevox default 0).",
158
307
  },
159
308
  vibratoRate: { type: "number", minimum: 0, maximum: 12, default: 5.5, description: "Vibrato rate in Hz." },
309
+ vibrato: {
310
+ type: "object",
311
+ additionalProperties: false,
312
+ properties: {
313
+ depthCents: { type: "number", minimum: 0, maximum: 200 },
314
+ rateHz: { type: "number", minimum: 0, maximum: 12 },
315
+ delayMs: { type: "number", minimum: 0, maximum: 5000, default: 180 },
316
+ fadeMs: { type: "number", minimum: 0, maximum: 5000, default: 250 },
317
+ },
318
+ description: "Vibrato settings per sustained vowel (alternative to vibratoDepth/vibratoRate).",
319
+ },
320
+ portamentoMs: {
321
+ type: "number",
322
+ minimum: 0,
323
+ maximum: 2000,
324
+ description: "Pitch transition time between connected notes (formant default 60 ms; 0 = step).",
325
+ },
326
+ scoopCents: {
327
+ type: "number",
328
+ minimum: 0,
329
+ maximum: 1200,
330
+ default: 0,
331
+ description: "Start phrase-initial notes this many cents below and slide up (しゃくり).",
332
+ },
333
+ scoopMs: { type: "number", minimum: 0, maximum: 2000, default: 80, description: "Duration of the scoop slide." },
334
+ consonantCompression: {
335
+ type: "boolean",
336
+ default: true,
337
+ description: "Allow consonants to be shortened when a note is too short; false fails with NOTE_TOO_SHORT instead.",
338
+ },
160
339
  leadIn: { type: "number", minimum: 0, maximum: 5, default: 0.16, description: "Rest added before the first note." },
161
340
  leadOut: { type: "number", minimum: 0, maximum: 5, default: 0.16, description: "Rest added after the last note." },
162
341
  };
@@ -171,17 +350,23 @@ function variant(kind, properties, required) {
171
350
  }
172
351
  const REQUEST_BODY = {
173
352
  title: "kongyoroid RenderRequest",
174
- description: "One speech (読み上げ) or song (歌唱) render. Unknown properties are rejected. Output is a mono PCM16 WAV.",
353
+ description: "One speech (読み上げ) or song (歌唱) render. Unknown properties are rejected. Output is a mono PCM16 WAV. The built-in formant engine needs no external service.",
175
354
  oneOf: [variant("speech", SPEECH_PROPERTIES, ["text"]), variant("song", SONG_PROPERTIES, ["notes"])],
176
355
  };
356
+ const DEFS = {
357
+ note: NOTE_SCHEMA,
358
+ scoreText: SCORE_TEXT_SCHEMA,
359
+ mmlScore: MML_SCORE_SCHEMA,
360
+ dictionaryEntry: DICTIONARY_ENTRY_SCHEMA,
361
+ };
177
362
  export const REQUEST_SCHEMA = {
178
- $schema: "http://json-schema.org/draft-07/schema#",
363
+ $schema: "https://json-schema.org/draft/2020-12/schema",
179
364
  $id: "https://github.com/kongyo2/kongyoroid/schema/render-request.json",
180
365
  ...REQUEST_BODY,
181
- $defs: { note: NOTE_SCHEMA, scoreText: SCORE_TEXT_SCHEMA },
366
+ $defs: DEFS,
182
367
  };
183
368
  export const BATCH_JOB_SCHEMA = {
184
- $schema: "http://json-schema.org/draft-07/schema#",
369
+ $schema: "https://json-schema.org/draft/2020-12/schema",
185
370
  $id: "https://github.com/kongyo2/kongyoroid/schema/batch-job.json",
186
371
  title: "kongyoroid BatchJob",
187
372
  description: "One JSONL line for the batch command. The request schema is embedded under $defs.request.",
@@ -192,38 +377,66 @@ export const BATCH_JOB_SCHEMA = {
192
377
  id: { type: "string", pattern: "^[A-Za-z0-9_-]{1,64}$", description: "Output file name stem, unique per batch." },
193
378
  request: { $ref: "#/$defs/request" },
194
379
  },
195
- $defs: { request: REQUEST_BODY, note: NOTE_SCHEMA, scoreText: SCORE_TEXT_SCHEMA },
380
+ $defs: { request: REQUEST_BODY, ...DEFS },
381
+ };
382
+ export const DICTIONARY_SCHEMA = {
383
+ $schema: "https://json-schema.org/draft/2020-12/schema",
384
+ $id: "https://github.com/kongyo2/kongyoroid/schema/dictionary.json",
385
+ title: "kongyoroid Dictionary",
386
+ description: "Local reading dictionary file: { entries: [...] } or a bare array of entries.",
387
+ anyOf: [
388
+ {
389
+ type: "object",
390
+ additionalProperties: false,
391
+ required: ["entries"],
392
+ properties: { entries: { type: "array", items: { $ref: "#/$defs/dictionaryEntry" } } },
393
+ },
394
+ { type: "array", items: { $ref: "#/$defs/dictionaryEntry" } },
395
+ ],
396
+ $defs: { dictionaryEntry: DICTIONARY_ENTRY_SCHEMA },
196
397
  };
197
398
  export const CAPABILITIES = {
198
399
  name: PACKAGE_NAME,
199
400
  version: VERSION,
200
- description: "Japanese speech and singing synthesis for LLM agents.",
401
+ schemaVersion: SCHEMA_VERSION,
402
+ planVersion: PLAN_VERSION,
403
+ engineVersion: ENGINE_VERSION,
404
+ frontendVersion: FRONTEND_VERSION,
405
+ description: "Japanese speech and singing synthesis for LLM agents: a built-in deterministic formant engine with a dictionary-backed text frontend, plus an optional VOICEVOX adapter.",
201
406
  output: { container: "wav", encoding: "pcm16", channels: 1, sampleRate: { default: 24000, ...SAMPLE_RATE_RANGE } },
407
+ streaming: { formats: ["wav", "pcm", "ndjson"], pcm: "s16le mono", sentenceGranularity: true },
202
408
  defaultEngine: "formant",
203
409
  engines: {
204
410
  formant: {
205
411
  external: false,
206
- speech: "Kana text or kana notation (accent phrases, pauses, devoicing, questions); deterministic for a request and seed.",
207
- song: "Score of one-mora notes with ties and rests; deterministic.",
412
+ voices: VOICE_IDS,
413
+ text: "Ordinary Japanese (kanji, kana, numbers, dates, units, ASCII words) via jpreprocess + NAIST-JDic with accent; kana input with optional accent notation; local dictionaries for readings and accents.",
414
+ speech: "Fujisaki-model intonation, accent phrases, devoicing, moraic nasal assimilation, sokuon closures; deterministic for a request and seed.",
415
+ song: "Note lists, compact lyrics/melody/beats scores, and MML; ties, melismas, re-articulation, per-note velocity and vibrato, portamento, multi-mora lyrics per note; deterministic.",
208
416
  maxSeconds: LIMITS.formantSeconds,
417
+ inspection: "validate and plan return readings, phonemes, note timing, pitch range and warnings before any audio is rendered.",
209
418
  },
210
419
  voicevox: {
211
420
  external: true,
212
421
  endpoint: { default: "http://127.0.0.1:50021", env: ["KONGYOROID_ENDPOINT", "VOICEVOX_URL"] },
213
- speech: "Japanese text with kanji; readings adjustable via kana notation and the user dictionary.",
214
- song: "Score of one-mora notes rendered by a singing style; timing and pitch predicted by a teacher style.",
215
- styles: "Discover with the voices command; select by id or by name. Giving a style selects this engine.",
422
+ speech: "Japanese text with kanji; readings adjustable via kana notation and the VOICEVOX user dictionary.",
423
+ song: "One-mora notes rendered by a singing style; timing and pitch predicted by a teacher style.",
424
+ styles: "Discover with voices --engine voicevox; select by id or by name. Giving a style selects this engine.",
216
425
  },
217
426
  },
218
427
  commands: [
219
428
  "speak",
220
429
  "sing",
221
430
  "render",
431
+ "validate",
432
+ "plan",
222
433
  "batch",
223
434
  "reading",
435
+ "inspect",
224
436
  "voices",
225
437
  "doctor",
226
438
  "dict",
439
+ "cache",
227
440
  "play",
228
441
  "schema",
229
442
  "capabilities",
@@ -231,11 +444,13 @@ export const CAPABILITIES = {
231
444
  env: {
232
445
  KONGYOROID_ENDPOINT: "VOICEVOX ENGINE base URL.",
233
446
  VOICEVOX_URL: "Alias of KONGYOROID_ENDPOINT.",
234
- KONGYOROID_ENGINE: "Default engine: voicevox, formant, or auto.",
235
- KONGYOROID_SPEAKER: "Default speech style (id or name).",
236
- KONGYOROID_SINGER: "Default singing style (id or name).",
237
- KONGYOROID_TEACHER: "Default singing teacher style (id or name).",
238
- KONGYOROID_CACHE_DIR: "Directory for the on-disk render cache.",
447
+ KONGYOROID_ENGINE: "Default engine: formant, voicevox, or auto.",
448
+ KONGYOROID_VOICE: "Default built-in voice id.",
449
+ KONGYOROID_SPEAKER: "Default VOICEVOX speech style (id or name).",
450
+ KONGYOROID_SINGER: "Default VOICEVOX singing style (id or name).",
451
+ KONGYOROID_TEACHER: "Default VOICEVOX singing teacher style (id or name).",
452
+ KONGYOROID_CACHE_DIR: "Directory for the on-disk render cache (a kongyoroid-cache subdirectory is created inside it).",
453
+ KONGYOROID_DICTIONARY: "Path of the local reading dictionary JSON file.",
239
454
  },
240
455
  limits: {
241
456
  textChars: LIMITS.textChars,
@@ -245,23 +460,11 @@ export const CAPABILITIES = {
245
460
  inputBytes: LIMITS.inputBytes,
246
461
  batchLines: LIMITS.batchLines,
247
462
  concurrency: LIMITS.concurrency,
463
+ dictionaryEntries: LIMITS.dictionaryEntries,
248
464
  },
249
465
  exitCodes: EXIT_CODES,
250
- errorCodes: [
251
- "INVALID_INPUT",
252
- "UNSUPPORTED_TEXT",
253
- "ENGINE_UNAVAILABLE",
254
- "ENGINE_HTTP",
255
- "ENGINE_REJECTED",
256
- "ENGINE_PROTOCOL",
257
- "TIMEOUT",
258
- "ABORTED",
259
- "QUEUE_FULL",
260
- "IO_ERROR",
261
- "PLAYER_UNAVAILABLE",
262
- "INTERNAL",
263
- ],
264
- stdout: "One JSON object per line. With --output - the WAV bytes go to stdout and the JSON goes to stderr.",
265
- stderr: "Errors as one JSON object: { ok: false, error: { code, message, path?, hint?, retryable } }.",
466
+ errorCodes: ERROR_CODES,
467
+ stdout: "One JSON object per line. With --output - the audio bytes go to stdout and the JSON goes to stderr.",
468
+ stderr: "Errors as one JSON object: { ok: false, error: { code, message, path?, hint?, retryable, repairOptions?, sourceSpan?, surface? } }.",
266
469
  };
267
470
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Continuation } from "./score.ts";
2
+ export interface MmlNote {
3
+ readonly key: number | null;
4
+ readonly beats: number;
5
+ readonly continuation: Continuation;
6
+ readonly velocity: number | undefined;
7
+ readonly lyric: string | undefined;
8
+ readonly offset: number;
9
+ }
10
+ export interface MmlResult {
11
+ readonly tempo: number | undefined;
12
+ readonly notes: readonly MmlNote[];
13
+ }
14
+ export declare function parseMml(text: string, path?: string): MmlResult;
15
+ //# sourceMappingURL=mml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mml.d.ts","sourceRoot":"","sources":["../../src/song/mml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,CAAC;CACpC;AAgBD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,GAAG,SAAS,CAsKxE"}