echogarden 0.12.2 → 1.0.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/README.md +15 -14
- package/data/schemas/options.json +398 -111
- package/dist/alignment/DTWMfccSequenceAlignment.d.ts +1 -1
- package/dist/alignment/DTWMfccSequenceAlignment.js +8 -8
- package/dist/alignment/DTWSequenceAlignment.d.ts +1 -1
- package/dist/alignment/DTWSequenceAlignment.js +1 -1
- package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +1 -1
- package/dist/alignment/DTWSequenceAlignmentWindowed.js +2 -2
- package/dist/alignment/LevenshteinSequenceAlignment.d.ts +1 -1
- package/dist/alignment/LevenshteinSequenceAlignment.js +1 -1
- package/dist/alignment/SpeechAlignment.d.ts +9 -10
- package/dist/alignment/SpeechAlignment.js +136 -105
- package/dist/alignment/SpeechAlignment.js.map +1 -1
- package/dist/api/API.d.ts +13 -12
- package/dist/api/API.js +14 -13
- package/dist/api/API.js.map +1 -1
- package/dist/api/APIOptions.d.ts +5 -4
- package/dist/api/Alignment.d.ts +15 -9
- package/dist/api/Alignment.js +88 -74
- package/dist/api/Alignment.js.map +1 -1
- package/dist/api/Common.js +1 -1
- package/dist/api/Denoising.d.ts +6 -6
- package/dist/api/Denoising.js +23 -23
- package/dist/api/Denoising.js.map +1 -1
- package/dist/api/LanguageDetection.d.ts +19 -12
- package/dist/api/LanguageDetection.js +88 -38
- package/dist/api/LanguageDetection.js.map +1 -1
- package/dist/api/Recognition.d.ts +16 -6
- package/dist/api/Recognition.js +129 -55
- package/dist/api/Recognition.js.map +1 -1
- package/dist/api/SourceSeparation.d.ts +17 -0
- package/dist/api/SourceSeparation.js +61 -0
- package/dist/api/SourceSeparation.js.map +1 -0
- package/dist/api/Synthesis.d.ts +18 -18
- package/dist/api/Synthesis.js +191 -164
- package/dist/api/Synthesis.js.map +1 -1
- package/dist/api/Translation.d.ts +19 -8
- package/dist/api/Translation.js +132 -35
- package/dist/api/Translation.js.map +1 -1
- package/dist/api/Vad.d.ts +10 -5
- package/dist/api/Vad.js +76 -38
- package/dist/api/Vad.js.map +1 -1
- package/dist/audio/AudioBufferConversion.d.ts +1 -1
- package/dist/audio/AudioBufferConversion.js +4 -4
- package/dist/audio/AudioPlayer.d.ts +1 -1
- package/dist/audio/AudioPlayer.js +26 -26
- package/dist/audio/AudioPlayer.js.map +1 -1
- package/dist/audio/AudioRecorder.d.ts +1 -1
- package/dist/audio/AudioRecorder.js +5 -5
- package/dist/audio/AudioUtilities.d.ts +13 -9
- package/dist/audio/AudioUtilities.js +86 -24
- package/dist/audio/AudioUtilities.js.map +1 -1
- package/dist/cli/CLI.d.ts +3 -3
- package/dist/cli/CLI.js +271 -162
- package/dist/cli/CLI.js.map +1 -1
- package/dist/cli/CLIConfigFile.js +8 -8
- package/dist/cli/CLILauncher.js +6 -6
- package/dist/cli/CLIOptionsSchema.js +2 -2
- package/dist/cli/CLIParser.js +5 -5
- package/dist/cli/CLIStarter.js +4 -4
- package/dist/codecs/FFMpegTranscoder.d.ts +2 -2
- package/dist/codecs/FFMpegTranscoder.js +37 -37
- package/dist/codecs/FFMpegTranscoder.js.map +1 -1
- package/dist/codecs/TIMITCodec.js +5 -5
- package/dist/codecs/WaveCodec.d.ts +1 -1
- package/dist/codecs/WaveCodec.js +22 -22
- package/dist/denoising/RNNoise.d.ts +1 -1
- package/dist/denoising/RNNoise.js +9 -9
- package/dist/dsp/BiquadFilter.d.ts +3 -2
- package/dist/dsp/BiquadFilter.js +18 -11
- package/dist/dsp/BiquadFilter.js.map +1 -1
- package/dist/dsp/DecayingPeakEstimator.d.ts +16 -0
- package/dist/dsp/DecayingPeakEstimator.js +23 -0
- package/dist/dsp/DecayingPeakEstimator.js.map +1 -0
- package/dist/dsp/FFT.d.ts +8 -4
- package/dist/dsp/FFT.js +76 -30
- package/dist/dsp/FFT.js.map +1 -1
- package/dist/dsp/KWeightingFilter.d.ts +9 -0
- package/dist/dsp/KWeightingFilter.js +40 -0
- package/dist/dsp/KWeightingFilter.js.map +1 -0
- package/dist/dsp/LoudnessEstimator.d.ts +21 -0
- package/dist/dsp/LoudnessEstimator.js +47 -0
- package/dist/dsp/LoudnessEstimator.js.map +1 -0
- package/dist/dsp/MFCC.d.ts +2 -2
- package/dist/dsp/MFCC.js +15 -15
- package/dist/dsp/MelSpectogram.d.ts +1 -1
- package/dist/dsp/MelSpectogram.js +6 -6
- package/dist/dsp/Rubberband.d.ts +11 -11
- package/dist/dsp/Rubberband.js +27 -27
- package/dist/dsp/Sonic.d.ts +1 -1
- package/dist/dsp/Sonic.js +3 -3
- package/dist/dsp/SpeexResampler.d.ts +1 -1
- package/dist/dsp/SpeexResampler.js +2 -2
- package/dist/math/VectorMath.d.ts +12 -8
- package/dist/math/VectorMath.js +35 -32
- package/dist/math/VectorMath.js.map +1 -1
- package/dist/nlp/ChineseSegmentation.js +2 -2
- package/dist/nlp/CompromiseNLP.js +3 -3
- package/dist/nlp/EspeakPhonemizer.js +30 -30
- package/dist/nlp/IPA.js +20 -20
- package/dist/nlp/JapaneseSegmentation.js +6 -6
- package/dist/nlp/Lexicon.d.ts +1 -1
- package/dist/nlp/Lexicon.js +7 -7
- package/dist/nlp/Segmentation.d.ts +3 -0
- package/dist/nlp/Segmentation.js +21 -14
- package/dist/nlp/Segmentation.js.map +1 -1
- package/dist/nlp/TextNormalizer.js +16 -16
- package/dist/recognition/AmazonTranscribeSTT.d.ts +2 -2
- package/dist/recognition/AmazonTranscribeSTT.js +13 -14
- package/dist/recognition/AmazonTranscribeSTT.js.map +1 -1
- package/dist/recognition/AzureCognitiveServicesSTT.js +5 -6
- package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -1
- package/dist/recognition/GoogleCloudSTT.d.ts +3 -3
- package/dist/recognition/GoogleCloudSTT.js +18 -18
- package/dist/recognition/OpenAICloudSTT.d.ts +19 -0
- package/dist/recognition/OpenAICloudSTT.js +81 -0
- package/dist/recognition/OpenAICloudSTT.js.map +1 -0
- package/dist/recognition/SileroSTT.d.ts +2 -2
- package/dist/recognition/SileroSTT.js +25 -25
- package/dist/recognition/VoskSTT.d.ts +2 -2
- package/dist/recognition/VoskSTT.js +8 -8
- package/dist/recognition/WhisperCppSTT.d.ts +88 -0
- package/dist/recognition/WhisperCppSTT.js +332 -0
- package/dist/recognition/WhisperCppSTT.js.map +1 -0
- package/dist/recognition/WhisperSTT.d.ts +49 -25
- package/dist/recognition/WhisperSTT.js +626 -481
- package/dist/recognition/WhisperSTT.js.map +1 -1
- package/dist/server/Client.d.ts +1 -1
- package/dist/server/Client.js +22 -22
- package/dist/server/Server.js +9 -9
- package/dist/server/Server.js.map +1 -1
- package/dist/server/Worker.d.ts +22 -22
- package/dist/server/Worker.js +36 -36
- package/dist/server/Worker.js.map +1 -1
- package/dist/server/WorkerStarter.js +2 -2
- package/dist/source-separation/MDXNetSourceSeparation.d.ts +11 -0
- package/dist/source-separation/MDXNetSourceSeparation.js +161 -0
- package/dist/source-separation/MDXNetSourceSeparation.js.map +1 -0
- package/dist/speech-language-detection/SileroLanguageDetection.d.ts +1 -1
- package/dist/speech-language-detection/SileroLanguageDetection.js +7 -7
- package/dist/subtitles/Subtitles.d.ts +10 -0
- package/dist/subtitles/Subtitles.js +2 -2
- package/dist/subtitles/Subtitles.js.map +1 -1
- package/dist/synthesis/AwsPollyTTS.d.ts +1 -1
- package/dist/synthesis/AwsPollyTTS.js +12 -12
- package/dist/synthesis/AzureCognitiveServicesTTS.js +7 -7
- package/dist/synthesis/CoquiServerTTS.js +10 -10
- package/dist/synthesis/CoquiServerTTS.js.map +1 -1
- package/dist/synthesis/ElevenlabsTTS.d.ts +23 -0
- package/dist/synthesis/ElevenlabsTTS.js +103 -0
- package/dist/synthesis/ElevenlabsTTS.js.map +1 -0
- package/dist/synthesis/EspeakTTS.d.ts +6 -5
- package/dist/synthesis/EspeakTTS.js +81 -69
- package/dist/synthesis/EspeakTTS.js.map +1 -1
- package/dist/synthesis/FliteTTS.d.ts +3 -3
- package/dist/synthesis/FliteTTS.js +154 -154
- package/dist/synthesis/FliteTTS.js.map +1 -1
- package/dist/synthesis/GoogleCloudTTS.d.ts +3 -3
- package/dist/synthesis/GoogleCloudTTS.js +17 -17
- package/dist/synthesis/GoogleCloudTTS.js.map +1 -1
- package/dist/synthesis/GoogleTranslateTTS.d.ts +1 -1
- package/dist/synthesis/GoogleTranslateTTS.js +103 -103
- package/dist/synthesis/MicrosoftEdgeTTS.d.ts +2 -2
- package/dist/synthesis/MicrosoftEdgeTTS.js +74 -74
- package/dist/synthesis/OpenAICloudTTS.d.ts +13 -0
- package/dist/synthesis/OpenAICloudTTS.js +169 -0
- package/dist/synthesis/OpenAICloudTTS.js.map +1 -0
- package/dist/synthesis/SamTTS.js +3 -3
- package/dist/synthesis/SapiTTS.d.ts +3 -3
- package/dist/synthesis/SapiTTS.js +26 -26
- package/dist/synthesis/StreamlabsPollyTTS.d.ts +2 -2
- package/dist/synthesis/StreamlabsPollyTTS.js +27 -27
- package/dist/synthesis/SvoxPicoTTS.d.ts +2 -2
- package/dist/synthesis/SvoxPicoTTS.js +65 -65
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -1
- package/dist/synthesis/VitsTTS.d.ts +3 -3
- package/dist/synthesis/VitsTTS.js +378 -378
- package/dist/synthesis/VitsTTS.js.map +1 -1
- package/dist/tests/Test.js +2 -2
- package/dist/utilities/Compression.d.ts +5 -0
- package/dist/utilities/Compression.js +29 -13
- package/dist/utilities/Compression.js.map +1 -1
- package/dist/utilities/FileDownloader.d.ts +1 -1
- package/dist/utilities/FileDownloader.js +16 -16
- package/dist/utilities/FileSystem.js +7 -7
- package/dist/utilities/Locale.d.ts +7 -7
- package/dist/utilities/Locale.js +15 -15
- package/dist/utilities/Logger.js +3 -3
- package/dist/utilities/ObjectUtilities.js +19 -19
- package/dist/utilities/OpenPromise.js +2 -2
- package/dist/utilities/OpenPromise.js.map +1 -1
- package/dist/utilities/PackageManager.js +31 -0
- package/dist/utilities/PackageManager.js.map +1 -1
- package/dist/utilities/PathUtilities.js +8 -8
- package/dist/utilities/RandomGenerator.js +2 -2
- package/dist/utilities/SmoothEstimator.d.ts +8 -0
- package/dist/utilities/SmoothEstimator.js +25 -0
- package/dist/utilities/SmoothEstimator.js.map +1 -0
- package/dist/utilities/TarballMaker.js +8 -8
- package/dist/utilities/Timeline.d.ts +3 -2
- package/dist/utilities/Timeline.js +11 -11
- package/dist/utilities/Timeline.js.map +1 -1
- package/dist/utilities/Timer.js +4 -4
- package/dist/utilities/Utilities.d.ts +4 -0
- package/dist/utilities/Utilities.js +38 -15
- package/dist/utilities/Utilities.js.map +1 -1
- package/dist/utilities/WasmMemoryManager.js +7 -7
- package/dist/utilities/WebReader.js +23 -23
- package/dist/utilities/WikipediaReader.js +2 -2
- package/dist/voice-activity-detection/AdaptiveGateVAD.d.ts +28 -0
- package/dist/voice-activity-detection/AdaptiveGateVAD.js +138 -0
- package/dist/voice-activity-detection/AdaptiveGateVAD.js.map +1 -0
- package/dist/voice-activity-detection/SileroVAD.d.ts +1 -1
- package/dist/voice-activity-detection/SileroVAD.js +5 -5
- package/dist/voice-activity-detection/SileroVAD.js.map +1 -1
- package/dist/voice-activity-detection/WebRtcVAD.d.ts +1 -1
- package/dist/voice-activity-detection/WebRtcVAD.js +4 -4
- package/docs/API.md +29 -11
- package/docs/CLI.md +31 -7
- package/docs/Contributing.md +38 -0
- package/docs/Development.md +93 -19
- package/docs/Engines.md +28 -16
- package/docs/Licenses.md +4 -1
- package/docs/Options.md +158 -78
- package/docs/Releases.md +262 -0
- package/docs/Server.md +7 -7
- package/docs/Tasklist.md +95 -76
- package/docs/Technical.md +4 -4
- package/package.json +13 -14
- package/src/alignment/DTWMfccSequenceAlignment.ts +9 -9
- package/src/alignment/DTWSequenceAlignment.ts +2 -2
- package/src/alignment/DTWSequenceAlignmentWindowed.ts +3 -3
- package/src/alignment/LevenshteinSequenceAlignment.ts +2 -2
- package/src/alignment/SpeechAlignment.ts +204 -119
- package/src/api/API.ts +14 -13
- package/src/api/APIOptions.ts +12 -11
- package/src/api/Alignment.ts +147 -90
- package/src/api/Common.ts +1 -1
- package/src/api/Denoising.ts +28 -28
- package/src/api/LanguageDetection.ts +135 -48
- package/src/api/Recognition.ts +198 -59
- package/src/api/SourceSeparation.ts +99 -0
- package/src/api/Synthesis.ts +217 -181
- package/src/api/Translation.ts +193 -40
- package/src/api/Vad.ts +110 -41
- package/src/audio/AudioBufferConversion.ts +4 -4
- package/src/audio/AudioPlayer.ts +27 -27
- package/src/audio/AudioRecorder.ts +5 -5
- package/src/audio/AudioUtilities.ts +107 -24
- package/src/cli/CLI.ts +313 -164
- package/src/cli/CLIConfigFile.ts +8 -8
- package/src/cli/CLILauncher.ts +6 -6
- package/src/cli/CLIOptionsSchema.ts +2 -2
- package/src/cli/CLIParser.ts +5 -5
- package/src/cli/CLIStarter.ts +4 -4
- package/src/codecs/FFMpegTranscoder.ts +38 -38
- package/src/codecs/TIMITCodec.ts +5 -5
- package/src/codecs/WaveCodec.ts +22 -22
- package/src/denoising/RNNoise.ts +9 -9
- package/src/dsp/BiquadFilter.ts +19 -11
- package/src/dsp/DecayingPeakEstimator.ts +35 -0
- package/src/dsp/FFT.ts +103 -35
- package/src/dsp/KWeightingFilter.ts +43 -0
- package/src/dsp/LoudnessEstimator.ts +74 -0
- package/src/dsp/MFCC.ts +15 -15
- package/src/dsp/MelSpectogram.ts +7 -7
- package/src/dsp/Rubberband.ts +38 -38
- package/src/dsp/Sonic.ts +4 -4
- package/src/dsp/SpeexResampler.ts +2 -2
- package/src/math/VectorMath.ts +42 -33
- package/src/nlp/ChineseSegmentation.ts +3 -3
- package/src/nlp/CompromiseNLP.ts +3 -3
- package/src/nlp/EspeakPhonemizer.ts +30 -30
- package/src/nlp/IPA.ts +20 -20
- package/src/nlp/JapaneseSegmentation.ts +6 -6
- package/src/nlp/Lexicon.ts +8 -8
- package/src/nlp/Segmentation.ts +23 -14
- package/src/nlp/TextNormalizer.ts +16 -16
- package/src/recognition/AmazonTranscribeSTT.ts +16 -17
- package/src/recognition/AzureCognitiveServicesSTT.ts +8 -6
- package/src/recognition/GoogleCloudSTT.ts +21 -21
- package/src/recognition/OpenAICloudSTT.ts +142 -0
- package/src/recognition/SileroSTT.ts +26 -26
- package/src/recognition/VoskSTT.ts +10 -10
- package/src/recognition/WhisperCppSTT.ts +555 -0
- package/src/recognition/WhisperSTT.ts +760 -507
- package/src/server/Client.ts +23 -23
- package/src/server/Server.ts +9 -9
- package/src/server/Worker.ts +53 -53
- package/src/server/WorkerStarter.ts +2 -2
- package/src/source-separation/MDXNetSourceSeparation.ts +228 -0
- package/src/speech-language-detection/SileroLanguageDetection.ts +8 -8
- package/src/subtitles/Subtitles.ts +3 -3
- package/src/synthesis/AwsPollyTTS.ts +14 -14
- package/src/synthesis/AzureCognitiveServicesTTS.ts +10 -10
- package/src/synthesis/CoquiServerTTS.ts +10 -10
- package/src/synthesis/ElevenlabsTTS.ts +137 -0
- package/src/synthesis/EspeakTTS.ts +90 -71
- package/src/synthesis/FliteTTS.ts +157 -157
- package/src/synthesis/GoogleCloudTTS.ts +19 -19
- package/src/synthesis/GoogleTranslateTTS.ts +104 -104
- package/src/synthesis/MicrosoftEdgeTTS.ts +80 -80
- package/src/synthesis/OpenAICloudTTS.ts +196 -0
- package/src/synthesis/SamTTS.ts +3 -3
- package/src/synthesis/SapiTTS.ts +29 -29
- package/src/synthesis/StreamlabsPollyTTS.ts +29 -29
- package/src/synthesis/SvoxPicoTTS.ts +67 -67
- package/src/synthesis/VitsTTS.ts +380 -380
- package/src/tests/Test.ts +4 -4
- package/src/utilities/Compression.ts +34 -13
- package/src/utilities/FileDownloader.ts +19 -19
- package/src/utilities/FileSystem.ts +7 -7
- package/src/utilities/Locale.ts +22 -22
- package/src/utilities/Logger.ts +4 -4
- package/src/utilities/ObjectUtilities.ts +19 -19
- package/src/utilities/OpenPromise.ts +2 -2
- package/src/utilities/PackageManager.ts +40 -0
- package/src/utilities/PathUtilities.ts +8 -8
- package/src/utilities/RandomGenerator.ts +3 -3
- package/src/utilities/SmoothEstimator.ts +35 -0
- package/src/utilities/TarballMaker.ts +9 -9
- package/src/utilities/Timeline.ts +15 -13
- package/src/utilities/Timer.ts +4 -4
- package/src/utilities/Utilities.ts +49 -15
- package/src/utilities/WasmMemoryManager.ts +7 -7
- package/src/utilities/WebReader.ts +23 -23
- package/src/utilities/WikipediaReader.ts +2 -2
- package/src/voice-activity-detection/AdaptiveGateVAD.ts +202 -0
- package/src/voice-activity-detection/SileroVAD.ts +5 -5
- package/src/voice-activity-detection/WebRtcVAD.ts +5 -5
- package/dist/synthesis/ElevenLabsTTS.d.ts +0 -8
- package/dist/synthesis/ElevenLabsTTS.js +0 -82
- package/dist/synthesis/ElevenLabsTTS.js.map +0 -1
- package/src/synthesis/ElevenLabsTTS.ts +0 -104
package/docs/Engines.md
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
|
|
2
2
|
# Supported engines
|
|
3
3
|
|
|
4
|
-
## Text
|
|
4
|
+
## Text-to-speech
|
|
5
5
|
|
|
6
6
|
**Offline**:
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
* [VITS](https://github.com/jaywalnut310/vits) (`vits`): a high-quality end-to-end neural speech synthesis architecture. Available models were trained by Michael Hansen as part of his [Piper speech synthesis system](https://github.com/rhasspy/piper). Currently, there are 117 voices, in a range of languages, including English (US, UK), Spanish (ES, MX), Portuguese (PT, BR), Italian, French, German, Dutch (NL, BE), Swedish, Norwegian, Danish, Finnish, Polish, Greek, Romanian, Serbian, Czech, Hungarian, Slovak, Slovenian, Turkish, Arabic, Farsi, Russian, Ukrainian, Catalan, Luxembourgish, Icelandic, Swahili, Kazakh, Georgian, Nepali, Vietnamese and Chinese. You can listen to audio samples of all voices and languages in [Piper's samples page](https://rhasspy.github.io/piper-samples/).
|
|
8
9
|
* [SVOX Pico](https://github.com/naggety/picotts) (`pico`): a legacy diphone-based synthesis engine. Supports English (US, UK), Spanish, Italian, French, and German.
|
|
9
10
|
* [Flite](https://github.com/festvox/flite) (`flite`): a legacy diphone-based synthesis engine. Supports English (US, Scottish), and several Indic languages: Hindi, Bengali, Marathi, Telugu, Tamil, Gujarati, Kannada and Punjabi.
|
|
10
11
|
* [eSpeak-NG](https://github.com/espeak-ng/espeak-ng/) (`espeak`): a lightweight "robot" sounding formant-based synthesizer. Supports 100+ languages. Extensively used internally for speech alignment, phonemization, and other internal tasks.
|
|
@@ -16,11 +17,12 @@
|
|
|
16
17
|
|
|
17
18
|
* [Microsoft Speech Platform](https://www.microsoft.com/en-us/download/details.aspx?id=27225) (`msspeech`): Microsoft Server Speech API. Requires [installing a runtime (2.6MB)](https://www.microsoft.com/en-us/download/details.aspx?id=27225). Supports 28 dialects, which can be individually downloaded via [freely available installers](https://www.microsoft.com/en-us/download/details.aspx?id=27224), or, for convenience, bundled as [a single 358MB zip file](https://drive.google.com/u/0/uc?id=1uQdFNxLzUxpaEwVVKhMawys8cIh3F21T&export=download). Has voices for English (US, UK, AU, CA), Spanish (ES, MX), Portuguese (BR, PT), German, French (FR, CA), Italian, Norwegian, Dutch, Russian, Swedish, Danish, Catalan, Finnish, Japanese, Korean and Chinese (ZH, HK, TW). All voices are female.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
**Note**: both these engines require manually installing the [`winax` npm package](https://www.npmjs.com/package/winax) by running `npm install winax -g`.
|
|
21
|
+
|
|
22
|
+
`winax` is a native module which requires the Node.js Windows build tools to successfully install. If you have issues installing this package, please ensure that you've checked the "install necessary tools" checkbox during the installation of Node.js.
|
|
20
23
|
|
|
21
|
-
|
|
24
|
+
**Client for self-hosted or remote servers**:
|
|
22
25
|
|
|
23
|
-
**Client for remote or self-hosted servers**:
|
|
24
26
|
* [Coqui TTS](https://github.com/coqui-ai/TTS) server (`coqui-server`)
|
|
25
27
|
|
|
26
28
|
**Cloud services**:
|
|
@@ -30,20 +32,22 @@ These are commercial services that require a subscription and an API key to use:
|
|
|
30
32
|
* [Google Cloud](https://cloud.google.com/text-to-speech) (`google-cloud`)
|
|
31
33
|
* [Azure Cognitive Services](https://azure.microsoft.com/en-us/products/cognitive-services/text-to-speech/) (`microsoft-azure`)
|
|
32
34
|
* [Amazon Polly](https://aws.amazon.com/polly/) (`amazon-polly`)
|
|
35
|
+
* [OpenAI Cloud](https://platform.openai.com/) (`openai-cloud`)
|
|
33
36
|
* [Elevenlabs](https://elevenlabs.io/) (`elevenlabs`)
|
|
34
37
|
|
|
35
38
|
**Cloud services (unofficial)**:
|
|
36
39
|
|
|
37
|
-
These cloud-based engines connect to public
|
|
40
|
+
These cloud-based engines connect to public cloud APIs that are not officially publicized by their operators. They are included for educational purposes only, and may be removed in the future:
|
|
38
41
|
|
|
39
42
|
* Google Translate (`google-translate`): used by the [Google Translate web UI](https://translate.google.com/) to speak written text in any one of its supported languages. Offers a single voice for each language (usually female).
|
|
40
43
|
* Microsoft Edge (`microsoft-edge`): subset of the Azure Cognitive Services cloud TTS API used by the Microsoft Edge browser as part of its support for the [Web Speech API](https://developer.mozilla.org/en-US/docs/Web/API/Web_Speech_API) and its [Read Aloud](https://www.microsoft.com/en-us/edge/features/read-aloud?form=MT00D8) feature. Using this engine requires a special token, which should be passed via the `microsoftEdge.trustedClientToken` option.
|
|
41
|
-
* Streamlabs Polly (`streamlabs-polly`): a public REST API by Streamlabs, primarily intended for generating speech for TTS donations. It includes a few English (US, UK, AU, IN) voices, which are similar to some of the non-neural (Ivona-based) voices offered by Amazon Polly.
|
|
44
|
+
* Streamlabs Polly (`streamlabs-polly`): a public REST API by Streamlabs, primarily intended for generating speech for TTS donations. It includes a few English (US, UK, AU, IN) voices, which are similar to some of the non-neural (Ivona-based) voices offered by Amazon Polly (**Note**: as of April 2024, the public Streamlabs Polly REST API doesn't seem to be accessible anymore).
|
|
42
45
|
|
|
43
|
-
## Speech
|
|
46
|
+
## Speech-to-text
|
|
44
47
|
|
|
45
48
|
**Offline**:
|
|
46
|
-
* [OpenAI Whisper](https://github.com/openai/whisper) (`whisper`): high accuracy transformer-based architecture. Supports 99 languages. There are several models of different sizes, some are multilingual, and some are English only (`.en`): `tiny`, `tiny.en`, `base`, `base.en`, `small`, `small.en`, `medium`, `medium.en`, `large`, `large-v1` and `large-v2`.
|
|
49
|
+
* [OpenAI Whisper](https://github.com/openai/whisper) (`whisper`): high accuracy transformer-based speech recognition architecture. Supports 99 languages. There are several models of different sizes, some are multilingual, and some are English only (`.en`): `tiny`, `tiny.en`, `base`, `base.en`, `small`, `small.en`, `medium`, `medium.en`, `large`, `large-v1` and `large-v2`, `large-v3`. **Note**: large models are not currently supported by `onnxruntime-node` due to model size restrictions.
|
|
50
|
+
* [Whisper.cpp](https://github.com/ggerganov/whisper.cpp) (`whisper.cpp`): a port of the Whisper architecture to C++, by Georgi Gerganov. Supports all Whisper models, including several quantized ones (see full list in the options page). Has various different builds, including CUDA and OpenCL for GPU support.
|
|
47
51
|
* [Vosk](https://github.com/alphacep/vosk-api) (`vosk`): models available for 25+ languages. _Note_: the Vosk package is not included in the default installation, but you can add support for it using `npm install @echogarden/vosk -g`. Then, you'll need to manually [download a model](https://alphacephei.com/vosk/models) and specify its directory path via the `vosk.modelPath` option.
|
|
48
52
|
* [Silero](https://github.com/snakers4/silero-models) (`silero`): models available for English, Spanish, German and Ukrainian. For [non-commercial use only](https://github.com/snakers4/silero-models/blob/master/LICENSE).
|
|
49
53
|
|
|
@@ -54,24 +58,27 @@ These are commercial services that require a subscription and an API key to use:
|
|
|
54
58
|
* [Google Cloud](https://cloud.google.com/speech-to-text) (`google-cloud`)
|
|
55
59
|
* [Azure Cognitive Services](https://azure.microsoft.com/en-us/products/cognitive-services/speech-to-text/) (`microsoft-azure`)
|
|
56
60
|
* [Amazon Transcribe](https://aws.amazon.com/transcribe/) (`amazon-transcribe`)
|
|
61
|
+
* [OpenAI Cloud](https://platform.openai.com/) (`openai-cloud`)
|
|
57
62
|
|
|
58
|
-
## Speech
|
|
63
|
+
## Speech-to-transcript alignment
|
|
59
64
|
|
|
60
65
|
These engines' goal is to match (or "align") a given spoken recording with a given transcript as closely as possible. They will annotate each word in the transcript with approximate start and end timestamps:
|
|
61
66
|
|
|
62
|
-
* Dynamic Time Warping (`dtw`): transcript is first synthesized using the eSpeak engine, then [DTW](https://en.wikipedia.org/wiki/Dynamic_time_warping) is applied to find the best mapping between the synthesized
|
|
63
|
-
* Dynamic Time Warping with Recognition Assist (`dtw-ra`): recognition is applied to the audio (any recognition engine can be used), then both the ground-truth transcript and the recognized transcript are synthesized using eSpeak. Then, the best mapping is found between the two synthesized
|
|
64
|
-
* Whisper-based alignment (`whisper`): transcript is tokenized and decoded along with the audio using the Whisper model, then timestamps are extracted from the internal state of the model
|
|
67
|
+
* Dynamic Time Warping (`dtw`): transcript is first synthesized using the eSpeak engine, then the [DTW](https://en.wikipedia.org/wiki/Dynamic_time_warping) alignment algorithm is applied to find the best mapping between the synthesized and original audio frames.
|
|
68
|
+
* Dynamic Time Warping with Recognition Assist (`dtw-ra`): recognition is applied to the audio (any recognition engine can be used), then both the ground-truth transcript and the recognized transcript are synthesized using eSpeak. Then, the best mapping is found between the two synthesized waveforms, and the result is mapped back to the original audio using the timing information produced by the recognizer.
|
|
69
|
+
* Whisper-based alignment (`whisper`): transcript is tokenized and decoded along with the audio using the Whisper model, then timestamps are extracted from the internal state of the model. **Note**: currently, only supports audio inputs that are 30 seconds or less. Some words or special characters may fail to tokenize due to limitations of the tokenizer used by Whisper.
|
|
65
70
|
|
|
66
|
-
## Speech translation
|
|
71
|
+
## Speech-to-text translation
|
|
67
72
|
|
|
68
|
-
* [Whisper](https://github.com/openai/whisper) (`whisper`): the Whisper model can
|
|
73
|
+
* [Whisper](https://github.com/openai/whisper) (`whisper`): the Whisper model can recognize speech in any one of its supported languages and output a transcript directly translated to English. Other languages are not supported as targets.
|
|
74
|
+
* [Whisper.cpp](https://github.com/ggerganov/whisper.cpp) (`whisper.cpp`): supports translation to English
|
|
75
|
+
* [OpenAI Cloud](https://platform.openai.com/) (`openai-cloud`): OpenAI cloud service. Only translates to English.
|
|
69
76
|
|
|
70
77
|
## Language detection
|
|
71
78
|
|
|
72
79
|
**Spoken language detection**:
|
|
73
80
|
* [Silero Language Classifier](https://github.com/snakers4/silero-vad/wiki/Other-Models) (`silero`): a speech language classification model by Silero.
|
|
74
|
-
* [Whisper](https://github.com/openai/whisper) (`whisper`): uses the language token produced by the `whisper` speech recognition model to generate a set of probabilities for the 99 languages it has been trained on
|
|
81
|
+
* [Whisper](https://github.com/openai/whisper) (`whisper`): uses the language token produced by the `whisper` speech recognition model to generate a set of probabilities for the 99 languages it has been trained on.
|
|
75
82
|
|
|
76
83
|
**Text language detection**:
|
|
77
84
|
* [TinyLD](https://www.npmjs.com/package/tinyld) (`tinyld`): a simple language detection library.
|
|
@@ -82,7 +89,12 @@ These engines' goal is to match (or "align") a given spoken recording with a giv
|
|
|
82
89
|
* [WebRTC VAD](https://github.com/dpirch/libfvad) (`webrtc`): a voice activity detector. Originally from the Chromium browser source code.
|
|
83
90
|
* [Silero VAD](https://github.com/snakers4/silero-vad) (`silero`): a voice activity detection model by Silero.
|
|
84
91
|
* [RNNoise](https://github.com/xiph/rnnoise) (`rnnoise`): uses RNNoise's speech probabilities output for each audio frame as a VAD metric.
|
|
92
|
+
* Adaptive Gate (`adaptive-gate`): uses a band-limited adaptive gate to identify activity in the lower voice frequencies. Reliable, but will often pass non-vocal sounds if they are loud enough. Good for clean speech and a cappella singing, where most non-vocal segments are quiet.
|
|
85
93
|
|
|
86
94
|
## Speech denoising
|
|
87
95
|
|
|
88
96
|
* [RNNoise](https://github.com/xiph/rnnoise) (`rnnoise`): a noise suppression library based on a recurrent neural network.
|
|
97
|
+
|
|
98
|
+
## Source separation
|
|
99
|
+
|
|
100
|
+
* [MDX-NET](https://github.com/kuielab/mdx-net) (`mdx-net`): Deep learning source separation architecture by [KUIELAB (Korea University)](https://kuielab.github.io/).
|
package/docs/Licenses.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
## Engines and libraries:
|
|
4
4
|
|
|
5
5
|
* `onnxruntime-node`: [MIT License](https://github.com/microsoft/onnxruntime/blob/main/LICENSE)
|
|
6
|
+
* `whisper.cpp`: [MIT License](https://github.com/ggerganov/whisper.cpp/blob/master/LICENSE)
|
|
6
7
|
* `espeak`: [GNU GPL v3](https://github.com/espeak-ng/espeak-ng/blob/master/COPYING)
|
|
7
8
|
* `flite`: [BSD License](https://github.com/festvox/flite/blob/master/COPYING)
|
|
8
9
|
* `pico`: [Apache License 2.0](https://github.com/gmn/nanotts/blob/master/LICENSE)
|
|
@@ -32,7 +33,9 @@ All are freely distributable, with varying licenses:
|
|
|
32
33
|
* Silero speech recognition models (`silero-en-`, `silero-de-`, `silero-es-`, `silero-ua-`): [BY-NC-SA](https://github.com/snakers4/silero-models/blob/master/LICENSE)
|
|
33
34
|
* VITS pre-trained models (`vits-`): licensed under various creative commons licenses: [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/), [CC-BY](https://creativecommons.org/licenses/by/4.0/) and [BY-NC-SA](https://creativecommons.org/licenses/by-nc-sa/4.0/), and few are public domain (you can view the individual license for each model in the model cards on the [samples page](https://rhasspy.github.io/piper-samples/)). The [Piper system](https://github.com/rhasspy/piper) itself is published under the [MIT License](https://github.com/rhasspy/piper/blob/master/LICENSE.md)
|
|
34
35
|
* Whisper pre-trained models (`whisper-`): [MIT License](https://github.com/openai/whisper/blob/main/LICENSE)
|
|
36
|
+
* MDX-NET source separation models (`mdxnet-`): [MIT License](https://github.com/kuielab/mdx-net/blob/main/LICENSE)
|
|
35
37
|
|
|
36
38
|
Tool binary distributions:
|
|
37
|
-
*
|
|
39
|
+
* FFmpeg: [LGPL, GPL v2 and GPL v3 Licenses](https://github.com/FFmpeg/FFmpeg)
|
|
38
40
|
* SoX: [GPL v2 License](https://github.com/chirlu/sox/blob/master/LICENSE.GPL)
|
|
41
|
+
* whisper.cpp: [MIT License](https://github.com/ggerganov/whisper.cpp/blob/master/LICENSE)
|
package/docs/Options.md
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Options reference
|
|
2
2
|
|
|
3
|
-
Here
|
|
3
|
+
Here's a detailed reference for all the options accepted by the Echogarden CLI and API.
|
|
4
4
|
|
|
5
|
-
**Related
|
|
6
|
-
* [
|
|
7
|
-
* [
|
|
8
|
-
* [
|
|
5
|
+
**Related pages**:
|
|
6
|
+
* [List of all supported engines](Engines.md)
|
|
7
|
+
* [Quick guide for the command line interface](CLI.md)
|
|
8
|
+
* [Node.js API reference](API.md)
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Text-to-speech
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Applies to CLI operations: `speak`, `speak-file`, `speak-url`, `speak-wikipedia`, API method: `synthesize`
|
|
13
13
|
|
|
14
14
|
**General**:
|
|
15
|
-
* `engine`: identifier of the synthesis engine to use, such as `espeak` or `
|
|
15
|
+
* `engine`: identifier of the synthesis engine to use, such as `espeak`, `vits` or `google-translate` (see [the full engine list](Engines.md)). Auto-selected if not set
|
|
16
16
|
* `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
|
|
17
|
-
* `voice`: name of the voice to use. Can be a search string.
|
|
17
|
+
* `voice`: name of the voice to use. Can be a search string. Auto-selected if not set
|
|
18
18
|
* `voiceGender`: gender of the voice to use. Optional
|
|
19
19
|
* `speed`: speech rate factor, relative to default. In the range `0.1`..`10.0`. Defaults to `1.0`
|
|
20
20
|
* `pitch`: pitch factor, relative to default. In the range `0.1`..`10.0`. Defaults to `1.0`
|
|
@@ -23,9 +23,10 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
23
23
|
* `ssml`: the input is SSML. Defaults to `false`
|
|
24
24
|
* `sentenceEndPause`: pause duration (seconds) at end of sentence. Defaults to `0.75`
|
|
25
25
|
* `segmentEndPause`: pause duration (seconds) at end of segment. Defaults to `1.0`
|
|
26
|
-
* `customLexiconPaths`:
|
|
27
|
-
* `alignment`: prefix to provide
|
|
28
|
-
* `
|
|
26
|
+
* `customLexiconPaths`: a list of custom lexicon file paths. Optional
|
|
27
|
+
* `alignment`: prefix to provide options for alignment. Options detailed in section for alignment
|
|
28
|
+
* `subtitles`: prefix to provide options for subtitles. Options detailed in section for subtitles
|
|
29
|
+
* `languageDetection`: prefix to provide options for text language detection. Options detailed in section for text language detection
|
|
29
30
|
|
|
30
31
|
**Plain text processing**:
|
|
31
32
|
* `plainText.paragraphBreaks`: split to paragraphs based on single (`single`), or double (`double`) line breaks. Defaults to `double`
|
|
@@ -33,22 +34,16 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
33
34
|
|
|
34
35
|
**Post-processing**:
|
|
35
36
|
* `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `true`
|
|
36
|
-
* `postProcessing.
|
|
37
|
-
* `postProcessing.
|
|
37
|
+
* `postProcessing.targetPeak`: target peak (decibels) for normalization. Defaults to `-3`
|
|
38
|
+
* `postProcessing.maxGainIncrease`: max gain increase (decibels) when performing normalization. Defaults to `30`
|
|
38
39
|
* `postProcessing.speed`: target speed for time stretching. Defaults to `1.0`
|
|
39
40
|
* `postProcessing.pitch`: target pitch for pitch shifting. Defaults to `1.0`
|
|
40
41
|
* `postProcessing.timePitchShiftingMethod`: method for time and pitch shifting. Can be `sonic` or `rubberband`. Defaults to `sonic`
|
|
41
|
-
* `postProcessing.rubberband`: prefix for RubberBand options (TODO)
|
|
42
|
+
* `postProcessing.rubberband`: prefix for RubberBand options (TODO: document options)
|
|
42
43
|
|
|
43
44
|
**Output audio format**:
|
|
44
|
-
* `outputAudioFormat.codec`: Codec identifier (**Note**: API only
|
|
45
|
-
* `outputAudioFormat.bitrate`: Custom bitrate for encoding, applies only to `mp3`, `opus`, `m4a`, `ogg`. By default, bitrates are selected between 48Kbps and 64Kbps, to provide a good speech quality while minimizing file size.
|
|
46
|
-
|
|
47
|
-
**Subtitles**
|
|
48
|
-
* `subtitles.maxLineCount`: maximum number of lines per cue. Defaults to `2`
|
|
49
|
-
* `subtitles.maxLineWidth`: maximum characters in a line. Defaults to `42`
|
|
50
|
-
* `subtitles.minWordsInLine`: minimum number of words in a line, such that a line break can be added. Defaults to `4`
|
|
51
|
-
* `subtitles.maxAddedDuration`: maximum extra time (in seconds) that may be added after a cue's speech end time. This also ensures that very short-duration segments aren't shown in a flash. Defaults to `3`
|
|
45
|
+
* `outputAudioFormat.codec`: Codec identifier (**Note**: API only. CLI uses file extensions instead), can be `wav`, `mp3`, `opus`, `m4a`, `ogg`, `flac`. Leaving as `undefined` would return a raw audio structure (see more information at the [API documentation](API.md]). Optional
|
|
46
|
+
* `outputAudioFormat.bitrate`: Custom bitrate for encoding, applies only to `mp3`, `opus`, `m4a`, `ogg`. By default, bitrates are selected between 48Kbps and 64Kbps, to provide a good speech quality while minimizing file size. Optional
|
|
52
47
|
|
|
53
48
|
**VITS**:
|
|
54
49
|
* `vits.speakerId`: speaker ID, for VITS models that support multiple speakers. Optional
|
|
@@ -69,7 +64,7 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
69
64
|
* `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
|
|
70
65
|
|
|
71
66
|
**Microsoft Speech Platform**:
|
|
72
|
-
* `msspeech.rate`: same
|
|
67
|
+
* `msspeech.rate`: same units and effects as the SAPI speech rate
|
|
73
68
|
|
|
74
69
|
**Coqui Server**:
|
|
75
70
|
* `coquiServer.serverUrl`: server URL
|
|
@@ -91,7 +86,15 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
91
86
|
* `amazonPolly.accessKeyId`: access key ID (required)
|
|
92
87
|
* `amazonPolly.secretAccessKey`: secret access key (required)
|
|
93
88
|
* `amazonPolly.pollyEngine`: Amazon Polly engine kind, can be `standard` or `neural`. Defaults to `neural`
|
|
94
|
-
* `amazonPolly.lexiconNames`:
|
|
89
|
+
* `amazonPolly.lexiconNames`: an array of lexicon names. Optional
|
|
90
|
+
|
|
91
|
+
**OpenAI Cloud**:
|
|
92
|
+
* `openAICloud.apiKey`: API key (required)
|
|
93
|
+
* `openAICloud.organization`: organization identifier. Optional
|
|
94
|
+
* `openAICloud.baseURL`: override the default base URL for the API. Optional
|
|
95
|
+
* `openAICloud.model`: model to use. Can be either `tts-1` or `tts-1-hd`. Defaults to `tts-1`
|
|
96
|
+
* `openAICloud.timeout`: request timeout. Optional
|
|
97
|
+
* `openAICloud.maxRetries`: maximum retries on failure. Defaults to 10
|
|
95
98
|
|
|
96
99
|
**Elevenlabs**:
|
|
97
100
|
* `elevenLabs.apiKey`: API key (required)
|
|
@@ -99,7 +102,7 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
99
102
|
* `elevenLabs.similarityBoost`: similarity boost. Defaults to `0.5`
|
|
100
103
|
|
|
101
104
|
**Google Translate**:
|
|
102
|
-
* `googleTranslate.tld`: top level domain to
|
|
105
|
+
* `googleTranslate.tld`: top level domain to connect to. Can change the dialect for a small number of voices. For example `us` gives American English for `en`, while `com` gives British English for `en`. Defaults to `us`
|
|
103
106
|
|
|
104
107
|
**Microsoft Edge**:
|
|
105
108
|
* `microsoftEdge.trustedClientToken`: trusted client token (required). A special token required to use the service
|
|
@@ -107,46 +110,59 @@ Applicable to CLI commands: `speak`, `speak-file`, `speak-url`, `speak-wikipedia
|
|
|
107
110
|
|
|
108
111
|
## Voice list request
|
|
109
112
|
|
|
110
|
-
|
|
113
|
+
Applies to CLI operation: `list-voices`, API method: `requestVoiceList`
|
|
111
114
|
|
|
112
|
-
**General
|
|
115
|
+
**General**:
|
|
113
116
|
* `language`: language code to filter by (optional)
|
|
114
117
|
* `voice`: name or name pattern to filter by (optional)
|
|
115
118
|
* `voiceGender`: gender to filter by (optional)
|
|
116
119
|
|
|
117
|
-
Also accepted are engine-specific options that may be required in order to retrieve the voice list
|
|
120
|
+
Also accepted are the following engine-specific options that may be required in order to retrieve the voice list:
|
|
118
121
|
* `googleCloud.apiKey`
|
|
119
122
|
* `microsoftAzure.subscriptionKey`, `microsoftAzure.serviceRegion`
|
|
120
123
|
* `amazonPolly.region`, `amazonPolly.accessKeyId`, `amazonPolly.secretAccessKey`
|
|
121
124
|
* `elevenLabs.apiKey`
|
|
125
|
+
* `microsoftEdge.trustedClientToken`
|
|
122
126
|
|
|
123
|
-
##
|
|
127
|
+
## Speech-to-text
|
|
124
128
|
|
|
125
|
-
|
|
129
|
+
Applies to CLI operation: `transcribe`, API method: `recognize`
|
|
126
130
|
|
|
127
131
|
**General**:
|
|
128
|
-
* `engine`: identifier of the recognition engine to use, such as `whisper` or `vosk`
|
|
132
|
+
* `engine`: identifier of the recognition engine to use, such as `whisper` or `vosk` (see [the full engine list](Engines.md))
|
|
129
133
|
* `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
|
|
130
|
-
* `
|
|
131
|
-
* `
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
* `subtitles
|
|
135
|
-
* `
|
|
136
|
-
* `
|
|
137
|
-
* `subtitles.minWordsInLine`: minimum number of remaining words to break to a new line. Defaults to `4`
|
|
138
|
-
* `subtitles.separatePhrases`: try to separate phrases or sentences in new lines or cues, if possible. Defaults to `true`
|
|
139
|
-
* `subtitles.maxAddedDuration`: maximum extra time (in seconds) that may be added after a cue's end time. This gives the reader additional time to read the cue, and also ensures that very short duration cues aren't shown in a flash. Defaults to `3.0`
|
|
140
|
-
|
|
141
|
-
_Note_: options `maxLineCount`, `maxLineWidth`, `minWordsInLine`, `separatePhrases`, are only effective when using the `segment` and `sentence` modes, and are ignored in all other modes. `subtitles.maxAddedDuration` doesn't apply to modes `word`, `phone` and `word+phone` (they always use the exact start and end timestamps).
|
|
134
|
+
* `crop`: crop to active parts using voice activity detection before starting recognition. Defaults to `true`
|
|
135
|
+
* `isolate`: apply source separation to isolate voice before starting recognition. Defaults to `false`
|
|
136
|
+
* `alignment`: prefix to provide options for alignment. Options detailed in section for alignment
|
|
137
|
+
* `languageDetection`: prefix to provide options for language detection. Options detailed in section for speech language detection
|
|
138
|
+
* `subtitles`: prefix to provide options for subtitles. Options detailed in section for subtitles
|
|
139
|
+
* `vad`: prefix to provide options for voice activity detection when `crop` is set to `true`. Options detailed in section for voice activity detection
|
|
140
|
+
* `sourceSeparation`: prefix to provide options for source separation when `isolate` is set to `true`. Options detailed in section for source separation
|
|
142
141
|
|
|
143
142
|
**Whisper**:
|
|
144
|
-
* `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
|
|
143
|
+
* `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`, `large-v3` (**Note**: large models aren't yet supported by `onnxruntime-node` due to their size). Defaults to `tiny` or `tiny.en`
|
|
145
144
|
* `whisper.temperature`: temperature setting for the text decoder. Impacts amount of randomization for token selection. It is recommended to leave at `0.1` (close to no randomization - almost always chooses the top ranked token) or choose a relatively low value (`0.25` or lower) for best results. Defaults to `0.1`
|
|
146
|
-
* `whisper.prompt`: initial text to give the Whisper model. Can be a vocabulary, or example of some sort. Note that if the prompt is very similar to the transcript, the model may intentionally avoid producing the transcript tokens as it may assume that they have already been transcribed. Optional
|
|
145
|
+
* `whisper.prompt`: initial text to give the Whisper model. Can be a vocabulary, or example text of some sort. Note that if the prompt is very similar to the transcript, the model may intentionally avoid producing the transcript tokens as it may assume that they have already been transcribed. Optional
|
|
147
146
|
* `whisper.topCandidateCount`: the number of top candidate tokens to consider. Defaults to `5`
|
|
148
147
|
* `whisper.punctuationThreshold`: the minimal probability for a punctuation token, included in the top candidates, to be chosen unconditionally. A lower threshold encourages the model to output more punctuation symbols. Defaults to `0.2`
|
|
149
148
|
* `whisper.autoPromptParts`: use previous part's recognized text as prompt for the next part. Disabling this may help to prevent repetition carrying over between parts, in some cases. Defaults to `true`
|
|
149
|
+
* `whisper.maxTokensPerPart`: maximum number of tokens to decode for each 30 second audio part. Defaults to `250`
|
|
150
|
+
* `whisper.suppressRepetition`: attempt to suppress decoding repeating token patterns. Defaults to `true`
|
|
151
|
+
* `whisper.seed`: use a custom seed for token selection, when temperature is greater than 0. Uses a constant seed by default
|
|
152
|
+
|
|
153
|
+
**Whisper.cpp**:
|
|
154
|
+
* `whisperCpp.model`: selects which `whisper.cpp` 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`, `large-v3`. These quantized models are also supported: `tiny-q5_1`, `tiny.en-q5_1`, `tiny.en-q8_0`,`base-q5_1`, `base.en-q5_1`, `small-q5_1`, `small.en-q5_1`, `medium-q5_0`, `medium.en-q5_0`, `large-v2-q5_0`, `large-v3-q5_0`. Defaults to `base` or `base.en`
|
|
155
|
+
* `whisperCpp.executablePath`: custom `whisper.cpp` executable path (currently required for macOS)
|
|
156
|
+
* `whisperCpp.build`: type of `whisper.cpp` build to use. Can be set `cpu`, `cublas-11.8.0`, `cublas-12.4.0`. By default, builds are auto-selected and downloaded for Windows x64 (`cpu`, `cublas-11.8.0`, `cublas-12.4.0`) and Linux x64 (`cpu`). Using other builds requires providing a custom `executablePath`
|
|
157
|
+
* `whisperCpp.threadCount`: number of threads to use, defaults to `4`
|
|
158
|
+
* `whisperCpp.splitCount`: number of splits of the audio data to process in parallel (called `--processors` in the CLI). A value greater than `1` can increase memory use significantly, reduce timing accuracy, and slow down execution in some cases. Defaults to `1` (highly recommended)
|
|
159
|
+
* `whisperCpp.enableGPU`: enable GPU processing. Defaults to `true` on CUDA-enabled builds, otherwise `false`
|
|
160
|
+
* `whisperCpp.topCandidateCount`: the number of top candidate tokens to consider. Defaults to `5`
|
|
161
|
+
* `whisperCpp.beamCount`: the number of decoding paths to use during beam search. Defaults to `5`
|
|
162
|
+
* `whisperCpp.repetitionThreshold`: minimal repetition / compressibility score to cause a decoded segment to be discarded. Defaults to `2.4`
|
|
163
|
+
* `whisperCpp.prompt`: initial text to give the Whisper model. Can be a vocabulary, or example text of some sort. Note that if the prompt is very similar to the transcript, the model may intentionally avoid producing the transcript tokens as it may assume that they have already been transcribed. Optional
|
|
164
|
+
* `whisperCpp.enableDTW`: enable experimental `whisper.cpp` internal DTW-based token alignment to be used to derive timestamps. Defaults to `false` (recommended for now)
|
|
165
|
+
* `whisperCpp.verbose`: show all CLI messages during execution. Defaults to `false`
|
|
150
166
|
|
|
151
167
|
**Vosk**:
|
|
152
168
|
* `vosk.modelPath`: path to the Vosk model to be used
|
|
@@ -162,83 +178,113 @@ _Note_: options `maxLineCount`, `maxLineWidth`, `minWordsInLine`, `separatePhras
|
|
|
162
178
|
* `googleCloud.useEnhancedModel`: use enhanced model. Defaults to `true`
|
|
163
179
|
|
|
164
180
|
**Azure Cognitive Services**:
|
|
165
|
-
* `
|
|
166
|
-
* `
|
|
181
|
+
* `microsoftAzure.subscriptionKey`: subscription key (required)
|
|
182
|
+
* `microsoftAzure.serviceRegion`: service region (required)
|
|
167
183
|
|
|
168
184
|
**Amazon Transcribe**:
|
|
169
185
|
* `amazonTranscribe.region`: region (required)
|
|
170
186
|
* `amazonTranscribe.accessKeyId`: access key ID (required)
|
|
171
187
|
* `amazonTranscribe.secretAccessKey`: secret access key (required)
|
|
172
188
|
|
|
173
|
-
|
|
189
|
+
**OpenAI Cloud**:
|
|
190
|
+
* `openAICloud.apiKey`: API key (required)
|
|
191
|
+
* `openAICloud.model`: model to use. Can only be `whisper-1`
|
|
192
|
+
* `openAICloud.organization`: organization identifier. Optional
|
|
193
|
+
* `openAICloud.baseURL`: override the default base URL used by the API. Optional
|
|
194
|
+
* `openAICloud.temperature`: temperature. Choosing `0` uses a dynamic temperature approach. Defaults to `0.0`
|
|
195
|
+
* `openAICloud.prompt`: initial prompt for the model. Optional
|
|
196
|
+
* `openAICloud.timeout`: request timeout. Optional
|
|
197
|
+
* `openAICloud.maxRetries`: maximum retries on failure. Defaults to 10
|
|
198
|
+
|
|
174
199
|
|
|
175
|
-
|
|
200
|
+
## Speech-to-transcript alignment
|
|
201
|
+
|
|
202
|
+
Applies to CLI operation: `align`, API method: `align`
|
|
176
203
|
|
|
177
204
|
**General**:
|
|
178
|
-
* `engine`:
|
|
205
|
+
* `engine`: alignment algorithm to use, can be `dtw`, `dtw-ra` or `whisper`. Defaults to `dtw`
|
|
179
206
|
* `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
|
|
207
|
+
* `crop`: crop to active parts using voice activity detection before starting. Defaults to `true`
|
|
208
|
+
* `isolate`: apply source separation to isolate voice before starting recognition. Defaults to `false`
|
|
180
209
|
* `customLexiconPaths`: an array of custom lexicon file paths. Optional
|
|
210
|
+
* `subtitles`: prefix to provide options for subtitles. Options detailed in section for subtitles
|
|
211
|
+
* `vad`: prefix to provide options for voice activity detection when `crop` is set to `true`. Options detailed in section for voice activity detection
|
|
212
|
+
* `sourceSeparation`: prefix to provide options for source separation when `isolate` is set to `true`. Options detailed in section for source separation
|
|
181
213
|
|
|
182
214
|
**Plain text processing**:
|
|
183
215
|
* `plainText.paragraphBreaks`: split transcript to paragraphs based on single (`single`), or double (`double`) line breaks. Defaults to `double`
|
|
184
216
|
* `plainText.whitespace`: determines how to process whitespace within transcript 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`
|
|
185
217
|
|
|
186
|
-
**Subtitles**
|
|
187
|
-
* `subtitles.maxLineCount`: maximum number of lines per cue. Defaults to `2`
|
|
188
|
-
* `subtitles.maxLineWidth`: maximum characters in a line. Defaults to `42`
|
|
189
|
-
* `subtitles.minWordsInLine`: minimum number of leftover words required to break to a new line or cue. Defaults to `4`
|
|
190
|
-
* `subtitles.maxAddedDuration`: maximum extra time (in seconds) that may be added after a cue's speech end time. This also ensures that very short-duration segments aren't shown in a flash. Defaults to `3`
|
|
191
|
-
|
|
192
218
|
**DTW**:
|
|
193
219
|
* `dtw.granularity`: adjusts the MFCC frame width and hop size based on the profile selected. Can be set to either `auto` (auto-selected based on audio duration and task), `xx-low` (400ms width, 160ms hop), `x-low` (200ms width, 80ms hop), `low` (100ms width, 40ms hop), `medium` (50ms width, 20ms hop), `high` (25ms width, 10ms hop), `x-high` (20ms width, 5ms hop). For multi-pass processing, multiple granularities can be provided, like `dtw.granularity=['low','high']`. Defaults to `auto`.
|
|
194
220
|
* `dtw.windowDuration`: maximum duration (in seconds) of the Sakoe-Chiba window when performing DTW alignment. Higher values consume quadratically larger amounts of memory. The estimated memory requirement is shown in the log before alignment starts. Recommended to be set to at least 10% - 20% of total audio duration. For multi-pass processing, multiple durations can be provided, like `dtw.windowDuration=[240,20]`. Auto-selected by default
|
|
195
221
|
|
|
196
222
|
**DTW-RA only**:
|
|
197
|
-
* `recognition`: prefix
|
|
223
|
+
* `recognition`: prefix to provide recognition options when using `dtw-ra` method, for example: setting `recognition.engine = whisper` and `recognition.whisper.model = base.en`
|
|
198
224
|
* `dtw.phoneAlignmentMethod`: algorithm to use when aligning phones: can either be set to `dtw` or `interpolate`. Defaults to `dtw`
|
|
199
225
|
|
|
200
|
-
**Whisper alignment only
|
|
201
|
-
* `whisper`: prefix to provide Whisper options when the `whisper` alignment engine is used.
|
|
226
|
+
**Whisper alignment only**:
|
|
227
|
+
* `whisper`: prefix to provide Whisper options when the `whisper` alignment engine is used (does not apply to `dtw-ra` when `whisper` engine is used, for that use `recognition.whisper` prefix instead).
|
|
202
228
|
|
|
203
|
-
## Speech translation
|
|
204
229
|
|
|
205
|
-
|
|
230
|
+
## Speech-to-text translation
|
|
231
|
+
|
|
232
|
+
Applies to CLI operation: `translate-speech`, API method: `translateSpeech`
|
|
206
233
|
|
|
207
234
|
**General**:
|
|
208
235
|
* `engine`: only `whisper` supported
|
|
209
236
|
* `sourceLanguage`: the source language code for the input speech. Auto-detected if not set
|
|
210
|
-
* `targetLanguage`: the target language code for the output speech. Only `en` supported
|
|
211
|
-
* `
|
|
237
|
+
* `targetLanguage`: the target language code for the output speech. Only `en` (English) supported by the `whisper` engine. Optional
|
|
238
|
+
* `crop`: crop to active parts using voice activity detection before starting. Defaults to `true`
|
|
239
|
+
* `isolate`: apply source separation to isolate voice before starting speech translation. Defaults to `false`
|
|
240
|
+
* `languageDetection`: prefix to provide options for language detection. Options detailed in section for speech language detection
|
|
241
|
+
* `vad`: prefix to provide options for voice activity detection when `crop` is set to `true`. Options detailed in section for voice activity detection
|
|
242
|
+
* `sourceSeparation`: prefix to provide source separation options when `isolate` is to `true`
|
|
212
243
|
|
|
213
244
|
**Whisper**:
|
|
214
245
|
|
|
215
|
-
* `whisper`: prefix
|
|
246
|
+
* `whisper`: prefix to provide options for the Whisper model. Same options as detailed in the recognition section above
|
|
247
|
+
|
|
248
|
+
**Whisper.cpp**:
|
|
249
|
+
|
|
250
|
+
* `whisper.cpp`: prefix to provide options for the Whisper.cpp model. Same options as detailed in the recognition section above
|
|
251
|
+
|
|
252
|
+
**OpenAI Cloud**:
|
|
253
|
+
|
|
254
|
+
* `openAICloud`: prefix to provide options for OpenAI cloud. Same options as detailed in the recognition section above
|
|
216
255
|
|
|
217
256
|
## Language detection
|
|
218
257
|
|
|
219
258
|
### Speech language detection
|
|
220
259
|
|
|
221
|
-
|
|
260
|
+
Applies to CLI operation: `detect-speech-langauge`, API method: `detectSpeechLangauge`
|
|
222
261
|
|
|
223
262
|
**General**:
|
|
224
|
-
* `engine`: `
|
|
225
|
-
* `
|
|
263
|
+
* `engine`: `whisper` or `silero`. Defaults to `whisper`
|
|
264
|
+
* `defaultLanguage`: language to fallback to when confidence for top candidate of is low. Defaults to `en`
|
|
265
|
+
* `fallbackThresholdProbability`: confidence threshold to cause fallback. Defaults to `0.05`
|
|
266
|
+
* `crop`: crop to active parts using voice activity detection before starting. Defaults to `true` (recommended, otherwise inactive sections may skew the probabilities towards various random languages)
|
|
267
|
+
* `vad`: prefix to provide options for voice activity detection when `crop` is set to `true`. Options detailed in section for voice activity detection
|
|
268
|
+
|
|
269
|
+
**Whisper**:
|
|
270
|
+
* `whisper.model`: Whisper model to use. See model list in the recognition section
|
|
271
|
+
* `whisper.temperature`: impacts the distribution of candidate languages when applying the softmax function to compute language probabilities over the model output. Higher temperature causes the distribution to be more uniform, while lower temperature causes it to be more strongly weighted towards the best scoring candidates. Defaults to `1.0`
|
|
226
272
|
|
|
227
273
|
### Text language detection
|
|
228
274
|
|
|
229
|
-
|
|
275
|
+
Applies to CLI operation: `detect-text-langauge`, API method: `detectTextLangauge`
|
|
230
276
|
|
|
231
277
|
**General**:
|
|
232
278
|
* `engine`: `tinyld` or `fasttext`. Defaults to `tinyld`
|
|
233
|
-
* `defaultLanguage`: language to
|
|
279
|
+
* `defaultLanguage`: language to fallback to when confidence for top candidate is low. Defaults to `en`
|
|
234
280
|
* `fallbackThresholdProbability`: confidence threshold to cause fallback. Defaults to `0.05`
|
|
235
281
|
|
|
236
282
|
## Voice activity detection
|
|
237
283
|
|
|
238
|
-
|
|
284
|
+
Applies to CLI operation: `detect-voice-activity`, API method: `detectVoiceActivity`
|
|
239
285
|
|
|
240
286
|
**General**:
|
|
241
|
-
* `engine`: VAD engine to use. Can be `webrtc`, `silero` or `
|
|
287
|
+
* `engine`: VAD engine to use. Can be `webrtc`, `silero`, `rnnoise`, or `adaptive-gate`. Defaults to `silero`
|
|
242
288
|
* `activityThreshold`: minimum predicted probability for determining a frame as having speech activity. Defaults to `0.5`
|
|
243
289
|
|
|
244
290
|
**WebRTC**:
|
|
@@ -250,13 +296,47 @@ Applicable to CLI command: `detect-voice-activity`, API method: `detectVoiceActi
|
|
|
250
296
|
|
|
251
297
|
## Speech denoising
|
|
252
298
|
|
|
253
|
-
|
|
299
|
+
Applies to CLI operation: `denoise`, API method: `denoise`
|
|
254
300
|
|
|
255
301
|
**General**:
|
|
256
302
|
* `engine`: can only be `rnnoise`
|
|
257
303
|
|
|
258
|
-
**
|
|
304
|
+
**Post-processing**:
|
|
259
305
|
* `postProcessing.normalizeAudio`: should normalize output audio. Defaults to `false`
|
|
260
|
-
* `postProcessing.
|
|
261
|
-
* `postProcessing.
|
|
262
|
-
* `postProcessing.
|
|
306
|
+
* `postProcessing.targetPeak`: target peak (decibels) for normalization. Defaults to `-3`
|
|
307
|
+
* `postProcessing.maxGainIncrease`: max gain increase (decibels) when performing normalization. Defaults to `30`
|
|
308
|
+
* `postProcessing.dryMixGain`: gain (decibels) of dry (original) signal to mix back to the denoised (wet) signal. Defaults to `-20`
|
|
309
|
+
|
|
310
|
+
## Source separation
|
|
311
|
+
|
|
312
|
+
Applies to CLI operation: `isolate`, API method: `isolate`
|
|
313
|
+
|
|
314
|
+
**General**:
|
|
315
|
+
|
|
316
|
+
* `engine`: can only be `mdx-net`
|
|
317
|
+
|
|
318
|
+
**MDX-NET**:
|
|
319
|
+
|
|
320
|
+
* `mdxNet.model`: model to use. Currently available models are `UVR_MDXNET_1_9703`, `UVR_MDXNET_2_9682`, `UVR_MDXNET_3_9662`, `UVR_MDXNET_KARA`. Defaults to `UVR_MDXNET_1_9703`
|
|
321
|
+
|
|
322
|
+
# Common options
|
|
323
|
+
|
|
324
|
+
## Subtitles
|
|
325
|
+
|
|
326
|
+
These are shared between text-to-speech, speech-to-text and alignment operations, usually prefixed with `subtitles.`.
|
|
327
|
+
|
|
328
|
+
* `mode`: subtitle generation mode. Can be `segment` (ensures each segment starts at a new cue), `sentence` (ensures each sentence starts at a new cue), `word` (one word per cue, no punctuation included), `phone` (one phone per cue), `word+phone` (include both `word` and `phone` cues, with overlapping time ranges), `line` (each text line is made a separate cue). Defaults to `sentence`
|
|
329
|
+
* `maxLineCount`: maximum number of lines per cue. Defaults to `2`
|
|
330
|
+
* `maxLineWidth`: maximum characters in a line. Defaults to `42`
|
|
331
|
+
* `minWordsInLine`: minimum number of remaining words to break to a new line. Defaults to `4`
|
|
332
|
+
* `separatePhrases`: try to separate phrases or sentences in new lines or cues, if possible. Defaults to `true`
|
|
333
|
+
* `maxAddedDuration`: maximum extra time (in seconds) that may be added after a cue's end time. This gives the reader additional time to read the cue, and also ensures that very short duration cues aren't shown in a flash. Defaults to `3.0`
|
|
334
|
+
|
|
335
|
+
**Note**: options `maxLineCount`, `maxLineWidth`, `minWordsInLine`, `separatePhrases`, are only effective when using the `segment` and `sentence` modes, and are ignored in all other modes. `maxAddedDuration` doesn't apply to modes `word`, `phone` and `word+phone` (they always use the exact start and end timestamps).
|
|
336
|
+
|
|
337
|
+
# General CLI options
|
|
338
|
+
|
|
339
|
+
* `--play`, `--no-play`: enable/disable audio playback. Defaults to play if there is no output file specified
|
|
340
|
+
* `--overwrite`, `--no-overwrite`: overwrite/keep existing files. Doesn't overwrite by default
|
|
341
|
+
* `--debug`, `--no-debug`: show/hide the full details of JavaScript errors, if they occur. Disabled by default
|
|
342
|
+
* `--config=...`: path to configuration file to use. See the [CLI guide](CLI.md) for more information about configuration files
|