echogarden 0.6.5 → 0.6.7

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 (45) hide show
  1. package/data/schemas/options.json +25 -17
  2. package/dist/api/API.d.ts +1 -0
  3. package/dist/api/API.js +1 -1
  4. package/dist/api/API.js.map +1 -1
  5. package/dist/api/Alignment.d.ts +1 -0
  6. package/dist/api/Alignment.js +20 -0
  7. package/dist/api/Alignment.js.map +1 -1
  8. package/dist/api/Denoising.d.ts +2 -0
  9. package/dist/api/Denoising.js +8 -0
  10. package/dist/api/Denoising.js.map +1 -1
  11. package/dist/api/Globals.d.ts +6 -0
  12. package/dist/api/LanguageDetection.d.ts +2 -0
  13. package/dist/api/LanguageDetection.js +28 -0
  14. package/dist/api/LanguageDetection.js.map +1 -1
  15. package/dist/api/Recognition.d.ts +1 -0
  16. package/dist/api/Recognition.js +38 -0
  17. package/dist/api/Recognition.js.map +1 -1
  18. package/dist/api/Synthesis.d.ts +5 -3
  19. package/dist/api/Synthesis.js +83 -3
  20. package/dist/api/Synthesis.js.map +1 -1
  21. package/dist/api/Translation.d.ts +2 -0
  22. package/dist/api/Translation.js +8 -0
  23. package/dist/api/Translation.js.map +1 -1
  24. package/dist/api/Vad.d.ts +2 -0
  25. package/dist/api/Vad.js +20 -0
  26. package/dist/api/Vad.js.map +1 -1
  27. package/dist/cli/CLI.d.ts +1 -1
  28. package/dist/cli/CLI.js +126 -23
  29. package/dist/cli/CLI.js.map +1 -1
  30. package/dist/nlp/Segmentation.d.ts +2 -1
  31. package/dist/nlp/Segmentation.js +11 -7
  32. package/dist/nlp/Segmentation.js.map +1 -1
  33. package/dist/synthesis/GoogleCloudTTS.d.ts +0 -1
  34. package/dist/utilities/Timeline.js +1 -1
  35. package/dist/utilities/Timeline.js.map +1 -1
  36. package/dist/utilities/Utilities.d.ts +1 -0
  37. package/dist/utilities/Utilities.js +8 -0
  38. package/dist/utilities/Utilities.js.map +1 -1
  39. package/dist/utilities/WikipediaReader.js +1 -1
  40. package/dist/utilities/WikipediaReader.js.map +1 -1
  41. package/docs/CLI.md +66 -34
  42. package/docs/Engines.md +2 -2
  43. package/docs/Options.md +52 -44
  44. package/docs/Tasklist.md +3 -1
  45. package/package.json +2 -1
package/docs/Options.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Here is a detailed reference for the options accepted by the Echogarden API and CLI.
4
4
 
5
- Related resources:
5
+ **Related resources**:
6
6
  * [A comprehensive list of all supported engines](Engines.md)
7
7
  * [A quick guide for using the command line interface](CLI.md)
8
8
 
@@ -10,24 +10,24 @@ Related resources:
10
10
 
11
11
  Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia`.
12
12
 
13
- General:
13
+ **General**:
14
14
  * `engine`: identifier of the synthesis engine to use, such as `espeak` or `vits`.
15
- * `language`: language code, like `en`, `fr`, `en-US`, `pt-BR`. Auto-detected if not set
15
+ * `language`: language code ([ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)), like `en`, `fr`, `en-US`, `pt-BR`. Auto-detected if not set
16
16
  * `voice`: name of the voice to use. Can be a search string. Optional
17
17
  * `voiceGender`: gender of the voice to use. Optional
18
18
  * `speed`: speech rate factor, relative to default. In the range `0.1`..`10.0`. Defaults to `1.0`
19
19
  * `pitch`: pitch factor, relative to default. In the range `0.1`..`10.0`. Defaults to `1.0`
20
20
  * `pitchVariation`: pitch variation factor. In the range `0.1`..`10.0`. Defaults to `1.0`
21
- * `splitToSentences`: split text to sentences before synthesis. Default to `true`
21
+ * `splitToSentences`: split text to sentences before synthesis. Defaults to `true`
22
22
  * `ssml`: the input is SSML. Defaults to `false`
23
23
  * `sentenceEndPause`: pause duration (seconds) at end of sentence. Defaults to `0.75`
24
24
  * `segmentEndPause`: pause duration (seconds) at end of segment. Defaults to `1.0`
25
25
 
26
- Plain text preprocessing:
26
+ **Plain text processing**:
27
27
  * `plainText.paragraphBreaks`: split to paragraphs based on single (`single`), or double (`double`) line breaks. Defaults to `double`
28
- * `plainText.preserveLineBreaks`: preserve line breaks within paragraphs. Defaults to `false`
28
+ * `plainText.whitespace`: determines how to process whitespace within paragraphs. Can be `preserve` (leave as is), `removeLineBreaks` (convert line breaks to spaces) or `collapse` (convert runs of whitespace characters, including line breaks, to a single space character). Defaults to `collapse`
29
29
 
30
- Post-processing:
30
+ **Post-processing**:
31
31
  * `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `true`
32
32
  * `postProcessing.targetPeakDb`: target peak (decibels) for normalization. Defaults to `-3`
33
33
  * `postProcessing.maxIncreaseDb`: max gain increase (decibels) when performing normalization. Defaults to `30`
@@ -36,62 +36,62 @@ Post-processing:
36
36
  * `postProcessing.timePitchShiftingMethod`: method for time and pitch shifting. Can be `sonic` or `rubberband`. Defaults to `sonic`
37
37
  * `postProcessing.rubberband`: prefix for RubberBand options (TODO)
38
38
 
39
- Language detection:
39
+ **Language detection**:
40
40
  * `languageDetection`: prefix to provide custom options for language detection. Same options as detailed for text language detection, down below
41
41
 
42
- VITS:
42
+ **VITS**:
43
43
  * `vits.speakerId`: speaker ID, for VITS models that support multiple speakers. Optional
44
44
  * `vits.customLexiconPaths`: an array of custom lexicon file paths. Optional
45
45
 
46
- eSpeak-ng:
46
+ **eSpeak-ng**:
47
47
  * `espeak.rate`: speech rate, in eSpeak units. Overrides `speed` when set
48
48
  * `espeak.pitch`: pitch, in eSpeak units. Overrides `pitch` when set
49
49
  * `espeak.pitchRange`: pitch range, in eSpeak units. Overrides `pitchVariation` when set
50
50
 
51
- SAM:
51
+ **SAM**:
52
52
  * `sam.pitch`: pitch value, between `0`..`255`. Overrides `pitch` when set
53
53
  * `sam.speed`: speed value, between `0`..`255`. Overrides `speed` when set
54
54
  * `sam.mouth`: mouth value, between `0`..`255` (defaults to `128`)
55
55
  * `sam.throat`: throat value, between `0`..`255` (defaults to `128`)
56
56
 
57
- SAPI:
57
+ **SAPI**:
58
58
  * `sapi.rate`: SAPI speech rate, in its native units. An integer number between `-10` and `10`. Setting `speed` would apply time stretching instead. The two options can be used together
59
59
 
60
- Microsoft Speech Platform:
60
+ **Microsoft Speech Platform**:
61
61
  * `msspeech.rate`: same units and effects as the SAPI speech rate
62
62
 
63
- Coqui Server:
63
+ **Coqui Server**:
64
64
  * `coquiServer.serverUrl`: server URL
65
65
  * `coquiServer.speakerId`: speaker ID (if applicable)
66
66
 
67
- Google Cloud:
67
+ **Google Cloud**:
68
68
  * `googleCloud.apiKey`: API key (required)
69
69
  * `googleCloud.pitchDeltaSemitones`: pitch delta in semitones. Overrides `pitch` when set
70
70
  * `googleCloud.customVoice.model`: name of custom voice
71
71
  * `googleCloud.customVoice.reportedUsage`: reported usage of custom voice
72
72
 
73
- Azure Cognitive Services:
73
+ **Azure Cognitive Services**:
74
74
  * `microsoftAzure.subscriptionKey`: subscription key (required)
75
75
  * `microsoftAzure.serviceRegion`: service region (required)
76
76
  * `microsoftAzure.pitchDeltaHz`: pitch delta in Hz. Overrides `pitch` when set
77
77
 
78
- Amazon Polly:
78
+ **Amazon Polly**:
79
79
  * `amazonPolly.region`: region (required)
80
80
  * `amazonPolly.accessKeyId`: access key ID (required)
81
81
  * `amazonPolly.secretAccessKey`: secret access key (required)
82
82
  * `amazonPolly.pollyEngine`: Amazon Polly engine kind, can be `standard` or `neural`. Defaults to `neural`
83
83
  * `amazonPolly.lexiconNames`: An array of lexicon names. Optional
84
84
 
85
- Elevenlabs:
85
+ **Elevenlabs**:
86
86
  * `elevenLabs.apiKey`: API key (required)
87
+ * `elevenLabs.modelId`: Model identifier. Defaults to `eleven_monolingual_v1`
87
88
  * `elevenLabs.stability`: stability. Defaults to `0.5`
88
89
  * `elevenLabs.similarityBoost`: similarity boost. Defaults to `0.5`
89
- * `elevenLabs.modelId`: Model identifier. Defaults to `eleven_monolingual_v1`
90
90
 
91
- Google Translate:
91
+ **Google Translate**:
92
92
  * `googleTranslate.tld`: top level domain to to connect to. Can change the dialect for a small number or voices. For example `us` gives American English for `en`, while `com` gives British English for `en`. Defaults to `us`
93
93
 
94
- Microsoft Edge:
94
+ **Microsoft Edge**:
95
95
  * `microsoftEdge.trustedClientToken`: trusted client token (required). A special token required to use the service
96
96
  * `microsoftEdge.pitchDeltaHz`: pitch delta in Hz. Overrides `pitch` when set
97
97
 
@@ -99,31 +99,31 @@ Microsoft Edge:
99
99
 
100
100
  Applicable to CLI command: `transcribe`.
101
101
 
102
- General:
102
+ **General**:
103
103
  * `engine`: identifier of the recognition engine to use, such as `whisper` or `vosk`
104
- * `language`: language code for the audio, like `en`, `fr`, `en-US`, `pt-BR`. Auto-detected if not set
104
+ * `language`: language code ([ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)) for the audio, like `en`, `fr`, `de`. Auto-detected if not set
105
105
 
106
- Whisper:
106
+ **Whisper**:
107
107
  * `whisper.model`: selects which Whisper model to use. Can be `tiny`, `tiny.en`, `base`, `base.en`, `small`, `small.en`, `medium`, `medium.en`, `large` (same as `large-v2`), `large-v1`, `large-v2`. Defaults to `tiny`
108
108
 
109
- Vosk:
109
+ **Vosk**:
110
110
  * `vosk.modelPath`: path to the Vosk model to be used
111
111
 
112
- Silero:
112
+ **Silero**:
113
113
  * `silero.modelPath`: path to a Silero model. Note that latest `en`, `de`, `fr` and `uk` models are automatically installed when needed based on the selected language. This should only be used to manually specify a different model, otherwise specify `language` instead
114
114
 
115
- Google Cloud:
115
+ **Google Cloud**:
116
116
  * `googleCloud.apiKey`: Google Cloud API key (required)
117
117
  * `googleCloud.alternativeLanguageCodes`: An array of alternative language codes. Optional
118
118
  * `googleCloud.profanityFilter`: censor profanity. Defaults to `false`
119
119
  * `googleCloud.autoPunctuation`: add punctuation automatically. Defaults to `true`
120
120
  * `googleCloud.useEnhancedModel`: use enhanced model. Defaults to `true`
121
121
 
122
- Azure Cognitive Services:
122
+ **Azure Cognitive Services**:
123
123
  * `azureCognitiveServices.subscriptionKey`: subscription key (required)
124
124
  * `azureCognitiveServices.serviceRegion`: service region (required)
125
125
 
126
- Amazon Transcribe:
126
+ **Amazon Transcribe**:
127
127
  * `amazonTranscribe.region`: region (required)
128
128
  * `amazonTranscribe.accessKeyId`: access key ID (required)
129
129
  * `amazonTranscribe.secretAccessKey`: secret access key (required)
@@ -132,14 +132,14 @@ Amazon Transcribe:
132
132
 
133
133
  Applicable to CLI command: `align`.
134
134
 
135
- General:
135
+ **General**:
136
136
  * `method`: what alignment algorithm to use, can be `dtw`, `dtw-ra` or `whisper`. Defaults to `dtw`
137
- * `language`: language code for the audio and transcript, like `en`, `fr`, `en-US`, `pt-BR`. Auto-detected if not set
137
+ * `language`: language code for the audio and transcript ([ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)), like `en`, `fr`, `en-US`, `pt-BR`. Auto-detected from transcript if not set
138
138
 
139
- DTW:
140
- * `dtw.windowDuration`: time duration (in seconds) of the Sakoe-Chiba window when performing DTW alignment. Defaults to `120`. If your audio is longer than two minutes, consider increasing this value for better results. Note that a higher value would consume quadratically larger amounts of memory. A value of `600` (ten minutes) would already require several Gigabytes of memory when the audio duration is 10 minutes or greater.
139
+ **DTW**:
140
+ * `dtw.windowDuration`: time duration (in seconds) of the Sakoe-Chiba window when performing DTW alignment. Defaults to `120`. If your audio is longer than two minutes, consider increasing this value for better results. Note that a higher value would consume quadratically larger amounts of memory. A value of `600` (10 minutes) would already require several Gigabytes of memory when the audio duration is 10 minutes or greater.
141
141
 
142
- DTW-RA only:
142
+ **DTW-RA only**:
143
143
  * `dtw.recognition`: prefix for providing custom recognition options when using `dtw-ra` method, for example: setting `dtw.recognition.engine = silero`
144
144
  * `dtw.phoneAlignmentMethod`: algorithm to use when aligning phones: can either be set to `dtw` or `interpolate`. Defaults to `dtw`
145
145
 
@@ -147,15 +147,16 @@ DTW-RA only:
147
147
 
148
148
  Applicable to CLI command: `translate-speech`.
149
149
 
150
- General:
150
+ **General**:
151
151
  * `engine`: only `whisper` supported
152
+ * `sourceLanguage`: the source language code for the input speech. Auto-detected if not set
153
+ * `targetLanguage`: the target language code for the output speech. Only `en` supported at this time.
152
154
 
153
- Whisper:
154
- * `whisper.engine`: Whisper engine to use (multilingual engines only). Defaults to `tiny`
155
+ **Whisper**:
156
+ * `whisper.model`: Whisper model to use (multilingual engines only). Defaults to `tiny`
155
157
 
156
158
  ## Language detection
157
159
 
158
-
159
160
  ### Speech language detection
160
161
 
161
162
  Applicable to CLI command: `detect-speech-langauge`.
@@ -168,32 +169,32 @@ Applicable to CLI command: `detect-speech-langauge`.
168
169
  Applicable to CLI command: `detect-text-langauge`.
169
170
 
170
171
  * `engine`: `tinyld` or `fasttext`. Defaults to `tinyld`
171
- * `defaultLanguage`: language to fall back to when confidence is low. Defaults to `en`
172
+ * `defaultLanguage`: language to fall back to when confidence of is low. Defaults to `en`
172
173
  * `fallbackThresholdProbability`: confidence threshold to cause fallback. Defaults to `0.05`
173
174
 
174
175
  ## Voice activity detection
175
176
 
176
177
  Applicable to CLI command: `detect-voice-activity`.
177
178
 
178
- General:
179
+ **General**:
179
180
  * `engine`: VAD engine to use. Can be `webrtc`, `silero` or `rnnoise`. Defaults to `webrtc`
180
181
  * `activityThreshold`: minimum predicted probability for determining a frame as having speech activity. Defaults to `0.5`
181
182
 
182
- WebRTC:
183
+ **WebRTC**:
183
184
  * `webrtc.frameDuration`: WebRTC frame duration (ms). Can be `10`, `20` or `30`. Defaults to `30`
184
185
  * `webrtc.mode`: WebRTC mode (aggressiveness). Can be `0`, `1`, `2` or `3`. Defaults to `1`
185
186
 
186
- Silero:
187
+ **Silero**:
187
188
  * `silero.frameDuration`: Silero frame duration (ms). Can be `30`, `60` or `90`. Defaults to `90`
188
189
 
189
190
  ## Speech denoising
190
191
 
191
192
  Applicable to CLI command: `denoise`.
192
193
 
193
- General:
194
+ **General**:
194
195
  * `engine`: can only be `rnnoise`
195
196
 
196
- Postprocessing:
197
+ **Postprocessing**:
197
198
  * `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `false`
198
199
  * `postProcessing.targetPeakDb`: target peak (decibels) for normalization. Defaults to `-3`
199
200
  * `postProcessing.maxIncreaseDb`: max gain increase (decibels) when performing normalization. Defaults to `30`
@@ -203,6 +204,13 @@ Postprocessing:
203
204
 
204
205
  Applicable to CLI command: `list-voices`.
205
206
 
207
+ **General**
206
208
  * `language`: language code to filter by (optional)
207
209
  * `voice`: name or name pattern to filter by (optional)
208
210
  * `voiceGender`: gender to filter by (optional)
211
+
212
+ Also accepted are engine-specific options that may be required in order to retrieve the voice list, especially for cloud engines. Examples:
213
+ * `googleCloud.apiKey`
214
+ * `microsoftAzure.subscriptionKey`, `microsoftAzure.serviceRegion`
215
+ * `amazonPolly.region`, `amazonPolly.accessKeyId`, `amazonPolly.secretAccessKey`
216
+ * `elevenLabs.apiKey`, `elevenLabs.modelId`
package/docs/Tasklist.md CHANGED
@@ -177,7 +177,8 @@
177
177
  * Bring back option to use eSpeak DTW based alignment on segments, as an alternative approach
178
178
  * The segment output can be use to split to segment files, otherwise it is possible to try to guess using the pause lengths or voice activity detection
179
179
  * Way to specify model size, such that the English-only/multilingual would be auto selection for sizes other than `tiny`?
180
- * Accept custom prompt as through an option
180
+ * Accept custom prompt through an option
181
+ * Add sampling and temperature support to decoder
181
182
 
182
183
  ### Alignment
183
184
  * Warn when input is larger than DTW window (this can also happen when synthesizing SSML, which can't be split to segments)
@@ -240,6 +241,7 @@
240
241
  * Live vosk alternatives events
241
242
  * Implement beam search for Whisper decoder
242
243
  * Implement beam search for Silero decoder
244
+ * Investigate exporting Whisper models to 16-bit and 8-bit quantized ONNX
243
245
 
244
246
  ### Web
245
247
  * Web based frontend UI to the server
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "echogarden",
3
- "version": "0.6.5",
3
+ "version": "0.6.7",
4
4
  "description": "An integrated speech system, providing a range of synthesis, recognition and other processing tools designed to be directly accessible to end-users.",
5
5
  "author": "Rotem Dan",
6
6
  "license": "GPL-3.0-only",
@@ -92,6 +92,7 @@
92
92
  "ndarray-ops": "^1.2.2",
93
93
  "onnxruntime-node": "^1.15.1",
94
94
  "sam-js": "^0.2.1",
95
+ "strip-ansi": "^7.1.0",
95
96
  "tar": "^6.1.15",
96
97
  "tinyld": "^1.3.4",
97
98
  "ws": "^8.13.0",