@kongyo2/kongyoroid 1.0.0 → 2.1.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 (206) hide show
  1. package/README.md +239 -0
  2. package/dist/cache.d.ts +32 -7
  3. package/dist/cache.d.ts.map +1 -1
  4. package/dist/cache.js +139 -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 +346 -0
  13. package/dist/cli/help.js.map +1 -0
  14. package/dist/cli.js +729 -243
  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 +12 -0
  25. package/dist/io.d.ts.map +1 -1
  26. package/dist/io.js +161 -6
  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 +787 -87
  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/player.d.ts.map +1 -1
  37. package/dist/player.js +18 -22
  38. package/dist/player.js.map +1 -1
  39. package/dist/request.d.ts +1 -0
  40. package/dist/request.d.ts.map +1 -1
  41. package/dist/request.js +102 -15
  42. package/dist/request.js.map +1 -1
  43. package/dist/schema.d.ts +3 -0
  44. package/dist/schema.d.ts.map +1 -1
  45. package/dist/schema.js +271 -68
  46. package/dist/schema.js.map +1 -1
  47. package/dist/song/mml.d.ts +15 -0
  48. package/dist/song/mml.d.ts.map +1 -0
  49. package/dist/song/mml.js +184 -0
  50. package/dist/song/mml.js.map +1 -0
  51. package/dist/song/pitch.d.ts.map +1 -0
  52. package/dist/{pitch.js → song/pitch.js} +1 -1
  53. package/dist/song/pitch.js.map +1 -0
  54. package/dist/song/score.d.ts +92 -0
  55. package/dist/song/score.d.ts.map +1 -0
  56. package/dist/song/score.js +454 -0
  57. package/dist/song/score.js.map +1 -0
  58. package/dist/synth/acoustics.d.ts +27 -0
  59. package/dist/synth/acoustics.d.ts.map +1 -0
  60. package/dist/synth/acoustics.js +608 -0
  61. package/dist/synth/acoustics.js.map +1 -0
  62. package/dist/synth/analysis.d.ts +22 -0
  63. package/dist/synth/analysis.d.ts.map +1 -0
  64. package/dist/synth/analysis.js +170 -0
  65. package/dist/synth/analysis.js.map +1 -0
  66. package/dist/synth/engine.d.ts +115 -0
  67. package/dist/synth/engine.d.ts.map +1 -0
  68. package/dist/synth/engine.js +223 -0
  69. package/dist/synth/engine.js.map +1 -0
  70. package/dist/synth/filters.d.ts +60 -0
  71. package/dist/synth/filters.d.ts.map +1 -0
  72. package/dist/synth/filters.js +166 -0
  73. package/dist/synth/filters.js.map +1 -0
  74. package/dist/synth/glottal.d.ts +20 -0
  75. package/dist/synth/glottal.d.ts.map +1 -0
  76. package/dist/synth/glottal.js +76 -0
  77. package/dist/synth/glottal.js.map +1 -0
  78. package/dist/synth/phonemes.d.ts +42 -0
  79. package/dist/synth/phonemes.d.ts.map +1 -0
  80. package/dist/synth/phonemes.js +311 -0
  81. package/dist/synth/phonemes.js.map +1 -0
  82. package/dist/synth/plan.d.ts +127 -0
  83. package/dist/synth/plan.d.ts.map +1 -0
  84. package/dist/synth/plan.js +81 -0
  85. package/dist/synth/plan.js.map +1 -0
  86. package/dist/synth/prosody.d.ts +38 -0
  87. package/dist/synth/prosody.d.ts.map +1 -0
  88. package/dist/synth/prosody.js +120 -0
  89. package/dist/synth/prosody.js.map +1 -0
  90. package/dist/synth/random.d.ts +15 -0
  91. package/dist/synth/random.d.ts.map +1 -0
  92. package/dist/synth/random.js +59 -0
  93. package/dist/synth/random.js.map +1 -0
  94. package/dist/synth/renderer.d.ts +77 -0
  95. package/dist/synth/renderer.d.ts.map +1 -0
  96. package/dist/synth/renderer.js +343 -0
  97. package/dist/synth/renderer.js.map +1 -0
  98. package/dist/synth/song.d.ts +30 -0
  99. package/dist/synth/song.d.ts.map +1 -0
  100. package/dist/synth/song.js +453 -0
  101. package/dist/synth/song.js.map +1 -0
  102. package/dist/synth/speech.d.ts +49 -0
  103. package/dist/synth/speech.d.ts.map +1 -0
  104. package/dist/synth/speech.js +358 -0
  105. package/dist/synth/speech.js.map +1 -0
  106. package/dist/synth/stream.d.ts +26 -0
  107. package/dist/synth/stream.d.ts.map +1 -0
  108. package/dist/synth/stream.js +67 -0
  109. package/dist/synth/stream.js.map +1 -0
  110. package/dist/synth/textstream.d.ts +35 -0
  111. package/dist/synth/textstream.d.ts.map +1 -0
  112. package/dist/synth/textstream.js +209 -0
  113. package/dist/synth/textstream.js.map +1 -0
  114. package/dist/synth/voice.d.ts +64 -0
  115. package/dist/synth/voice.d.ts.map +1 -0
  116. package/dist/synth/voice.js +208 -0
  117. package/dist/synth/voice.js.map +1 -0
  118. package/dist/text/dictionary.d.ts +50 -0
  119. package/dist/text/dictionary.d.ts.map +1 -0
  120. package/dist/text/dictionary.js +0 -0
  121. package/dist/text/dictionary.js.map +1 -0
  122. package/dist/text/frontend.d.ts +35 -0
  123. package/dist/text/frontend.d.ts.map +1 -0
  124. package/dist/text/frontend.js +559 -0
  125. package/dist/text/frontend.js.map +1 -0
  126. package/dist/text/lexicon.d.ts +10 -0
  127. package/dist/text/lexicon.d.ts.map +1 -0
  128. package/dist/text/lexicon.js +763 -0
  129. package/dist/text/lexicon.js.map +1 -0
  130. package/dist/{mora.d.ts → text/mora.d.ts} +15 -3
  131. package/dist/text/mora.d.ts.map +1 -0
  132. package/dist/{mora.js → text/mora.js} +87 -9
  133. package/dist/text/mora.js.map +1 -0
  134. package/dist/text/normalize.d.ts +34 -0
  135. package/dist/text/normalize.d.ts.map +1 -0
  136. package/dist/text/normalize.js +504 -0
  137. package/dist/text/normalize.js.map +1 -0
  138. package/dist/text/notation.d.ts +32 -0
  139. package/dist/text/notation.d.ts.map +1 -0
  140. package/dist/text/notation.js +182 -0
  141. package/dist/text/notation.js.map +1 -0
  142. package/dist/text/reading.d.ts +52 -0
  143. package/dist/text/reading.d.ts.map +1 -0
  144. package/dist/text/reading.js +32 -0
  145. package/dist/text/reading.js.map +1 -0
  146. package/dist/text/sentences.d.ts +11 -0
  147. package/dist/text/sentences.d.ts.map +1 -0
  148. package/dist/text/sentences.js +91 -0
  149. package/dist/text/sentences.js.map +1 -0
  150. package/dist/{text.d.ts → text/split.d.ts} +2 -2
  151. package/dist/text/split.d.ts.map +1 -0
  152. package/dist/{text.js → text/split.js} +2 -2
  153. package/dist/text/split.js.map +1 -0
  154. package/dist/types.d.ts +58 -3
  155. package/dist/types.d.ts.map +1 -1
  156. package/dist/version.d.ts +4 -0
  157. package/dist/version.d.ts.map +1 -1
  158. package/dist/version.js +5 -1
  159. package/dist/version.js.map +1 -1
  160. package/dist/voicevox/client.d.ts +1 -1
  161. package/dist/voicevox/client.d.ts.map +1 -1
  162. package/dist/voicevox/dictionary.js +1 -1
  163. package/dist/voicevox/dictionary.js.map +1 -1
  164. package/dist/voicevox/song.js +1 -1
  165. package/dist/voicevox/song.js.map +1 -1
  166. package/dist/voicevox/speech.d.ts +1 -0
  167. package/dist/voicevox/speech.d.ts.map +1 -1
  168. package/dist/voicevox/speech.js +8 -2
  169. package/dist/voicevox/speech.js.map +1 -1
  170. package/dist/wav.d.ts +1 -0
  171. package/dist/wav.d.ts.map +1 -1
  172. package/dist/wav.js +8 -6
  173. package/dist/wav.js.map +1 -1
  174. package/docs/cli.md +261 -0
  175. package/examples/batch.jsonl +4 -3
  176. package/examples/builtin/dictionary.json +7 -0
  177. package/examples/builtin/song-compact.json +13 -0
  178. package/examples/builtin/song-mml.json +9 -0
  179. package/examples/builtin/song-notes.json +25 -0
  180. package/examples/builtin/speech-dictionary.json +9 -0
  181. package/examples/builtin/speech-kana.json +7 -0
  182. package/examples/builtin/speech.json +7 -0
  183. package/package.json +10 -4
  184. package/dist/formant.d.ts +0 -34
  185. package/dist/formant.d.ts.map +0 -1
  186. package/dist/formant.js +0 -622
  187. package/dist/formant.js.map +0 -1
  188. package/dist/mora.d.ts.map +0 -1
  189. package/dist/mora.js.map +0 -1
  190. package/dist/notation.d.ts +0 -15
  191. package/dist/notation.d.ts.map +0 -1
  192. package/dist/notation.js +0 -114
  193. package/dist/notation.js.map +0 -1
  194. package/dist/pitch.d.ts.map +0 -1
  195. package/dist/pitch.js.map +0 -1
  196. package/dist/score.d.ts +0 -37
  197. package/dist/score.d.ts.map +0 -1
  198. package/dist/score.js +0 -166
  199. package/dist/score.js.map +0 -1
  200. package/dist/text.d.ts.map +0 -1
  201. package/dist/text.js.map +0 -1
  202. package/examples/song-notes.json +0 -24
  203. /package/dist/{pitch.d.ts → song/pitch.d.ts} +0 -0
  204. /package/examples/{song.json → voicevox/song.json} +0 -0
  205. /package/examples/{speech-kana.json → voicevox/speech-kana.json} +0 -0
  206. /package/examples/{speech.json → voicevox/speech.json} +0 -0
@@ -1,4 +1,4 @@
1
- import type { EngineScore } from "../score.ts";
1
+ import type { EngineScore } from "../song/score.ts";
2
2
  import type { OperationOptions, VoiceStyle } from "../types.ts";
3
3
  import type { AudioQuery, DictionaryWord, EngineAccentPhrase, EngineManifest, FrameAudioQuery, SupportedDevices, WordType } from "./api.ts";
4
4
  export declare const DEFAULT_ENDPOINT: string;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/voicevox/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/voicevox/client.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { invalid } from "../errors.js";
2
- import { kanaToMoras, toKatakana } from "../mora.js";
2
+ import { kanaToMoras, toKatakana } from "../text/mora.js";
3
3
  import { integer, literal, string } from "../validate.js";
4
4
  export const WORD_TYPES = ["PROPER_NOUN", "COMMON_NOUN", "VERB", "ADJECTIVE", "SUFFIX"];
5
5
  export function validateWord(draft, path = "$") {
@@ -1 +1 @@
1
- {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/voicevox/dictionary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dictionary.js","sourceRoot":"","sources":["../../src/voicevox/dictionary.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { engineScoreFrames, notesToEngineScore } from "../score.js";
1
+ import { engineScoreFrames, notesToEngineScore } from "../song/score.js";
2
2
  import { inspectWav } from "../wav.js";
3
3
  import { protocolError } from "./api.js";
4
4
  export function applyVibrato(query, depthCents, rateHz, frameRate) {
@@ -1 +1 @@
1
- {"version":3,"file":"song.js","sourceRoot":"","sources":["../../src/voicevox/song.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"song.js","sourceRoot":"","sources":["../../src/voicevox/song.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export interface SpeechSynthesis {
10
10
  export interface SpeechOptions extends OperationOptions {
11
11
  readonly concurrency?: number;
12
12
  }
13
+ export declare function semitonesToPitchScale(semitones: number, referenceHz?: number): number;
13
14
  export declare function querySeconds(query: AudioQuery): number;
14
15
  export declare function applySpeechSettings(phrases: readonly EngineAccentPhrase[], request: ResolvedSpeech, sampleRate: number, kana: string): AudioQuery;
15
16
  export declare function synthesizeSpeech(client: VoicevoxClient, request: ResolvedSpeech, speaker: StyleSelection, options?: SpeechOptions): Promise<SpeechSynthesis>;
@@ -1 +1 @@
1
- {"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/voicevox/speech.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAYtD;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,UAAU,CAeZ;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAkD1B;AAiBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAelF"}
1
+ {"version":3,"file":"speech.d.ts","sourceRoot":"","sources":["../../src/voicevox/speech.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEpF,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,GAAE,MAAY,GAAG,MAAM,CAI1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAYtD;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,kBAAkB,EAAE,EACtC,OAAO,EAAE,cAAc,EACvB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,UAAU,CAeZ;AAED,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,cAAc,EACvB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAkD1B;AAiBD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,GAAG,MAAM,CAelF"}
@@ -1,9 +1,15 @@
1
1
  import { mapConcurrent } from "../concurrency.js";
2
2
  import { invalid } from "../errors.js";
3
3
  import { LIMITS } from "../limits.js";
4
- import { splitText } from "../text.js";
4
+ import { splitText } from "../text/split.js";
5
5
  import { concatWav, inspectWav } from "../wav.js";
6
6
  import { protocolError } from "./api.js";
7
+ export function semitonesToPitchScale(semitones, referenceHz = 200) {
8
+ if (semitones === 0)
9
+ return 0;
10
+ const ratio = 1 + (semitones * Math.LN2) / 12 / Math.log(referenceHz);
11
+ return Math.max(-1, Math.min(1, Math.log2(ratio)));
12
+ }
7
13
  export function querySeconds(query) {
8
14
  let seconds = query.prePhonemeLength + query.postPhonemeLength;
9
15
  for (const phrase of query.accent_phrases) {
@@ -21,7 +27,7 @@ export function applySpeechSettings(phrases, request, sampleRate, kana) {
21
27
  return {
22
28
  accent_phrases: phrases,
23
29
  speedScale: request.speed,
24
- pitchScale: request.pitch,
30
+ pitchScale: request.pitch ?? semitonesToPitchScale(request.pitchSemitones),
25
31
  intonationScale: request.intonation,
26
32
  volumeScale: request.volume,
27
33
  prePhonemeLength: request.prePause,
@@ -1 +1 @@
1
- {"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/voicevox/speech.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"speech.js","sourceRoot":"","sources":["../../src/voicevox/speech.ts"],"names":[],"mappings":"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"}
package/dist/wav.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { AudioInfo } from "./types.ts";
2
+ export declare const STREAMING_LENGTH: number;
2
3
  export interface WavLayout extends AudioInfo {
3
4
  readonly dataOffset: number;
4
5
  readonly dataLength: number;
package/dist/wav.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wav.d.ts","sourceRoot":"","sources":["../src/wav.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAO5C,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,UAAU,CAwB9F;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,UAAU,CAUlG;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAK3E;AAUD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAoDvD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAStD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAczG;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAE1E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,UAAU,CA0B1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAe1D"}
1
+ {"version":3,"file":"wav.d.ts","sourceRoot":"","sources":["../src/wav.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAM5C,eAAO,MAAM,gBAAgB,EAAE,MAAmB,CAAC;AAEnD,MAAM,WAAW,SAAU,SAAQ,SAAS;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,UAAU,CAwB9F;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,GAAE,MAAU,GAAG,UAAU,CAUlG;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAK3E;AAUD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,CAqDvD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAStD;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAczG;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAE1E;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,UAAU,GAAE,MAAU,GAAG,UAAU,CA0B1F;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,CAe1D"}
package/dist/wav.js CHANGED
@@ -3,6 +3,7 @@ const RIFF = 0x52494646;
3
3
  const WAVE = 0x57415645;
4
4
  const FMT = 0x666d7420;
5
5
  const DATA = 0x64617461;
6
+ export const STREAMING_LENGTH = 0xffffffff;
6
7
  export function wavHeader(frames, sampleRate, channels = 1) {
7
8
  if (!Number.isSafeInteger(frames) || frames < 0 || frames * channels * 2 > 0xfffffff0) {
8
9
  invalid("$.frames", "Frame count is not representable in a WAV file.");
@@ -59,10 +60,7 @@ export function inspectWav(bytes) {
59
60
  const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
60
61
  if (view.getUint32(0) !== RIFF || view.getUint32(8) !== WAVE)
61
62
  malformed("missing RIFF/WAVE signature");
62
- const declared = view.getUint32(4, true) + 8;
63
- if (declared > bytes.byteLength)
64
- malformed(`RIFF declares ${declared} bytes but only ${bytes.byteLength} were received`);
65
- const end = declared;
63
+ const end = Math.min(view.getUint32(4, true) + 8, bytes.byteLength);
66
64
  let format = 0;
67
65
  let channels = 0;
68
66
  let rate = 0;
@@ -73,8 +71,9 @@ export function inspectWav(bytes) {
73
71
  let position = 12;
74
72
  while (position + 8 <= end) {
75
73
  const tag = view.getUint32(position);
76
- const length = view.getUint32(position + 4, true);
77
74
  const start = position + 8;
75
+ const declared = view.getUint32(position + 4, true);
76
+ const length = tag === DATA && declared === STREAMING_LENGTH ? end - start : declared;
78
77
  if (tag === FMT) {
79
78
  if (format !== 0 || length < 16 || start + 16 > end)
80
79
  malformed("bad fmt chunk");
@@ -83,8 +82,11 @@ export function inspectWav(bytes) {
83
82
  rate = view.getUint32(start + 4, true);
84
83
  align = view.getUint16(start + 12, true);
85
84
  bits = view.getUint16(start + 14, true);
86
- if (format === 0xfffe && length >= 26)
85
+ if (format === 0xfffe) {
86
+ if (length < 26 || start + 26 > end)
87
+ malformed("bad fmt chunk");
87
88
  format = view.getUint16(start + 24, true);
89
+ }
88
90
  }
89
91
  else if (tag === DATA) {
90
92
  if (dataOffset >= 0)
package/dist/wav.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wav.js","sourceRoot":"","sources":["../src/wav.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wav.js","sourceRoot":"","sources":["../src/wav.ts"],"names":[],"mappings":"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"}
package/docs/cli.md ADDED
@@ -0,0 +1,261 @@
1
+ # CLI リファレンス
2
+
3
+ すべてのコマンドは標準出力に **1 行 1 JSON** を書き、失敗時は標準エラーに `{"ok":false,"error":{...}}` を書いて 0 以外で終了します。`--output -` で音声を標準出力へ流す時だけ、JSON は標準エラーに出ます。`kongyoroid <command> --help` で各コマンドのフラグと実例を表示します。
4
+
5
+ ## 共通の約束
6
+
7
+ ### 終了コード
8
+
9
+ | コード | 意味 | 典型的な原因 |
10
+ | --- | --- | --- |
11
+ | 0 | 成功 | |
12
+ | 1 | 内部エラー | バグ。`error.detail` を添えて報告 |
13
+ | 2 | 入力エラー | 不正な JSON、未知のプロパティ、読めない文字、短すぎる音符、音域外 |
14
+ | 3 | エンジン利用不可 | VOICEVOX 未起動・タイムアウト、フロントエンドのロード失敗 |
15
+ | 4 | 入出力エラー | 既存ファイルの上書き拒否、読めない入力ファイル、再生できるプレイヤーが無い |
16
+ | 130 | 中断 | SIGINT / AbortSignal |
17
+
18
+ ### エラーオブジェクト
19
+
20
+ ```json
21
+ {"ok":false,"error":{
22
+ "code":"UNREADABLE_TEXT",
23
+ "message":"Unreadable text \"彁\": the frontend has no reading for it and would drop it silently.",
24
+ "retryable":false,
25
+ "path":"$.text",
26
+ "hint":"Give the reading in kana, add a dictionary entry with surface and reading, or remove the characters.",
27
+ "detail":{"unreadable":[{"surface":"彁","sourceSpan":{"start":0,"end":1,"unit":"unicode-code-point"}}]},
28
+ "repairOptions":[
29
+ {"action":"provide-kana","description":"Pass the whole pronunciation in the kana field.","path":"$.kana"},
30
+ {"action":"add-dictionary-entry","description":"Add a dictionary entry { surface: \"彁\", reading: <katakana> }.","path":"$.dictionary"},
31
+ {"action":"remove-characters","description":"Remove or rewrite the unreadable characters in text.","path":"$.text"}],
32
+ "sourceSpan":{"start":0,"end":1,"unit":"unicode-code-point"},
33
+ "surface":"彁"}}
34
+ ```
35
+
36
+ | フィールド | 内容 |
37
+ | --- | --- |
38
+ | `code` | `INVALID_INPUT` `UNSUPPORTED_TEXT` `UNREADABLE_TEXT` `NOTE_TOO_SHORT` `PITCH_OUT_OF_RANGE` `FRONTEND_UNAVAILABLE` `ENGINE_UNAVAILABLE` `ENGINE_HTTP` `ENGINE_REJECTED` `ENGINE_PROTOCOL` `TIMEOUT` `QUEUE_FULL` `IO_ERROR` `PLAYER_UNAVAILABLE` `ABORTED` `INTERNAL` |
39
+ | `path` | 問題の場所。リクエストは `$.notes[1].beats`、フラグは `$flags.speed`、標準入力は `$.input` |
40
+ | `retryable` / `retryAfterMs` | そのまま再送して直る可能性があるか |
41
+ | `repairOptions[]` | `action` (`provide-kana` `add-dictionary-entry` `remove-characters` `increase-duration` `allow-consonant-compression` `use-vowel-continuation` `lower-pitch` `raise-sample-rate` `clamp-pitch` `shorten-input` `split-input` `use-force` `start-engine` `use-formant-engine` `retry-later`) と説明、対象 `path` |
42
+ | `sourceSpan` / `surface` | 元テキスト内の位置 (Unicode コードポイント単位、`end` は排他的) と該当文字列 |
43
+ | `detail` | コード固有の構造化情報 (`availableMs` / `requiredMs` / `noteId`、`unreadable[]`、`alignment` など) |
44
+
45
+ ### 警告と助言
46
+
47
+ 成功時の JSON には `warnings[]` (`severity`: `warning` / `advice`) と `adjustments[]` (自動で変えたこと) が入ります。主なコード:
48
+
49
+ | コード | 種別 | 意味 |
50
+ | --- | --- | --- |
51
+ | `UNREADABLE_TEXT_SKIPPED` | warning | `--no-strict-reading` で読み飛ばした文字 |
52
+ | `ASCII_WORD_UNKNOWN` | advice | レキシコンに無い 5 文字以上の英単語。文字ごとに読まれる可能性 |
53
+ | `URL_READ_LITERALLY` / `EMAIL_READ_LITERALLY` | advice | URL / メールアドレスを記号ごと読み下した |
54
+ | `HEURISTIC_READING` | advice | フロントエンド無しでかなを機械的に読んだ |
55
+ | `F0_OUTSIDE_VOICE_RANGE` | warning | ボイスの得意音域を外れている |
56
+ | `CONSONANT_HEAVILY_COMPRESSED` | warning | 子音を 45 % 未満まで短縮した |
57
+ | `CONSONANT_TAKEN_FROM_NOTE` / `CONSONANT_COMPRESSED` | adjustment | 子音が音符内に入った / 短縮された |
58
+ | `PLAN_UNAVAILABLE` | warning | `--plan-out` を VOICEVOX の描画に付けた (計画は内蔵エンジン専用)。音声は書かれる |
59
+ | `CACHE_READ_FAILED` / `CACHE_WRITE_FAILED` | warning | ディスクキャッシュの読み書きに失敗した (描画は成功) |
60
+
61
+ `--diagnostics compact` を付けると、警告を 1 行ずつ次の形式で出します (`speak` 系は標準エラー、`validate` は標準出力)。
62
+
63
+ ```
64
+ <request>:1:1: advice kongyoroid(ASCII_WORD_UNKNOWN): The word "kongyoroidsynth" is not in the built-in lexicon; the frontend may spell it letter by letter. help: Add a dictionary entry with its katakana reading, or write the reading in kana.
65
+ ```
66
+
67
+ 形式は `場所: 重要度 kongyoroid(コード): メッセージ help: 助言`。場所は `--input` のファイル名 (無ければ `<request>`) に、`sourceSpan` があれば `:行:桁` (1 始まり)、無ければ `:$.path` を続けます。
68
+
69
+ ### 共通フラグ
70
+
71
+ | フラグ | 内容 |
72
+ | --- | --- |
73
+ | `--engine formant\|voicevox\|auto` | エンジン。既定 `formant`。VOICEVOX のスタイルを指定すると自動的に `voicevox` |
74
+ | `--voice ID` | 内蔵ボイス (`neutral` `female` `male` `child` `soft` `bright` `deep`) |
75
+ | `--dictionary FILE` | ローカル辞書 JSON (`KONGYOROID_DICTIONARY`) |
76
+ | `--cache-dir DIR` / `--no-cache` | ディスクキャッシュ (`DIR/kongyoroid-cache/` を使う) / 無効化 |
77
+ | `--endpoint URL` `--timeout-ms N` `--retries N` | VOICEVOX ENGINE の接続設定 |
78
+ | `--concurrency N` | バッチの並列数と HTTP の同時接続数 |
79
+
80
+ 出力系フラグ (`speak` `sing` `render`):
81
+
82
+ | フラグ | 内容 |
83
+ | --- | --- |
84
+ | `-o, --output FILE\|-` | WAV の出力先 (既定 `kongyoroid-<kind>-<hash>.wav`)。`-` で標準出力 |
85
+ | `--force` | 既存ファイルを置き換える (同一内容なら `--force` 無しでも成功し `unchanged: true`) |
86
+ | `--play` | 書き出し後にシステムプレイヤーで再生 |
87
+ | `--plan-out FILE\|-` | 合成計画 (読み・音素・時刻) も JSON で書く。内蔵エンジン専用で、VOICEVOX の描画では `PLAN_UNAVAILABLE` の警告になる |
88
+ | `--dry-run` | 検証と計画だけ (出力は `validate` と同じ)。`--stream` と併用しても何も書かない |
89
+ | `--diagnostics json\|compact` | 警告の出し方 |
90
+
91
+ 環境変数: `KONGYOROID_ENGINE` `KONGYOROID_VOICE` `KONGYOROID_DICTIONARY` `KONGYOROID_CACHE_DIR` `KONGYOROID_ENDPOINT` (別名 `VOICEVOX_URL`) `KONGYOROID_SPEAKER` `KONGYOROID_SINGER` `KONGYOROID_TEACHER`。
92
+
93
+ ## speak
94
+
95
+ ```
96
+ kongyoroid speak (--text TEXT | --input FILE|-) [options]
97
+ ```
98
+
99
+ | フラグ | 内容 |
100
+ | --- | --- |
101
+ | `-t, --text TEXT` / `-i, --input FILE\|-` | 読み上げるテキスト / ファイル・標準入力から。入力が `{` で始まればリクエスト JSON (`kind: "speech"`) として読み、フラグが上書きする (`--stream` でも同じ)。両方は指定できない |
102
+ | `--kana NOTATION` | かな記法で発音を指定 (テキスト解析を飛ばす)。`--text` を省くと `--kana` がテキストを兼ねる。`--stream` とは併用できない |
103
+ | `--dict-entry SURFACE=READING[:ACCENT]` | 一回限りの読み指定 (複数可) |
104
+ | `--no-strict-reading` | 読めない文字を警告付きで飛ばす |
105
+ | `--speed N` `--pitch-semitones N` `--pitch N` `--intonation N` | 話速 0.25–4、半音シフト −24..24、VOICEVOX 互換 pitchScale、抑揚 0–3 |
106
+ | `--volume N` / `--gain-db N` | 出力レベル。排他で、JSON 入力にもう一方があればフラグ側が置き換える (`--pitch` / `--pitch-semitones` も同様) |
107
+ | `--breathiness N` | 声門の張り −1..1.5 |
108
+ | `--pre-pause S` `--post-pause S` `--pause-length S` `--pause-scale N` | 前後無音、`、` の絶対長、ポーズ倍率 |
109
+ | `--no-upspeak` | 疑問文末を上げない |
110
+ | `--sample-rate HZ` `--seed N` | 8000–48000 Hz、ノイズの種 |
111
+ | `--speaker ID\|NAME` `--split sentence\|paragraph\|none` | VOICEVOX のスタイルと分割単位 |
112
+ | `--stream` `--format wav\|pcm\|ndjson` `--progress` `--flush-ms N` | ストリーミング (後述) |
113
+
114
+ 出力 (1 行):
115
+
116
+ ```json
117
+ {"ok":true,"path":"/work/out.wav","written":true,"unchanged":false,"engine":"formant","engineVersion":"formant-2.1.0","kind":"speech","voice":"neutral","styles":{},"kana":"テ'_ストガ/サン'ゲン/シッパイ/シマ'_シタ。ロ'グヲ/カクニン/_シテ/クダサ'イ。","chunks":2,"cached":false,"sha256":"…","requestHash":"…","bytes":209622,"sampleRate":24000,"channels":1,"frames":104789,"durationSeconds":4.366,"peak":0.7198,"rms":0.0925,"limitedSamples":0,"elapsedMs":1092.74,"timings":{"readMs":887.4,"planMs":18.6,"renderMs":179.24,"encodeMs":0,"totalMs":1092.74},"warnings":[],"adjustments":[]}
118
+ ```
119
+
120
+ `chunks` は文の数です。文は `。!?` と改行で区切られ、直後の閉じ括弧 (`」』)` など) は前の文に付きます。
121
+
122
+ `--output -` の時は WAV バイト列が標準出力、同じ JSON (`"output":"stdout"`) が標準エラーに出ます。
123
+
124
+ ### ストリーミング (`--stream`)
125
+
126
+ テキストを `。!?` と改行で文に分け、文が確定するたびに合成します。次の文の計画を先読みするので途切れません。チャンクが文末記号で終わるときは、閉じ括弧 (`」)` など) が続くかどうかを次の文字で確かめるまでその文を保留します (次のチャンク、`--flush-ms`、入力の終わりで確定)。そのため文の切れ目はチャンクの切り方に依存しません。`--input` の内容が `{` で始まればリクエスト JSON として読み、その `text` を流します (`--kana` は使えません)。読めるかどうかはフロントエンドが決めます。`…` や `!`、絵文字だけの断片のように読みが得られない文は一括合成と同じく読み飛ばし、最後まで 1 文も読めなければ一括合成と同じ `INVALID_INPUT` (`$.text`) で失敗します。
127
+
128
+ | フラグ | 内容 |
129
+ | --- | --- |
130
+ | `--format wav\|pcm\|ndjson` | 標準出力の形式 (下表)。ファイル出力は常に WAV |
131
+ | `--progress` | 文ごとの `sentence` イベントを標準エラーに出す |
132
+ | `--flush-ms N` | 文末記号が届かないまま N ms (1–600000) 入力が止まったら、溜まっている断片を 1 文として読む。時間は最後の入力から数える (前の文の合成中に経過した分も含む)。既定は文末記号か改行が来るまで待つ |
133
+
134
+ | `--format` | 標準出力の内容 |
135
+ | --- | --- |
136
+ | `pcm` | 生の s16le モノラル PCM。サンプルレートは `--sample-rate` (既定 24000) |
137
+ | `wav` | 長さ未確定 (`0xFFFFFFFF`) ヘッダー付き WAV。パイプ再生向け。`inspect` はこのヘッダーのまま途中で切れたファイルも読める |
138
+ | `ndjson` | 1 行 1 イベント (下記) |
139
+
140
+ NDJSON のイベント:
141
+
142
+ ```json
143
+ {"type":"sentence","index":0,"text":"最初の文です。","kana":"サイショノ/ブ'ンデ_ス。","durationSeconds":1.144,"startSeconds":0,"warnings":[]}
144
+ {"type":"audio","sequence":0,"sentence":0,"sampleRate":24000,"encoding":"s16le","channels":1,"frames":1200,"startFrame":0,"base64":"…"}
145
+ {"type":"end","ok":true,"operation":"speak","stream":true,"format":"ndjson","output":"stdout","sentences":2,"frames":51432,"durationSeconds":2.143,"sampleRate":24000}
146
+ ```
147
+
148
+ `-o FILE` と組み合わせるとファイルへ書き、終了時にヘッダーを書き戻します (入力が空でも 0 フレームの WAV を書き、`"written": true` を返します)。文間のポーズは次の文の先頭に付き、`--post-pause` は最後に 1 回だけ付くので、一括合成と同じ尺になります。`--stream --dry-run` は入力全体を `validate` して何も書きません。
149
+
150
+ ## sing
151
+
152
+ ```
153
+ kongyoroid sing (--lyrics KANA --melody NOTES | --mml MML [--lyrics KANA] | --input FILE|-) [options]
154
+ ```
155
+
156
+ | フラグ | 内容 |
157
+ | --- | --- |
158
+ | `--lyrics KANA` | かな歌詞。有音の音符 1 つにつき 1 モーラ消費 |
159
+ | `--melody NOTES` | 空白区切り: 音名 (`C4` `F#4` `Bb3`)、MIDI 番号、`R` 休符、`~` タイ、`~G4` メリスマ、`\|` は無視 |
160
+ | `--beats LIST` | 音符ごとの拍 (`"1 1 2 0.5"`)。1 つだけなら全音符に適用。既定 1 |
161
+ | `--mml MML` | MML 譜 (`t120 o4 l8 c d e f g4 r4 e&e`)。`t` テンポ、`o` オクターブ、`< >`、`l` 既定長 (1–256)、`v` ベロシティ、`n60` MIDI、`r` 休符、`&` タイ/メリスマ、`[きゃ]` 歌詞、付点 |
162
+ | `-i, --input FILE\|-` | 音符リストを含むリクエスト JSON (フラグが優先。`--volume` / `--gain-db` は JSON のもう一方を置き換える)。譜面の指定が 1 つも無いと `INVALID_INPUT` (`$flags.melody`) |
163
+ | `--tempo BPM` `--transpose N` | 20–400 (既定 120 か MML の値)、半音 −48..48 |
164
+ | `--vibrato-depth CENTS` `--vibrato-rate HZ` `--vibrato-delay-ms MS` `--vibrato-fade-ms MS` | ビブラート (既定 30 cent、5.5 Hz、180 ms 後から 250 ms かけて)。JSON 入力の `vibrato` オブジェクトや `vibratoDepth` / `vibratoRate` には該当フィールドだけ上書きして混ぜる |
165
+ | `--portamento-ms MS` | つながった音符間のピッチ移行 (既定 60、0 で階段) |
166
+ | `--scoop-cents N` `--scoop-ms MS` | フレーズ頭のしゃくり |
167
+ | `--no-consonant-compression` | 子音を短縮せず `NOTE_TOO_SHORT` で失敗 |
168
+ | `--lead-in S` `--lead-out S` | 前後の休符 (既定 0.16) |
169
+ | `--singer` `--teacher` | VOICEVOX の歌唱スタイル |
170
+
171
+ 音符リスト (`--input` / `render`) の 1 音符:
172
+
173
+ | フィールド | 内容 |
174
+ | --- | --- |
175
+ | `id` | 安定した識別子 (既定 `n1`…)。計画とエラーに出る |
176
+ | `key` | MIDI 番号、音名、`null` (休符) |
177
+ | `beats` | 拍 (四分音符 = 1) |
178
+ | `lyric` | かな 1〜8 モーラ。`ー` は前の母音を伸ばす。休符は空 |
179
+ | `continuation` | `tie` (同じ高さで伸ばす) / `melisma` (高さを変えて伸ばす)。直前の有音音符に続く必要あり |
180
+ | `articulation` | `auto` (同じ母音の連続は再アタック) / `legato` / `rearticulate` |
181
+ | `velocity` / `gainDb` | 1–127 (100 が基準) / dB。どちらか一方 |
182
+ | `portamentoMs` | この音符への移行時間 |
183
+ | `vibrato` | `{depthCents, rateHz, delayMs, fadeMs}` または `false` |
184
+
185
+ 出力は `speak` と同じ形式です。`plan` を使うと音符ごとの時刻を確認できます。
186
+
187
+ ## render / validate / plan
188
+
189
+ ```
190
+ kongyoroid render --input FILE|- [options]
191
+ kongyoroid validate (--input FILE|- | --text TEXT | --lyrics KANA --melody NOTES | --mml MML) [options]
192
+ kongyoroid plan (--input FILE|- | --text TEXT | --lyrics KANA --melody NOTES | --mml MML) [--detail summary|phonemes|acoustics]
193
+ ```
194
+
195
+ `render` は `kongyoroid schema` の JSON Schema に従うリクエストを描画します。`render` がリクエストに上書きできるフラグは `--engine` と `--voice` だけで、それ以外の読み上げ・歌唱フラグは受け付けません (`INVALID_INPUT`)。`validate` と `plan` (および `speak` `sing`) では、`--input` の JSON に対して読み上げなら `--kana` `--dict-entry` などの読み上げフラグ、歌唱なら `--tempo` などの歌唱フラグがリクエストの値を上書きします (`--dict-entry` はリクエストの `dictionary` に追加)。`validate` は描画せず次を返します。
196
+
197
+ ```json
198
+ {"ok":true,"operation":"validate","engine":"formant","kind":"speech","renderable":true,"estimate":{"durationSeconds":0.588,"frames":14108,"wavBytes":28260,"sampleRate":24000},"voice":"neutral","reading":{"kana":"カンジ'。","frontend":"notation","moraCount":3},"notes":null,"warnings":[],"adjustments":[],"requestHash":"…","planHash":"…","request":{…}}
199
+ ```
200
+
201
+ `plan` は `plan.reading` (アクセント句と `accentSource`、`dictionaryHits`)、`plan.moras[]` (`startSeconds` / `endSeconds` / `phonemes`)、`plan.notes[]` (`startSeconds` / `vowelStartSeconds` / `endSeconds` / `sustainId` / `continuation` / `articulation`)、`plan.f0` (`min` / `max`)、`plan.frames`、`plan.wavBytes` を返します。`--detail phonemes` で音素ごとの時刻、`--detail acoustics` でキーフレーム (フォルマント周波数・帯域幅・音源レベル) まで出ます。
202
+
203
+ ## batch
204
+
205
+ ```
206
+ kongyoroid batch --input FILE|- --output-dir DIR [--force] [--concurrency N] [--stop-on-error]
207
+ ```
208
+
209
+ 入力は 1 行 1 ジョブの JSONL (`{"id":"name","request":{...}}`、`kongyoroid schema --kind batch`)。行が届き次第処理し (標準入力なら長寿命セッションとして使える)、完了順に 1 行ずつ結果を出します。失敗した行があっても続行し、終了コードは最悪の結果です。
210
+
211
+ ```json
212
+ {"ok":true,"id":"a","line":1,"path":"/work/out/a.wav","written":true,"unchanged":false,"engine":"formant",…}
213
+ {"ok":false,"id":"b","line":2,"error":{"code":"NOTE_TOO_SHORT",…}}
214
+ ```
215
+
216
+ ## reading
217
+
218
+ ```
219
+ kongyoroid reading (--text TEXT | --input FILE|-) [--kana NOTATION] [--dict-entry …] [--no-strict-reading] [--engine voicevox --speaker ID]
220
+ ```
221
+
222
+ ```json
223
+ {"ok":true,"operation":"reading","text":"kongyoroidはLLM向けです","engine":"formant","frontend":"jpreprocess","kana":"コンギョロイドワ/エルエルエ'ムムケデ_ス。","speaker":null,"warnings":[],
224
+ "dictionaryHits":[{"surface":"kongyoroid","reading":"コンギョロイド","accent":0,"source":"dictionary","applied":true},{"surface":"LLM","reading":"エルエルエム","accent":5,"source":"lexicon","applied":true}],
225
+ "sentences":[{"text":"kongyoroidはLLM向けです","kana":"…","start":0,"end":18}],
226
+ "phrases":[{"text":"コンギョロイドワ","accent":0,"accentSource":"dictionary","boundary":"phrase","pause":false,"interrogative":false,"moras":[{"text":"コ","consonant":"k","vowel":"o",…}]},…]}
227
+ ```
228
+
229
+ `accentSource` は `frontend` (jpreprocess)、`dictionary` (ローカル辞書)、`lexicon` (内蔵レキシコン)、`user` (かな記法のアクセント)、`rule` (規則) のいずれかです。
230
+
231
+ ## dict
232
+
233
+ ```
234
+ kongyoroid dict <list|add|update|delete|check> [--scope local|voicevox] [--dictionary FILE] [--dry-run]
235
+ ```
236
+
237
+ | 操作 | 主なフラグ |
238
+ | --- | --- |
239
+ | `add` / `update` | `--surface` `--reading` (`--pronunciation`) `--accent N` (0 = 平板、省略でフロントエンド任せ) `--match word\|anywhere` `--priority 0–10` `--id` |
240
+ | `delete` | `--id` |
241
+ | `check` | `--text` を辞書付きで読んで `kana` と `hits` を表示 |
242
+ | `list` | エントリ一覧 (`entries[]`) と `digest` |
243
+
244
+ ローカル辞書ファイルは `{"entries":[{"surface":"端","reading":"ハシ","accent":0,"match":"anywhere","priority":3}]}` (`kongyoroid schema --kind dictionary`)。既定パスは `KONGYOROID_DICTIONARY` か `./kongyoroid-dictionary.json`。同じ表記・同じ読みの `add` は `unchanged: true` で no-op です。`--scope voicevox` は VOICEVOX ENGINE のユーザー辞書を操作します (`--word-type PROPER_NOUN|COMMON_NOUN|VERB|ADJECTIVE|SUFFIX`)。
245
+
246
+ ## voices / doctor / capabilities / schema
247
+
248
+ - `kongyoroid voices [--engine formant|voicevox|all] [--kind speech|song|all] [--query TEXT]`: 内蔵ボイス (`baseF0`、`f0Range`、`hash`) と、到達可能なら VOICEVOX スタイル。`--engine voicevox` 以外では VOICEVOX 不通は致命的ではありません (`voicevox.available: false`)。
249
+ - `kongyoroid doctor [--engine formant|voicevox|all|auto] [--speaker ID] [--initialize]`: フロントエンドのロード時間、短い合成の自己診断、キャッシュ、辞書、VOICEVOX の状態。検査したエンジンが使えなければ終了コード 3。
250
+ - `kongyoroid capabilities`: エンジン、ボイス、制限、コマンド、環境変数、終了コード、エラーコードの JSON。
251
+ - `kongyoroid schema [--kind request|batch|dictionary]`: JSON Schema (draft 2020-12)。
252
+
253
+ ## inspect / play / cache
254
+
255
+ - `kongyoroid inspect FILE.wav [--pitch-track] [--window-ms N]`: サンプルレート、尺、ピーク、RMS、クリップ数、F0 推定 (`medianHz` / 範囲 / 有声率)。`--pitch-track` で窓ごとの F0。RIFF サイズが実際より大きいファイルや、ストリーミング用ヘッダーのまま途中で切れたファイルも読みます (データチャンクが宣言より短いものは `ENGINE_PROTOCOL`)。
256
+ - `kongyoroid play FILE.wav`: afplay / paplay / aplay / ffplay / play / PowerShell の順に試し、失敗したプレイヤーは飛ばして次を試します。どれも再生できなければ `PLAYER_UNAVAILABLE` (試した結果が `detail.attempts`)、ファイルが無ければ `IO_ERROR`。
257
+ - `kongyoroid cache <stats|prune|clear> [--cache-dir DIR] [--max-bytes N] [--max-entries N] [--dry-run]`: `DIR/kongyoroid-cache/` の中だけを対象にします。`prune` は `--max-bytes` か `--max-entries` のどちらかが必須で、`--dry-run` なら `wouldRemove` に消す件数を返します。
258
+
259
+ ## VOICEVOX を使う場合
260
+
261
+ `--speaker` / `--singer` / `--teacher` に id か名前 (`ずんだもん`、`ずんだもん/ノーマル`) を渡すと `voicevox` エンジンになります。`--engine auto` はエンドポイントの応答で切り替え、応答が無い間は 30 秒ごとに再確認します。VOICEVOX の歌唱は 1 音符 1 モーラで、タイ・メリスマ・複数モーラ・音符ごとのビブラートは内蔵エンジン専用です。
@@ -1,4 +1,5 @@
1
- {"id":"greeting","request":{"kind":"speech","text":"おはようございます。","speaker":"ずんだもん"}}
2
- {"id":"question","request":{"kind":"speech","text":"準備はできましたか?","speaker":"四国めたん","speed":0.9}}
1
+ {"id":"greeting","request":{"kind":"speech","text":"おはようございます。今日の予定を確認しました。"}}
2
+ {"id":"question","request":{"kind":"speech","text":"準備はできましたか?","voice":"female","speed":0.95}}
3
3
  {"id":"scale","request":{"kind":"song","notes":{"lyrics":"ドレミファソラシド","melody":"C4 D4 E4 F4 G4 A4 B4 C5","beats":"1 1 1 1 1 1 1 2"}}}
4
- {"id":"builtin","request":{"kind":"speech","engine":"formant","text":"ないぞうえんじんで、よみあげます。","kana":"ナイゾーエ'ンジンデ、ヨミアゲマ'ス"}}
4
+ {"id":"kana","request":{"kind":"speech","text":"内蔵エンジンで読み上げます","kana":"ナイゾーエ'ンジンデ/ヨミアゲマ'_ス。"}}
5
+ {"id":"voicevox-zunda","request":{"kind":"speech","text":"ずんだもんなのだ。","speaker":"ずんだもん"}}
@@ -0,0 +1,7 @@
1
+ {
2
+ "entries": [
3
+ { "id": "kongyoroid", "surface": "kongyoroid", "reading": "コンギョロイド", "accent": 0, "note": "product name" },
4
+ { "id": "zundamon", "surface": "ずんだもん", "reading": "ズンダモン", "accent": 1 },
5
+ { "id": "hashi-edge", "surface": "端", "reading": "ハシ", "accent": 0, "match": "anywhere", "priority": 3 }
6
+ ]
7
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "kind": "song",
3
+ "tempo": 100,
4
+ "notes": {
5
+ "lyrics": "きらきらひかるおそらのほしよ",
6
+ "melody": "C4 C4 G4 G4 A4 A4 G4 R F4 F4 E4 E4 D4 D4 C4 ~",
7
+ "beats": "1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1"
8
+ },
9
+ "voice": "female",
10
+ "vibrato": { "depthCents": 30, "rateHz": 5.6, "delayMs": 200, "fadeMs": 250 },
11
+ "leadIn": 0.3,
12
+ "leadOut": 0.5
13
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "kind": "song",
3
+ "notes": {
4
+ "mml": "t132 o4 l8 e e r e r c e4 g4 r4 <g4 r4",
5
+ "lyrics": "ららららららら"
6
+ },
7
+ "voice": "bright",
8
+ "portamentoMs": 30
9
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "kind": "song",
3
+ "engine": "formant",
4
+ "voice": "male",
5
+ "tempo": 90,
6
+ "transpose": -2,
7
+ "vibratoDepth": 35,
8
+ "notes": [
9
+ { "key": null, "beats": 0.5 },
10
+ { "id": "sa1", "key": "E4", "beats": 1, "lyric": "さ" },
11
+ { "id": "ku1", "key": "E4", "beats": 1, "lyric": "く" },
12
+ { "id": "ra1", "key": "F4", "beats": 2, "lyric": "ら" },
13
+ { "id": "sa2", "key": "E4", "beats": 1, "lyric": "さ", "velocity": 110 },
14
+ { "id": "ku2", "key": "E4", "beats": 1, "lyric": "く" },
15
+ { "id": "ra2", "key": "F4", "beats": 2, "lyric": "ら" },
16
+ { "id": "ya", "key": "E4", "beats": 1, "lyric": "や" },
17
+ { "id": "yo", "key": "F4", "beats": 1, "lyric": "よ" },
18
+ { "id": "i", "key": "G4", "beats": 1, "lyric": "い" },
19
+ { "id": "no", "key": "G4", "beats": 1, "lyric": "の" },
20
+ { "id": "so", "key": "F4", "beats": 1, "lyric": "そ" },
21
+ { "id": "ra3", "key": "E4", "beats": 1, "lyric": "ら" },
22
+ { "id": "wa", "key": "D4", "beats": 2, "lyric": "わ" },
23
+ { "id": "wa-hold", "key": "D4", "beats": 2, "continuation": "tie", "vibrato": { "depthCents": 45 } }
24
+ ]
25
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "kind": "speech",
3
+ "text": "kongyoroidはLLMエージェント向けのCLIです。ずんだもんのように読み上げます。",
4
+ "dictionary": [
5
+ { "surface": "kongyoroid", "reading": "コンギョロイド", "accent": 0 },
6
+ { "surface": "ずんだもん", "reading": "ズンダモン", "accent": 1 }
7
+ ],
8
+ "voice": "soft"
9
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "kind": "speech",
3
+ "text": "橋の端で箸を使う",
4
+ "kana": "ハシ'ノ/ハシデ/ハ'シヲ/ツカウ。",
5
+ "voice": "female",
6
+ "pitchSemitones": 2
7
+ }