echogarden 0.5.1 → 0.5.2
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/README.md +14 -14
- package/data/lexicons/heteronyms.en.json +1 -1
- package/docs/CLI.md +6 -4
- package/docs/Options.md +5 -1
- package/docs/Tasklist.md +1 -0
- package/docs/Technical.md +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Echogarden
|
|
2
2
|
|
|
3
|
-
Echogarden is a
|
|
3
|
+
Echogarden is an integrated speech system that provides a range of speech generation, recognition and processing tools that are designed to be directly usable by end-users:
|
|
4
4
|
|
|
5
5
|
* Written in TypeScript, for the Node.js runtime
|
|
6
6
|
* Easy to install, run and update
|
|
@@ -12,11 +12,11 @@ Echogarden is a versatile speech processing system that attempts to address the
|
|
|
12
12
|
|
|
13
13
|
* Fast, high-quality offline text-to-speech voices based on the [VITS](https://github.com/jaywalnut310/vits) neural architecture
|
|
14
14
|
* Accurate offline speech recognition using [OpenAI Whisper](https://openai.com/research/whisper) models
|
|
15
|
-
* Supports synthesis and recognition via
|
|
15
|
+
* Supports synthesis and recognition via a [variety of offline and cloud engines](docs/Engines.md), including Google, Microsoft and Amazon
|
|
16
16
|
* Word-level timestamps for all synthesis and recognition outputs
|
|
17
17
|
* Speech-to-transcript alignment using dynamic time warping (DTW), and dynamic time warping with recognition assist (DTW-RA) methods
|
|
18
18
|
* Advanced subtitle generation, accounting for sentence and phrase boundaries
|
|
19
|
-
* Can
|
|
19
|
+
* Can translate speech in any one of 98 languages, transcribe it directly to English, and produce near word-level synchronized subtitles for the translated transcript
|
|
20
20
|
* Attempts to improve TTS pronunciation accuracy for a few engines and languages (currently only implemented for English dialects): adds text normalization (e.g. idiomatic date and currency pronunciation), heteronym disambiguation (based on a custom rule-based model) and user-customizable pronunciation lexicons
|
|
21
21
|
* Internal package system that auto-downloads and installs voices, models and other resources, as needed
|
|
22
22
|
* Other features include: language detection (both for audio and text), voice activity detection, and speech denoising
|
|
@@ -46,7 +46,16 @@ npm update echogarden -g
|
|
|
46
46
|
|
|
47
47
|
Currently, the software is operated mainly through a [command-line interface](docs/CLI.md), which enables powerful customization and is especially useful for long-running bulk operations.
|
|
48
48
|
|
|
49
|
-
Development of more graphical and interactive tooling is currently ongoing. A general roadmap is shown
|
|
49
|
+
Development of more graphical and interactive tooling is currently ongoing. A general roadmap is shown further down below.
|
|
50
|
+
|
|
51
|
+
## Guides and resource pages
|
|
52
|
+
|
|
53
|
+
* [Using the command-line interface](docs/CLI.md)
|
|
54
|
+
* [Options reference](docs/Options.md)
|
|
55
|
+
* [Full list of supported engines](docs/Engines.md)
|
|
56
|
+
* [Technical overview and Q&A](docs/Technical.md)
|
|
57
|
+
* [Developer's task list](docs/Tasklist.md)
|
|
58
|
+
* [How to help](docs/Development.md)
|
|
50
59
|
|
|
51
60
|
## Development roadmap
|
|
52
61
|
|
|
@@ -56,7 +65,7 @@ _(For much more detailed information, see the [developer task list](docs/Tasklis
|
|
|
56
65
|
|
|
57
66
|
* (**90**%) Background worker
|
|
58
67
|
* (**90**%) WebSocket-based server and API
|
|
59
|
-
* (**70**%) Browser extension, acting as a bridge to a local or self-hosted server.
|
|
68
|
+
* (**70**%) Browser extension, acting as a bridge to a local or self-hosted server. Includes integration with the Web Speech API, and real-time narration of page content, with live word highlighting
|
|
60
69
|
* (**60**%) New, high-accuracy text language identification model (own work)
|
|
61
70
|
|
|
62
71
|
### Planned, but not yet started
|
|
@@ -70,15 +79,6 @@ _(For much more detailed information, see the [developer task list](docs/Tasklis
|
|
|
70
79
|
|
|
71
80
|
* Browser port for a subset of the API (in particular for the offline TTS models and their dependencies)
|
|
72
81
|
|
|
73
|
-
## Guides and resource pages
|
|
74
|
-
|
|
75
|
-
* [Using the command-line interface](docs/CLI.md)
|
|
76
|
-
* [Options reference](docs/Options.md)
|
|
77
|
-
* [Full list of supported engines](docs/Engines.md)
|
|
78
|
-
* [Technical overview and Q&A](docs/Technical.md)
|
|
79
|
-
* [Developer's task list](docs/Tasklist.md)
|
|
80
|
-
* [How to help](docs/Development.md)
|
|
81
|
-
|
|
82
82
|
## Credits
|
|
83
83
|
|
|
84
84
|
This project consolidates, and builds upon the effort of many different individuals and companies, as well as contributing a number of original works.
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
],
|
|
105
105
|
|
|
106
106
|
"succeededBy": [
|
|
107
|
-
"itself", "us", "opportunities", "them", "his", "her", "our", "my", "its", "this", "no", "some", "another", "different", "various", "several", "many", "few", "other", "unique", "special", "great", "excellent", "nice"
|
|
107
|
+
"itself", "us", "opportunities", "them", "a", "an", "his", "her", "our", "my", "its", "this", "no", "some", "another", "different", "various", "several", "many", "few", "other", "unique", "special", "great", "excellent", "nice"
|
|
108
108
|
],
|
|
109
109
|
|
|
110
110
|
"notSucceededBy": [
|
package/docs/CLI.md
CHANGED
|
@@ -10,7 +10,9 @@ Here's a quick tour of the main operations available via the CLI.
|
|
|
10
10
|
|
|
11
11
|
Each command can accepts one or more options, in the form `--[optionName]=[value]` (The `=` is required). A detailed reference of all the available options can be found [here](Options.md).
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
**Keyboard shortcuts**:
|
|
14
|
+
* While the program is running, you can press `esc` to exit immediately
|
|
15
|
+
* When audio is playing, you can press `enter` to skip it
|
|
14
16
|
|
|
15
17
|
## Text to speech
|
|
16
18
|
|
|
@@ -46,12 +48,12 @@ The CLI supports multiple output files. This would synthesize a text file, and s
|
|
|
46
48
|
echogarden speak-file text.txt result.mp3 result.wav result.srt --engine=vits --speed=1.1
|
|
47
49
|
```
|
|
48
50
|
|
|
49
|
-
Synthesize a web page (will try to extract its main article parts and omit the rest):
|
|
51
|
+
Synthesize a web page (it will try to extract its main article parts and omit the rest):
|
|
50
52
|
```bash
|
|
51
53
|
echogarden speak-url https://example.com/hola
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
Synthesize a Wikipedia article in any of its language editions:
|
|
56
|
+
Synthesize a Wikipedia article, in any of its language editions:
|
|
55
57
|
```bash
|
|
56
58
|
echogarden speak-wikipedia "Psychologie" --language=fr
|
|
57
59
|
```
|
|
@@ -200,7 +202,7 @@ Try to identify the language of a text file, and print the probabilities to the
|
|
|
200
202
|
echogarden detect-text-language story.txt
|
|
201
203
|
```
|
|
202
204
|
|
|
203
|
-
Try to identify the language of a text file, and store the probabilities in a JSON file:
|
|
205
|
+
Try to identify the language of a text file, and store the detailed probabilities in a JSON file:
|
|
204
206
|
```bash
|
|
205
207
|
echogarden detect-text-language story.txt detection-results.json
|
|
206
208
|
```
|
package/docs/Options.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Configuration options reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Here is a detailed reference for the options accepted by the Echogarden API and CLI.
|
|
4
|
+
|
|
5
|
+
Related resources you may need:
|
|
6
|
+
* [A comprehensive list of all supported engines](Engines.md)
|
|
7
|
+
* [A guide on how to use the command line interface](CLI.md)
|
|
4
8
|
|
|
5
9
|
## Synthesis
|
|
6
10
|
|
package/docs/Tasklist.md
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
* Button or keyboard shortcut to show and hide handles
|
|
40
40
|
* Show blinking placeholder when synthesis is loading for a particular text node
|
|
41
41
|
* Navigate paragraphs or sentences with keyboard shortcuts
|
|
42
|
+
* Minimum size when iterating text nodes to get handle
|
|
42
43
|
|
|
43
44
|
### Worker
|
|
44
45
|
* Optionally omit unnecessary data from the response (decoded input, segment data, etc.)
|
package/docs/Technical.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
* Echogarden is written in TypeScript and targets the Node.js platform.
|
|
4
4
|
* It uses ESM modules and latest ECMAScript and TypeScript features.
|
|
5
|
-
* It does not depend on essential binary executables. Instead, all of its engines either use pure JavaScript, WebAssembly, WASI, or the ONNX runtime
|
|
5
|
+
* It does not depend on essential binary executables. Instead, all of its engines either use pure JavaScript, WebAssembly, WASI, or the ONNX runtime, with some exceptions: the CLI does invoke a few binary executables, loaded from expansion packages, for the `SoX` and `ffmpeg` tools. Using expansion packages simplifies the installation and ensures non-buggy version are used. Since SoX `v14.4.2` is broken on Windows, it bundles `v14.4.1`.
|
|
6
6
|
* It does not depend on essential native node.js modules requiring compilation with `node-gyp`. This greatly simplifies the installation experience for end-users (the ONNX runtime bundles precompiled NAPI modules for all supported platforms - it doesn't require any compilation during its installation).
|
|
7
7
|
|
|
8
8
|
## Package system
|
|
@@ -34,7 +34,7 @@ Currently, the biggest contributors to the size are:
|
|
|
34
34
|
|
|
35
35
|
`onnxruntime-node` is big because it bundles pre-compiled binaries for multiple platforms. `kuromoji` is large because of its dictionary files and some unessential test code it bundles. The other three packages include large WASM binaries.
|
|
36
36
|
|
|
37
|
-
So, yes, in the future it may be possible to reduce the core installed size by dynamically installing some of these dependencies, or using modified, "slimmed-down"
|
|
37
|
+
So, yes, in the future it may be possible to reduce the core installed size by dynamically installing some of these dependencies, or using modified, "slimmed-down" versions of some packages.
|
|
38
38
|
|
|
39
39
|
## Since the code is almost all JavaScript and WASM, why can't it just run in a web browser?
|
|
40
40
|
|