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/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. 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
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`, `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
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` (ten minutes) would already require several Gigabytes of memory when the audio duration is 10 minutes or greater.
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.engine`: Whisper engine to use (multilingual engines only). Defaults to `tiny`
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.4",
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",