echogarden 0.6.8 → 0.7.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.
- package/data/schemas/options.json +87 -72
- package/dist/alignment/SpeechAlignment.d.ts +6 -1
- package/dist/alignment/SpeechAlignment.js +13 -2
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/Alignment.d.ts +2 -0
- package/dist/api/Alignment.js +18 -11
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Denoising.js +2 -1
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/Globals.d.ts +1 -1
- package/dist/api/Recognition.d.ts +1 -0
- package/dist/api/Recognition.js +5 -3
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/Synthesis.d.ts +1 -1
- package/dist/api/Synthesis.js +36 -34
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.d.ts +2 -0
- package/dist/api/Translation.js +11 -4
- package/dist/api/Translation.js.map +1 -1
- package/dist/cli/CLI.js +6 -6
- package/dist/cli/CLI.js.map +1 -1
- package/dist/nlp/Lexicon.d.ts +3 -2
- package/dist/nlp/Lexicon.js +20 -6
- package/dist/nlp/Lexicon.js.map +1 -1
- package/dist/recognition/WhisperSTT.js +4 -3
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/synthesis/EspeakTTS.d.ts +1 -1
- package/dist/synthesis/EspeakTTS.js +24 -26
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.d.ts +2 -2
- package/dist/synthesis/VitsTTS.js +6 -5
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/utilities/Locale.d.ts +2 -1
- package/dist/utilities/Locale.js +5 -1
- package/dist/utilities/Locale.js.map +1 -1
- package/dist/utilities/Logger.d.ts +4 -3
- package/dist/utilities/Logger.js +14 -8
- package/dist/utilities/Logger.js.map +1 -1
- package/dist/utilities/Utilities.js +2 -0
- package/dist/utilities/Utilities.js.map +1 -1
- package/docs/CLI.md +9 -11
- package/docs/Options.md +9 -6
- package/docs/Tasklist.md +16 -20
- package/package.json +2 -2
package/docs/Tasklist.md
CHANGED
|
@@ -48,13 +48,13 @@
|
|
|
48
48
|
* Support compressed audio in response
|
|
49
49
|
|
|
50
50
|
### CLI
|
|
51
|
-
* Colors in log messages
|
|
52
51
|
* Restrict input media file extensions to a set list to avoid cases where an output media file would be overwritten due to user error
|
|
53
52
|
* Mode to print IPA words when speaking
|
|
53
|
+
* Ignore non-supported templates like `[hello]`
|
|
54
54
|
* Show a message when a new version is available
|
|
55
55
|
* Figure out which terminal outputs should go to stdout, or if that's a good idea at all
|
|
56
56
|
* Option to set audio output codec options
|
|
57
|
-
* Option to set audio output device
|
|
57
|
+
* Option to set audio output device for playback
|
|
58
58
|
* Print available synthesis voices when no voice matches (or suggest near matches)
|
|
59
59
|
* `transcribe` may also accept `http://` and `https://` URLs and pull the remote media file
|
|
60
60
|
* Make enum options case-insensitive if possible
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
* Use the Wikipedia reader when the URL is detected to be from `wikipedia.org`
|
|
79
79
|
|
|
80
80
|
### CLI / `list-voices`
|
|
81
|
-
* 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
|
|
81
|
+
* When given a configuration file, see if you can fall back to take options from from `speak` options, for example, to take API keys that are required for the both the synthesis request and voice list request and
|
|
82
82
|
|
|
83
83
|
### CLI / `list-packages`
|
|
84
84
|
* Support filters
|
|
@@ -104,11 +104,11 @@
|
|
|
104
104
|
* Time/pitch shifting for recognition and alignment results
|
|
105
105
|
* Accept voice list caching options in `SynthesisOptions`
|
|
106
106
|
|
|
107
|
-
### Speech
|
|
107
|
+
### Speech language detection
|
|
108
108
|
* When using Whisper for language detection of speech, apply it to the entire audio, not just the first 30 seconds
|
|
109
109
|
|
|
110
|
-
### Text
|
|
111
|
-
* Deploy and add the new language detection model
|
|
110
|
+
### Text language detection
|
|
111
|
+
* Deploy and add the new n-gram based text language detection model
|
|
112
112
|
|
|
113
113
|
### Segmentation
|
|
114
114
|
* Split long words
|
|
@@ -144,7 +144,6 @@
|
|
|
144
144
|
### Synthesis / preprocessing
|
|
145
145
|
* Extend the heteronyms JSON document with additional words like "conducts", "survey", "protest", "transport", "abuse", "combat", "combats", "affect", "contest", "detail", "marked", "contrast", "construct", "constructs", "console", "recall", "permit", "permits", "prospect", "prospects", "proceed", "proceeds", "invite", "reject", "deserts", "transcript", "transcripts", "compact", "impact", "impacts"
|
|
146
146
|
* Full date normalization (e.g. `21 August 2023`, `21 Aug 2023`)
|
|
147
|
-
* Use preprocessed eSpeak in places other than VITS
|
|
148
147
|
* Add support for capitalized-only rules, and possibly also all uppercase / all lowercase rules.
|
|
149
148
|
* Support normalizing to graphemes, not only phonemes
|
|
150
149
|
* Cache lexicons to avoid parsing the JSON each time it is loaded (this may not be needed for if the file is relatively small)
|
|
@@ -161,7 +160,7 @@
|
|
|
161
160
|
* Add speaker names to voice list somehow
|
|
162
161
|
|
|
163
162
|
### Synthesis / Azure Cognitive Services
|
|
164
|
-
* Currently, when input is set to be SSML, it is wrapped in a `<speak>` tag. Handle the case where the user made their own document wrapped with a `<speak>` tag as well. Currently it may send invalid input to Azure
|
|
163
|
+
* Currently, when input is set to be SSML, it is wrapped in a `<speak>` tag. Handle the case where the user made their own SSML document wrapped with a `<speak>` tag as well. Currently it may send invalid input to Azure
|
|
165
164
|
|
|
166
165
|
### Recognition
|
|
167
166
|
* Add confidence to each recognized word, if available
|
|
@@ -170,20 +169,19 @@
|
|
|
170
169
|
* Option to split recognized audio to segments or sentences, as is done with synthesized audio
|
|
171
170
|
|
|
172
171
|
### Recognition / Whisper
|
|
173
|
-
*
|
|
172
|
+
* Add sampling and temperature support to decoder. This may help with repetitive token sequences.
|
|
174
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
|
|
174
|
+
* 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).
|
|
175
|
+
* Accept custom prompt via an option
|
|
175
176
|
* Log individual tokens to the terminal as they are being decoded from the model
|
|
176
|
-
* Add sampling and temperature support to decoder
|
|
177
177
|
* 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.
|
|
178
|
-
* Cache last model
|
|
178
|
+
* Cache last model (if enough memory available)
|
|
179
179
|
* Integrate speech language detection into the recognition itself, so it is done efficiently when the language is not known
|
|
180
180
|
* Bring back option to use eSpeak DTW based alignment on segments, as an alternative approach
|
|
181
181
|
* 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
|
|
182
|
-
* Way to specify model size, such that the English-only/multilingual would be
|
|
183
|
-
* Accept custom prompt through an option
|
|
182
|
+
* Way to specify general model size, such that the English-only/multilingual variant would be automatically selected for sizes other than `tiny`?
|
|
184
183
|
|
|
185
184
|
### Alignment
|
|
186
|
-
* Warn when input is larger than DTW window (this can also happen when synthesizing SSML, which can't be split to segments)
|
|
187
185
|
|
|
188
186
|
### Postprocessing
|
|
189
187
|
* When `normalize` is set to false, should obvious clipping still be prevented?
|
|
@@ -201,7 +199,7 @@
|
|
|
201
199
|
|
|
202
200
|
## External bugs
|
|
203
201
|
|
|
204
|
-
* `espeak-ng`: 'Oh dear!”' is read as "oh dear exclamation mark", because of the special quote following the exclamation mark
|
|
202
|
+
* `espeak-ng`: 'Oh dear!”' is read as "oh dear exclamation mark", because of the special quote character following the exclamation mark
|
|
205
203
|
* `espeak-ng`: [Marker right after sentence end is not reported as an event](https://github.com/espeak-ng/espeak-ng/issues/920)
|
|
206
204
|
* `espeak-ng`: On Japanese text, it says "Chinese character" or "Japanese character" for characters it doesn't know
|
|
207
205
|
* `wtf_wikipedia` Sometimes fails on `getResult.js` without throwing a humanly readable error
|
|
@@ -225,8 +223,7 @@
|
|
|
225
223
|
* Auto-generate options file, with comments, based on default options of the API
|
|
226
224
|
* Have the CLI launch a background worker (in a thread) to enable better parallelism
|
|
227
225
|
* Play back result audio while synthesis or recognition is still processing on the background (may require `worker_threads`)
|
|
228
|
-
*
|
|
229
|
-
* Auto-import project Gutenberg texts (by URL or from a file)
|
|
226
|
+
* Auto-import and extract project Gutenberg texts (by URL or from a file)
|
|
230
227
|
* `stdin` input support
|
|
231
228
|
* `stdout` output support
|
|
232
229
|
* Markdown file as text input?
|
|
@@ -235,7 +232,7 @@
|
|
|
235
232
|
* Auto-install npm modules when needed using something like `npm-programmatic`
|
|
236
233
|
|
|
237
234
|
### Text enhancement
|
|
238
|
-
* Add capitalization and punctuation
|
|
235
|
+
* Add capitalization and punctuation to recognized outputs if needed (Silero has a model for it for `en`, `de`, `ru`, `es`, but in `.pt` format only)
|
|
239
236
|
|
|
240
237
|
### Recognition
|
|
241
238
|
* Low latency recognition mode. Make the partial transcription available as fast as possible
|
|
@@ -243,7 +240,7 @@
|
|
|
243
240
|
* Live vosk alternatives events
|
|
244
241
|
* Implement beam search for Whisper decoder
|
|
245
242
|
* Implement beam search for Silero decoder
|
|
246
|
-
* Investigate exporting Whisper models to 16-bit quantized ONNX or a mix of 16-bit and 32-
|
|
243
|
+
* Investigate exporting Whisper models to 16-bit quantized ONNX or a mix of 16-bit and 32-bit
|
|
247
244
|
|
|
248
245
|
### Web
|
|
249
246
|
* Web based frontend UI to the server
|
|
@@ -294,4 +291,3 @@
|
|
|
294
291
|
* Special method to use time stretching to project between different utterances of the same text
|
|
295
292
|
* Is it possible to combine the Silero speech recognizer and a language model and try to perform Viterbi decoding to find alignments?
|
|
296
293
|
* Voice replacement
|
|
297
|
-
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "echogarden",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
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",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
"@types/msgpack-lite": "^0.1.8",
|
|
122
122
|
"@types/ndarray": "^1.0.11",
|
|
123
123
|
"@types/ndarray-ops": "^1.2.4",
|
|
124
|
-
"@types/node": "^20.4.
|
|
124
|
+
"@types/node": "^20.4.4",
|
|
125
125
|
"@types/recursive-readdir": "^2.2.1",
|
|
126
126
|
"@types/tar": "^6.1.5",
|
|
127
127
|
"@types/ws": "^8.5.5",
|