echogarden 0.6.4 → 0.6.6
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.
- package/data/lexicons/heteronyms.en.json +1 -1
- package/data/schemas/options.json +29 -21
- package/dist/api/Synthesis.d.ts +3 -3
- package/dist/api/Synthesis.js +5 -5
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/cli/CLI.d.ts +1 -1
- package/dist/cli/CLI.js +43 -19
- package/dist/cli/CLI.js.map +1 -1
- package/dist/nlp/Segmentation.d.ts +2 -1
- package/dist/nlp/Segmentation.js +11 -7
- package/dist/nlp/Segmentation.js.map +1 -1
- package/dist/synthesis/GoogleCloudTTS.d.ts +0 -1
- package/dist/utilities/Timeline.js +1 -1
- package/dist/utilities/Timeline.js.map +1 -1
- package/dist/utilities/Utilities.d.ts +1 -0
- package/dist/utilities/Utilities.js +8 -0
- package/dist/utilities/Utilities.js.map +1 -1
- package/dist/utilities/WikipediaReader.js +1 -1
- package/dist/utilities/WikipediaReader.js.map +1 -1
- package/docs/CLI.md +68 -34
- package/docs/Development.md +2 -2
- package/docs/Options.md +13 -12
- package/docs/Tasklist.md +12 -2
- package/package.json +1 -1
package/docs/Options.md
CHANGED
|
@@ -12,20 +12,20 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
12
12
|
|
|
13
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.
|
|
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
|
|
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.
|
|
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
30
|
Post-processing:
|
|
31
31
|
* `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `true`
|
|
@@ -84,9 +84,9 @@ Amazon Polly:
|
|
|
84
84
|
|
|
85
85
|
Elevenlabs:
|
|
86
86
|
* `elevenLabs.apiKey`: API key (required)
|
|
87
|
-
* `elevenLabs.stability`: stability. Defaults to `0.0`
|
|
88
|
-
* `elevenLabs.similarityBoost`: similarity boost. Defaults to `0.0`
|
|
89
87
|
* `elevenLabs.modelId`: Model identifier. Defaults to `eleven_monolingual_v1`
|
|
88
|
+
* `elevenLabs.stability`: stability. Defaults to `0.5`
|
|
89
|
+
* `elevenLabs.similarityBoost`: similarity boost. Defaults to `0.5`
|
|
90
90
|
|
|
91
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`
|
|
@@ -101,7 +101,7 @@ Applicable to CLI command: `transcribe`.
|
|
|
101
101
|
|
|
102
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`, `
|
|
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
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`
|
|
@@ -134,10 +134,10 @@ Applicable to CLI command: `align`.
|
|
|
134
134
|
|
|
135
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
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` (
|
|
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
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`
|
|
@@ -149,13 +149,14 @@ Applicable to CLI command: `translate-speech`.
|
|
|
149
149
|
|
|
150
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
155
|
Whisper:
|
|
154
|
-
* `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,7 +169,7 @@ 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
|
package/docs/Tasklist.md
CHANGED
|
@@ -78,6 +78,9 @@
|
|
|
78
78
|
### CLI / `speak-url`
|
|
79
79
|
* Use the Wikipedia reader when the URL is detected to be from `wikipedia.org`
|
|
80
80
|
|
|
81
|
+
### CLI / `list-voices`
|
|
82
|
+
* When given a configuration file, see if you can fall back to take options from from `speak` options, for example, API keys that are required for the both the voice list request and synthesis request
|
|
83
|
+
|
|
81
84
|
### CLI / `list-packages`
|
|
82
85
|
* Support filters
|
|
83
86
|
|
|
@@ -156,7 +159,8 @@
|
|
|
156
159
|
### VITS
|
|
157
160
|
* Allow to limit how many models are cached in memory
|
|
158
161
|
* Custom model paths (decide how to implement)
|
|
159
|
-
* Pull voice list from JSON file based on URL? Is that a good idea?
|
|
162
|
+
* Pull voice list from JSON file, or based on URL? Is that a good idea?
|
|
163
|
+
* Add speaker names to voice list somehow
|
|
160
164
|
|
|
161
165
|
### Recognition
|
|
162
166
|
* Add confidence to each recognized word, if available
|
|
@@ -164,7 +168,7 @@
|
|
|
164
168
|
* Look for good split points using VAD before performing recognition
|
|
165
169
|
* Option to split recognized audio to segments or sentences, as is done with synthesized audio
|
|
166
170
|
|
|
167
|
-
### Whisper
|
|
171
|
+
### Recognition / Whisper
|
|
168
172
|
* When using `dtw-ra` alignment, pass the transcript as a prompt. Remove some of the initial transcript based on what has been detected (try to find the best matching initial segment between the transcript and recognized text, and remove it at each recognition window).
|
|
169
173
|
* During language detection, if file is more than 30s, run the detection over all the segments and average the resulting probability distributions, consider how to handle very short segments
|
|
170
174
|
* Timestamps extracted from cross-attention are still not as accurate as what the official Python implementation gets. Try to see if you can make them better.
|
|
@@ -173,6 +177,10 @@
|
|
|
173
177
|
* Bring back option to use eSpeak DTW based alignment on segments, as an alternative approach
|
|
174
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
|
|
175
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
|
|
181
|
+
|
|
182
|
+
### Alignment
|
|
183
|
+
* Warn when input is larger than DTW window (this can also happen when synthesizing SSML, which can't be split to segments)
|
|
176
184
|
|
|
177
185
|
### Postprocessing
|
|
178
186
|
* When `normalize` is set to false, should obvious clipping still be prevented?
|
|
@@ -202,6 +210,7 @@
|
|
|
202
210
|
## Things to test
|
|
203
211
|
|
|
204
212
|
* Test that SSML works where it should
|
|
213
|
+
* Test that alignment works correctly when the input is SSML
|
|
205
214
|
* Test synthesis, recognition and alignment with empty input. Do they still work?
|
|
206
215
|
* Test everything's fine on macOS
|
|
207
216
|
* Test that cloud services all still work correctly, especially with SSML inputs
|
|
@@ -231,6 +240,7 @@
|
|
|
231
240
|
* Live vosk alternatives events
|
|
232
241
|
* Implement beam search for Whisper decoder
|
|
233
242
|
* Implement beam search for Silero decoder
|
|
243
|
+
* Investigate exporting Whisper models to 16-bit and 8-bit quantized ONNX
|
|
234
244
|
|
|
235
245
|
### Web
|
|
236
246
|
* 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.
|
|
3
|
+
"version": "0.6.6",
|
|
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",
|