echogarden 0.0.1 → 0.1.1
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 +65 -1
- package/data/lexicons/heteronyms.json +674 -0
- package/data/schemas/options.json +1057 -0
- package/data/tables/lcid-table.json +7427 -0
- package/dist/alignment/DTWMfccSequenceAlignment.d.ts +2 -0
- package/dist/alignment/DTWMfccSequenceAlignment.js +26 -0
- package/dist/alignment/DTWMfccSequenceAlignment.js.map +1 -0
- package/dist/alignment/DTWSequenceAlignment.d.ts +5 -0
- package/dist/alignment/DTWSequenceAlignment.js +99 -0
- package/dist/alignment/DTWSequenceAlignment.js.map +1 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.d.ts +5 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.js +161 -0
- package/dist/alignment/DTWSequenceAlignmentWindowed.js.map +1 -0
- package/dist/alignment/LevenshteinSequenceAlignment.d.ts +5 -0
- package/dist/alignment/LevenshteinSequenceAlignment.js +102 -0
- package/dist/alignment/LevenshteinSequenceAlignment.js.map +1 -0
- package/dist/alignment/SpeechAlignment.d.ts +27 -0
- package/dist/alignment/SpeechAlignment.js +266 -0
- package/dist/alignment/SpeechAlignment.js.map +1 -0
- package/dist/api/API.d.ts +8 -0
- package/dist/api/API.js +10 -0
- package/dist/api/API.js.map +1 -0
- package/dist/api/APIOptions.d.ts +12 -0
- package/dist/api/APIOptions.js +2 -0
- package/dist/api/APIOptions.js.map +1 -0
- package/dist/api/Alignment.d.ts +32 -0
- package/dist/api/Alignment.js +134 -0
- package/dist/api/Alignment.js.map +1 -0
- package/dist/api/Denoising.d.ts +14 -0
- package/dist/api/Denoising.js +66 -0
- package/dist/api/Denoising.js.map +1 -0
- package/dist/api/Globals.d.ts +1 -0
- package/dist/api/Globals.js +2 -0
- package/dist/api/Globals.js.map +1 -0
- package/dist/api/LanguageDetection.d.ts +49 -0
- package/dist/api/LanguageDetection.js +118 -0
- package/dist/api/LanguageDetection.js.map +1 -0
- package/dist/api/Recognition.d.ts +49 -0
- package/dist/api/Recognition.js +162 -0
- package/dist/api/Recognition.js.map +1 -0
- package/dist/api/Synthesis.d.ts +125 -0
- package/dist/api/Synthesis.js +892 -0
- package/dist/api/Synthesis.js.map +1 -0
- package/dist/api/Translation.d.ts +25 -0
- package/dist/api/Translation.js +69 -0
- package/dist/api/Translation.js.map +1 -0
- package/dist/api/Vad.d.ts +25 -0
- package/dist/api/Vad.js +88 -0
- package/dist/api/Vad.js.map +1 -0
- package/dist/audio/AudioBufferConversion.d.ts +15 -0
- package/dist/audio/AudioBufferConversion.js +228 -0
- package/dist/audio/AudioBufferConversion.js.map +1 -0
- package/dist/audio/AudioPlayer.d.ts +9 -0
- package/dist/audio/AudioPlayer.js +232 -0
- package/dist/audio/AudioPlayer.js.map +1 -0
- package/dist/audio/AudioRecorder.d.ts +3 -0
- package/dist/audio/AudioRecorder.js +68 -0
- package/dist/audio/AudioRecorder.js.map +1 -0
- package/dist/audio/AudioUtilities.d.ts +48 -0
- package/dist/audio/AudioUtilities.js +209 -0
- package/dist/audio/AudioUtilities.js.map +1 -0
- package/dist/audio/SoxPath.d.ts +1 -0
- package/dist/audio/SoxPath.js +19 -0
- package/dist/audio/SoxPath.js.map +1 -0
- package/dist/cli/CLI.d.ts +8 -0
- package/dist/cli/CLI.js +860 -0
- package/dist/cli/CLI.js.map +1 -0
- package/dist/cli/CLIConfigFile.d.ts +3 -0
- package/dist/cli/CLIConfigFile.js +62 -0
- package/dist/cli/CLIConfigFile.js.map +1 -0
- package/dist/cli/CLILauncher.d.ts +2 -0
- package/dist/cli/CLILauncher.js +22 -0
- package/dist/cli/CLILauncher.js.map +1 -0
- package/dist/cli/CLIOptionsSchema.d.ts +5 -0
- package/dist/cli/CLIOptionsSchema.js +36 -0
- package/dist/cli/CLIOptionsSchema.js.map +1 -0
- package/dist/cli/CLIParser.d.ts +6 -0
- package/dist/cli/CLIParser.js +34 -0
- package/dist/cli/CLIParser.js.map +1 -0
- package/dist/cli/CLIStarter.d.ts +1 -0
- package/dist/cli/CLIStarter.js +3 -0
- package/dist/cli/CLIStarter.js.map +1 -0
- package/dist/codecs/FFMpegTranscoder.d.ts +20 -0
- package/dist/codecs/FFMpegTranscoder.js +169 -0
- package/dist/codecs/FFMpegTranscoder.js.map +1 -0
- package/dist/codecs/TIMITCodec.d.ts +9 -0
- package/dist/codecs/TIMITCodec.js +14 -0
- package/dist/codecs/TIMITCodec.js.map +1 -0
- package/dist/codecs/WaveCodec.d.ts +19 -0
- package/dist/codecs/WaveCodec.js +208 -0
- package/dist/codecs/WaveCodec.js.map +1 -0
- package/dist/denoising/RNNoise.d.ts +6 -0
- package/dist/denoising/RNNoise.js +68 -0
- package/dist/denoising/RNNoise.js.map +1 -0
- package/dist/dsp/BiquadFilter.d.ts +26 -0
- package/dist/dsp/BiquadFilter.js +399 -0
- package/dist/dsp/BiquadFilter.js.map +1 -0
- package/dist/dsp/FFT.d.ts +9 -0
- package/dist/dsp/FFT.js +135 -0
- package/dist/dsp/FFT.js.map +1 -0
- package/dist/dsp/MFCC.d.ts +25 -0
- package/dist/dsp/MFCC.js +162 -0
- package/dist/dsp/MFCC.js.map +1 -0
- package/dist/dsp/MelSpectogram.d.ts +19 -0
- package/dist/dsp/MelSpectogram.js +102 -0
- package/dist/dsp/MelSpectogram.js.map +1 -0
- package/dist/dsp/Rubberband.d.ts +52 -0
- package/dist/dsp/Rubberband.js +186 -0
- package/dist/dsp/Rubberband.js.map +1 -0
- package/dist/dsp/Sonic.d.ts +2 -0
- package/dist/dsp/Sonic.js +39 -0
- package/dist/dsp/Sonic.js.map +1 -0
- package/dist/dsp/SpeexResampler.d.ts +3 -0
- package/dist/dsp/SpeexResampler.js +53 -0
- package/dist/dsp/SpeexResampler.js.map +1 -0
- package/dist/math/VectorMath.d.ts +70 -0
- package/dist/math/VectorMath.js +564 -0
- package/dist/math/VectorMath.js.map +1 -0
- package/dist/nlp/ChineseSegmentation.d.ts +1 -0
- package/dist/nlp/ChineseSegmentation.js +53 -0
- package/dist/nlp/ChineseSegmentation.js.map +1 -0
- package/dist/nlp/CompromiseNLP.d.ts +15 -0
- package/dist/nlp/CompromiseNLP.js +66 -0
- package/dist/nlp/CompromiseNLP.js.map +1 -0
- package/dist/nlp/EspeakPhonemizer.d.ts +4 -0
- package/dist/nlp/EspeakPhonemizer.js +133 -0
- package/dist/nlp/EspeakPhonemizer.js.map +1 -0
- package/dist/nlp/IPA.d.ts +19 -0
- package/dist/nlp/IPA.js +113 -0
- package/dist/nlp/IPA.js.map +1 -0
- package/dist/nlp/JapaneseSegmentation.d.ts +1 -0
- package/dist/nlp/JapaneseSegmentation.js +40 -0
- package/dist/nlp/JapaneseSegmentation.js.map +1 -0
- package/dist/nlp/Lexicon.d.ts +17 -0
- package/dist/nlp/Lexicon.js +6 -0
- package/dist/nlp/Lexicon.js.map +1 -0
- package/dist/nlp/PhoneConversion.d.ts +6 -0
- package/dist/nlp/PhoneConversion.js +467 -0
- package/dist/nlp/PhoneConversion.js.map +1 -0
- package/dist/nlp/Segmentation.d.ts +41 -0
- package/dist/nlp/Segmentation.js +158 -0
- package/dist/nlp/Segmentation.js.map +1 -0
- package/dist/nlp/TextNormalizer.d.ts +4 -0
- package/dist/nlp/TextNormalizer.js +69 -0
- package/dist/nlp/TextNormalizer.js.map +1 -0
- package/dist/recognition/AmazonTranscribeSTT.d.ts +6 -0
- package/dist/recognition/AmazonTranscribeSTT.js +79 -0
- package/dist/recognition/AmazonTranscribeSTT.js.map +1 -0
- package/dist/recognition/AzureCognitiveServicesSTT.d.ts +7 -0
- package/dist/recognition/AzureCognitiveServicesSTT.js +51 -0
- package/dist/recognition/AzureCognitiveServicesSTT.js.map +1 -0
- package/dist/recognition/GoogleCloudSTT.d.ts +7 -0
- package/dist/recognition/GoogleCloudSTT.js +66 -0
- package/dist/recognition/GoogleCloudSTT.js.map +1 -0
- package/dist/recognition/SileroSTT.d.ts +9 -0
- package/dist/recognition/SileroSTT.js +125 -0
- package/dist/recognition/SileroSTT.js.map +1 -0
- package/dist/recognition/VoskSTT.d.ts +10 -0
- package/dist/recognition/VoskSTT.js +78 -0
- package/dist/recognition/VoskSTT.js.map +1 -0
- package/dist/recognition/WhisperSTT.d.ts +69 -0
- package/dist/recognition/WhisperSTT.js +977 -0
- package/dist/recognition/WhisperSTT.js.map +1 -0
- package/dist/server/Server.d.ts +1 -0
- package/dist/server/Server.js +18 -0
- package/dist/server/Server.js.map +1 -0
- package/dist/speech-language-detection/SileroLanguageDetection.d.ts +9 -0
- package/dist/speech-language-detection/SileroLanguageDetection.js +47 -0
- package/dist/speech-language-detection/SileroLanguageDetection.js.map +1 -0
- package/dist/subtitles/Subtitles.d.ts +25 -0
- package/dist/subtitles/Subtitles.js +286 -0
- package/dist/subtitles/Subtitles.js.map +1 -0
- package/dist/synthesis/AwsPollyTTS.d.ts +7 -0
- package/dist/synthesis/AwsPollyTTS.js +51 -0
- package/dist/synthesis/AwsPollyTTS.js.map +1 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.d.ts +9 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.js +103 -0
- package/dist/synthesis/AzureCognitiveServicesTTS.js.map +1 -0
- package/dist/synthesis/CoquiServerTTS.d.ts +6 -0
- package/dist/synthesis/CoquiServerTTS.js +22 -0
- package/dist/synthesis/CoquiServerTTS.js.map +1 -0
- package/dist/synthesis/ElevenLabsTTS.d.ts +8 -0
- package/dist/synthesis/ElevenLabsTTS.js +48 -0
- package/dist/synthesis/ElevenLabsTTS.js.map +1 -0
- package/dist/synthesis/EspeakTTS.d.ts +46 -0
- package/dist/synthesis/EspeakTTS.js +353 -0
- package/dist/synthesis/EspeakTTS.js.map +1 -0
- package/dist/synthesis/FliteTTS.d.ts +17 -0
- package/dist/synthesis/FliteTTS.js +326 -0
- package/dist/synthesis/FliteTTS.js.map +1 -0
- package/dist/synthesis/GoogleCloudTTS.d.ts +17 -0
- package/dist/synthesis/GoogleCloudTTS.js +72 -0
- package/dist/synthesis/GoogleCloudTTS.js.map +1 -0
- package/dist/synthesis/GoogleTranslateTTS.d.ts +13 -0
- package/dist/synthesis/GoogleTranslateTTS.js +177 -0
- package/dist/synthesis/GoogleTranslateTTS.js.map +1 -0
- package/dist/synthesis/MicrosoftEdgeTTS.d.ts +10 -0
- package/dist/synthesis/MicrosoftEdgeTTS.js +216 -0
- package/dist/synthesis/MicrosoftEdgeTTS.js.map +1 -0
- package/dist/synthesis/SamTTS.d.ts +4 -0
- package/dist/synthesis/SamTTS.js +21 -0
- package/dist/synthesis/SamTTS.js.map +1 -0
- package/dist/synthesis/SapiTTS.d.ts +9 -0
- package/dist/synthesis/SapiTTS.js +211 -0
- package/dist/synthesis/SapiTTS.js.map +1 -0
- package/dist/synthesis/StreamlabsPollyTTS.d.ts +12 -0
- package/dist/synthesis/StreamlabsPollyTTS.js +88 -0
- package/dist/synthesis/StreamlabsPollyTTS.js.map +1 -0
- package/dist/synthesis/SvoxPicoTTS.d.ts +11 -0
- package/dist/synthesis/SvoxPicoTTS.js +236 -0
- package/dist/synthesis/SvoxPicoTTS.js.map +1 -0
- package/dist/synthesis/VitsTTS.d.ts +27 -0
- package/dist/synthesis/VitsTTS.js +359 -0
- package/dist/synthesis/VitsTTS.js.map +1 -0
- package/dist/tests/Test.d.ts +1 -0
- package/dist/tests/Test.js +10 -0
- package/dist/tests/Test.js.map +1 -0
- package/dist/text-language-detection/FastTextLanguageDetection.d.ts +2 -0
- package/dist/text-language-detection/FastTextLanguageDetection.js +38 -0
- package/dist/text-language-detection/FastTextLanguageDetection.js.map +1 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.d.ts +2 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.js +12 -0
- package/dist/text-language-detection/TinyLDLanguageDetection.js.map +1 -0
- package/dist/utilities/BinaryArrayConversion.d.ts +15 -0
- package/dist/utilities/BinaryArrayConversion.js +115 -0
- package/dist/utilities/BinaryArrayConversion.js.map +1 -0
- package/dist/utilities/Compression.d.ts +4 -0
- package/dist/utilities/Compression.js +67 -0
- package/dist/utilities/Compression.js.map +1 -0
- package/dist/utilities/FileDownloader.d.ts +3 -0
- package/dist/utilities/FileDownloader.js +147 -0
- package/dist/utilities/FileDownloader.js.map +1 -0
- package/dist/utilities/FileSystem.d.ts +30 -0
- package/dist/utilities/FileSystem.js +141 -0
- package/dist/utilities/FileSystem.js.map +1 -0
- package/dist/utilities/Hashing.d.ts +10 -0
- package/dist/utilities/Hashing.js +169 -0
- package/dist/utilities/Hashing.js.map +1 -0
- package/dist/utilities/Locale.d.ts +9 -0
- package/dist/utilities/Locale.js +65 -0
- package/dist/utilities/Locale.js.map +1 -0
- package/dist/utilities/Logger.d.ts +11 -0
- package/dist/utilities/Logger.js +49 -0
- package/dist/utilities/Logger.js.map +1 -0
- package/dist/utilities/NdArrayUtilities.d.ts +3 -0
- package/dist/utilities/NdArrayUtilities.js +22 -0
- package/dist/utilities/NdArrayUtilities.js.map +1 -0
- package/dist/utilities/ObjectUtilities.d.ts +4 -0
- package/dist/utilities/ObjectUtilities.js +132 -0
- package/dist/utilities/ObjectUtilities.js.map +1 -0
- package/dist/utilities/OpenPromise.d.ts +6 -0
- package/dist/utilities/OpenPromise.js +12 -0
- package/dist/utilities/OpenPromise.js.map +1 -0
- package/dist/utilities/PackageManager.d.ts +4 -0
- package/dist/utilities/PackageManager.js +46 -0
- package/dist/utilities/PackageManager.js.map +1 -0
- package/dist/utilities/RandomGenerator.d.ts +35 -0
- package/dist/utilities/RandomGenerator.js +149 -0
- package/dist/utilities/RandomGenerator.js.map +1 -0
- package/dist/utilities/TarballMaker.d.ts +4 -0
- package/dist/utilities/TarballMaker.js +50 -0
- package/dist/utilities/TarballMaker.js.map +1 -0
- package/dist/utilities/Timeline.d.ts +20 -0
- package/dist/utilities/Timeline.js +110 -0
- package/dist/utilities/Timeline.js.map +1 -0
- package/dist/utilities/Timer.d.ts +13 -0
- package/dist/utilities/Timer.js +70 -0
- package/dist/utilities/Timer.js.map +1 -0
- package/dist/utilities/Utilities.d.ts +68 -0
- package/dist/utilities/Utilities.js +305 -0
- package/dist/utilities/Utilities.js.map +1 -0
- package/dist/utilities/WasmMemoryManager.d.ts +142 -0
- package/dist/utilities/WasmMemoryManager.js +407 -0
- package/dist/utilities/WasmMemoryManager.js.map +1 -0
- package/dist/utilities/WebReader.d.ts +1 -0
- package/dist/utilities/WebReader.js +47 -0
- package/dist/utilities/WebReader.js.map +1 -0
- package/dist/utilities/WikipediaReader.d.ts +1 -0
- package/dist/utilities/WikipediaReader.js +31 -0
- package/dist/utilities/WikipediaReader.js.map +1 -0
- package/dist/voice-activity-detection/SileroVAD.d.ts +13 -0
- package/dist/voice-activity-detection/SileroVAD.js +58 -0
- package/dist/voice-activity-detection/SileroVAD.js.map +1 -0
- package/dist/voice-activity-detection/WebRtcVAD.d.ts +3 -0
- package/dist/voice-activity-detection/WebRtcVAD.js +53 -0
- package/dist/voice-activity-detection/WebRtcVAD.js.map +1 -0
- package/docs/CLI.md +234 -0
- package/docs/Development.md +3 -0
- package/docs/Engines.md +80 -0
- package/docs/Licenses.md +37 -0
- package/docs/Options.md +192 -0
- package/docs/Roadmap.md +16 -0
- package/docs/Technical.md +72 -0
- package/package.json +119 -19
- package/cli.js +0 -3
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { decodeToChannels } from "../audio/AudioBufferConversion.js";
|
|
2
|
+
import { SampleFormat } from "../codecs/WaveCodec.js";
|
|
3
|
+
import { bandwidthToQFactor } from "../dsp/BiquadFilter.js";
|
|
4
|
+
import { Logger } from "../utilities/Logger.js";
|
|
5
|
+
import { WasmMemoryManager } from "../utilities/WasmMemoryManager.js";
|
|
6
|
+
import { readFile } from "../utilities/FileSystem.js";
|
|
7
|
+
let svoxPicoInstance;
|
|
8
|
+
export async function synthesize(text, textAnalysisFilePath, signalGenerationFilePath, postprocessOutput = true) {
|
|
9
|
+
const logger = new Logger();
|
|
10
|
+
logger.start("Get pico WASM instance");
|
|
11
|
+
const m = await getInstance();
|
|
12
|
+
logger.start("Initialize pico engine");
|
|
13
|
+
const wasmMemory = new WasmMemoryManager(m);
|
|
14
|
+
const pico_initialize = m._pico_initialize;
|
|
15
|
+
const picoext_setTraceLevel = m._picoext_setTraceLevel;
|
|
16
|
+
const pico_loadResource = m._pico_loadResource;
|
|
17
|
+
const pico_getResourceName = m._pico_getResourceName;
|
|
18
|
+
const pico_createVoiceDefinition = m._pico_createVoiceDefinition;
|
|
19
|
+
const pico_addResourceToVoiceDefinition = m._pico_addResourceToVoiceDefinition;
|
|
20
|
+
const pico_newEngine = m._pico_newEngine;
|
|
21
|
+
const pico_putTextUtf8 = m._pico_putTextUtf8;
|
|
22
|
+
const pico_getData = m._pico_getData;
|
|
23
|
+
const pico_getSystemStatusMessage = m._pico_getSystemStatusMessage;
|
|
24
|
+
const pico_disposeEngine = m._pico_disposeEngine;
|
|
25
|
+
const pico_terminate = m._pico_terminate;
|
|
26
|
+
const pico_releaseVoiceDefinition = m._pico_releaseVoiceDefinition;
|
|
27
|
+
const pico_unloadResource = m._pico_unloadResource;
|
|
28
|
+
const picoMemSize = 2500000;
|
|
29
|
+
const picoMemAreaRef = wasmMemory.allocUint8Array(picoMemSize);
|
|
30
|
+
const systemPtrRef = wasmMemory.allocPointer();
|
|
31
|
+
let resultCode = pico_initialize(picoMemAreaRef.address, picoMemAreaRef.length, systemPtrRef.address);
|
|
32
|
+
const systemPtr = systemPtrRef.value;
|
|
33
|
+
throwErrorIfFailed(resultCode, "Failed Pico initialization.");
|
|
34
|
+
picoext_setTraceLevel(systemPtr, 5);
|
|
35
|
+
async function loadResource(localFilePath) {
|
|
36
|
+
const virtualFilePath = "." + localFilePath.substring(localFilePath.lastIndexOf("/"));
|
|
37
|
+
const fileData = await readFile(localFilePath);
|
|
38
|
+
m.FS.writeFile(virtualFilePath, fileData);
|
|
39
|
+
const virtualFilePathRef = wasmMemory.allocNullTerminatedUtf8String(virtualFilePath);
|
|
40
|
+
const resourcePtrRef = wasmMemory.allocPointer();
|
|
41
|
+
resultCode = pico_loadResource(systemPtr, virtualFilePathRef.address, resourcePtrRef.address);
|
|
42
|
+
const resourcePtr = resourcePtrRef.value;
|
|
43
|
+
throwErrorIfFailed(resultCode, `Failed loading Pico resource ${localFilePath}.`);
|
|
44
|
+
return { resourcePtr, resourcePtrRef };
|
|
45
|
+
}
|
|
46
|
+
const { resourcePtr: textAnalysisResourcePtr, resourcePtrRef: textAnalysisResourcePtrRef } = await loadResource(textAnalysisFilePath);
|
|
47
|
+
const { resourcePtr: signalGenerationResourcePtr, resourcePtrRef: signalGenerationResourcePtrRef } = await loadResource(signalGenerationFilePath);
|
|
48
|
+
function getResourceName(resourcePtr) {
|
|
49
|
+
const resourceNameRef = wasmMemory.allocUint8Array(32);
|
|
50
|
+
resultCode = pico_getResourceName(systemPtr, resourcePtr, resourceNameRef.address);
|
|
51
|
+
throwErrorIfFailed(resultCode, `Failed getting Pico resource name.`);
|
|
52
|
+
const resourceName = resourceNameRef.readAsNullTerminatedUtf8String();
|
|
53
|
+
return { resourceName, resourceNameRef };
|
|
54
|
+
}
|
|
55
|
+
const { resourceName: textAnalysisResourceName, resourceNameRef: textAnalysisResourceNameRef } = getResourceName(textAnalysisResourcePtr);
|
|
56
|
+
const { resourceName: signalGenerationResourceName, resourceNameRef: signalGenerationResourceNameRef } = getResourceName(signalGenerationResourcePtr);
|
|
57
|
+
const voiceNameRef = wasmMemory.allocNullTerminatedUtf8String("PicoVoice");
|
|
58
|
+
resultCode = pico_createVoiceDefinition(systemPtr, voiceNameRef.address);
|
|
59
|
+
function addResourceToVoiceDefinition(resourceNamePtr) {
|
|
60
|
+
resultCode = pico_addResourceToVoiceDefinition(systemPtr, voiceNameRef.address, resourceNamePtr);
|
|
61
|
+
throwErrorIfFailed(resultCode, `Failed adding resource to voice definition.`);
|
|
62
|
+
}
|
|
63
|
+
addResourceToVoiceDefinition(textAnalysisResourceNameRef.address);
|
|
64
|
+
addResourceToVoiceDefinition(signalGenerationResourceNameRef.address);
|
|
65
|
+
const enginePtrRef = wasmMemory.allocPointer();
|
|
66
|
+
resultCode = pico_newEngine(systemPtr, voiceNameRef.address, enginePtrRef.address);
|
|
67
|
+
throwErrorIfFailed(resultCode, `Failed creating new engine.`);
|
|
68
|
+
const enginePtr = enginePtrRef.value;
|
|
69
|
+
logger.start("Synthesize with pico");
|
|
70
|
+
const textRef = wasmMemory.allocNullTerminatedUtf8String(text);
|
|
71
|
+
const bytesWrittenRef = wasmMemory.allocInt32();
|
|
72
|
+
const audioParts = [];
|
|
73
|
+
for (let textByteOffset = 0; textByteOffset < textRef.length;) {
|
|
74
|
+
bytesWrittenRef.value = 0;
|
|
75
|
+
resultCode = pico_putTextUtf8(enginePtr, textRef.address + textByteOffset, textRef.length - textByteOffset, bytesWrittenRef.address);
|
|
76
|
+
const bytesWritten = bytesWrittenRef.value;
|
|
77
|
+
throwErrorIfFailed(resultCode, `Failed writing text to engine.`);
|
|
78
|
+
const audioPart = readAudioDataFromEngine();
|
|
79
|
+
audioParts.push(audioPart);
|
|
80
|
+
textByteOffset += bytesWritten;
|
|
81
|
+
}
|
|
82
|
+
const audioData = Buffer.concat(audioParts);
|
|
83
|
+
function readAudioDataFromEngine() {
|
|
84
|
+
const outBuffers = [];
|
|
85
|
+
const outBufferLength = 16384;
|
|
86
|
+
const outBufferRef = wasmMemory.allocUint8Array(outBufferLength);
|
|
87
|
+
const outByteCountRef = wasmMemory.allocInt16();
|
|
88
|
+
const outDataTypeRef = wasmMemory.allocInt16();
|
|
89
|
+
while (true) {
|
|
90
|
+
resultCode = pico_getData(enginePtr, outBufferRef.address, outBufferRef.length, outByteCountRef.address, outDataTypeRef.address);
|
|
91
|
+
throwErrorIfFailed(resultCode, `Failed getting audio data from engine.`, [200, 201]);
|
|
92
|
+
const outByteCount = outByteCountRef.value;
|
|
93
|
+
const outDataType = outDataTypeRef.value;
|
|
94
|
+
if (resultCode == 200) {
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
if (outByteCount > 0) {
|
|
98
|
+
outBuffers.push(Buffer.from(outBufferRef.slice(0, outByteCount)));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return Buffer.concat(outBuffers);
|
|
102
|
+
}
|
|
103
|
+
dispose();
|
|
104
|
+
function dispose() {
|
|
105
|
+
if (!systemPtr) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (enginePtrRef) {
|
|
109
|
+
pico_disposeEngine(systemPtr, enginePtrRef.address);
|
|
110
|
+
}
|
|
111
|
+
if (voiceNameRef) {
|
|
112
|
+
pico_releaseVoiceDefinition(systemPtr, voiceNameRef.address);
|
|
113
|
+
}
|
|
114
|
+
if (textAnalysisResourcePtrRef) {
|
|
115
|
+
pico_unloadResource(systemPtr, textAnalysisResourcePtrRef.address);
|
|
116
|
+
}
|
|
117
|
+
if (signalGenerationResourcePtrRef) {
|
|
118
|
+
pico_unloadResource(systemPtr, signalGenerationResourcePtrRef.address);
|
|
119
|
+
}
|
|
120
|
+
pico_terminate(systemPtrRef.address);
|
|
121
|
+
wasmMemory.freeAll();
|
|
122
|
+
}
|
|
123
|
+
function throwErrorIfFailed(resultCode, title, successCodes = [0]) {
|
|
124
|
+
if (successCodes.includes(resultCode)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const picoErrorMessageRef = wasmMemory.allocUint8Array(200);
|
|
128
|
+
pico_getSystemStatusMessage(systemPtr, resultCode, picoErrorMessageRef);
|
|
129
|
+
const picoErrorMessage = picoErrorMessageRef.readAsNullTerminatedUtf8String();
|
|
130
|
+
dispose();
|
|
131
|
+
throw new Error(`${title} ${picoErrorMessage}`);
|
|
132
|
+
}
|
|
133
|
+
const audioChannels = decodeToChannels(audioData, 1, 16, SampleFormat.PCM);
|
|
134
|
+
let rawAudio = { audioChannels, sampleRate: 16000 };
|
|
135
|
+
if (postprocessOutput) {
|
|
136
|
+
logger.start("Apply EQ to synthesized audio");
|
|
137
|
+
const BiquadFilter = await import("../dsp/BiquadFilter.js");
|
|
138
|
+
rawAudio = BiquadFilter.lowshelfFilter(rawAudio, 177, -2.6);
|
|
139
|
+
rawAudio = BiquadFilter.peakingFilter(rawAudio, 440, -9.7, bandwidthToQFactor(2));
|
|
140
|
+
rawAudio = BiquadFilter.peakingFilter(rawAudio, 1639, 5.2, bandwidthToQFactor(2));
|
|
141
|
+
rawAudio = BiquadFilter.highshelfFilter(rawAudio, 5180, 10.6);
|
|
142
|
+
}
|
|
143
|
+
logger.end();
|
|
144
|
+
return { rawAudio };
|
|
145
|
+
}
|
|
146
|
+
export async function getInstance() {
|
|
147
|
+
if (!svoxPicoInstance) {
|
|
148
|
+
const { default: initializer } = await import('@echogarden/svoxpico-wasm');
|
|
149
|
+
svoxPicoInstance = await initializer();
|
|
150
|
+
}
|
|
151
|
+
return svoxPicoInstance;
|
|
152
|
+
}
|
|
153
|
+
export function getResourceFilenamesForLanguage(language) {
|
|
154
|
+
let textAnalysisFilename;
|
|
155
|
+
let signalGenerationFilename;
|
|
156
|
+
switch (language) {
|
|
157
|
+
case "en-US":
|
|
158
|
+
case "en": {
|
|
159
|
+
textAnalysisFilename = "en-US_ta.bin";
|
|
160
|
+
signalGenerationFilename = "en-US_lh0_sg.bin";
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case "en-GB": {
|
|
164
|
+
textAnalysisFilename = "en-GB_ta.bin";
|
|
165
|
+
signalGenerationFilename = "en-GB_kh0_sg.bin";
|
|
166
|
+
break;
|
|
167
|
+
}
|
|
168
|
+
case "de-DE":
|
|
169
|
+
case "de": {
|
|
170
|
+
textAnalysisFilename = "de-DE_ta.bin";
|
|
171
|
+
signalGenerationFilename = "de-DE_gl0_sg.bin";
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case "es-ES":
|
|
175
|
+
case "es": {
|
|
176
|
+
textAnalysisFilename = "es-ES_ta.bin";
|
|
177
|
+
signalGenerationFilename = "es-ES_zl0_sg.bin";
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
180
|
+
case "fr-FR":
|
|
181
|
+
case "fr": {
|
|
182
|
+
textAnalysisFilename = "fr-FR_ta.bin";
|
|
183
|
+
signalGenerationFilename = "fr-FR_nk0_sg.bin";
|
|
184
|
+
break;
|
|
185
|
+
}
|
|
186
|
+
case "it-IT":
|
|
187
|
+
case "it": {
|
|
188
|
+
textAnalysisFilename = "it-IT_ta.bin";
|
|
189
|
+
signalGenerationFilename = "it-IT_cm0_sg.bin";
|
|
190
|
+
break;
|
|
191
|
+
}
|
|
192
|
+
default: {
|
|
193
|
+
throw new Error(`Unsupported languge: ${language}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return { textAnalysisFilename, signalGenerationFilename };
|
|
197
|
+
}
|
|
198
|
+
export const voiceList = [
|
|
199
|
+
{
|
|
200
|
+
name: "en-US",
|
|
201
|
+
languages: ["en-US", "en"],
|
|
202
|
+
gender: "female",
|
|
203
|
+
packageName: "pico-en-US"
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "en-GB",
|
|
207
|
+
languages: ["en-GB", "en"],
|
|
208
|
+
gender: "female",
|
|
209
|
+
packageName: "pico-en-GB"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: "de-DE",
|
|
213
|
+
languages: ["de-DE", "de"],
|
|
214
|
+
gender: "female",
|
|
215
|
+
packageName: "pico-de-DE"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: "es-ES",
|
|
219
|
+
languages: ["es-ES", "es"],
|
|
220
|
+
gender: "female",
|
|
221
|
+
packageName: "pico-es-ES"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
name: "fr-FR",
|
|
225
|
+
languages: ["fr-FR", "fr"],
|
|
226
|
+
gender: "female",
|
|
227
|
+
packageName: "pico-fr-FR"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
name: "it-IT",
|
|
231
|
+
languages: ["it-IT", "it"],
|
|
232
|
+
gender: "female",
|
|
233
|
+
packageName: "pico-it-IT"
|
|
234
|
+
},
|
|
235
|
+
];
|
|
236
|
+
//# sourceMappingURL=SvoxPicoTTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SvoxPicoTTS.js","sourceRoot":"","sources":["../../src/synthesis/SvoxPicoTTS.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import Onnx from 'onnxruntime-node';
|
|
2
|
+
import { SynthesisVoice } from '../api/API.js';
|
|
3
|
+
import { RawAudio } from "../audio/AudioUtilities.js";
|
|
4
|
+
import { Lexicon } from "../nlp/Lexicon.js";
|
|
5
|
+
import { Timeline } from "../utilities/Timeline.js";
|
|
6
|
+
export declare function synthesizeSentence(text: string, voiceName: string, modelPath: string, lengthScale: number, speakerId?: number, substitutionLexicons?: Lexicon[]): Promise<{
|
|
7
|
+
rawAudio: RawAudio;
|
|
8
|
+
timeline: import("../utilities/Timeline.js").TimelineEntry[];
|
|
9
|
+
referenceSynthesizedAudio: RawAudio;
|
|
10
|
+
referenceTimeline: Timeline;
|
|
11
|
+
}>;
|
|
12
|
+
export declare class VitsTTS {
|
|
13
|
+
voiceName: string;
|
|
14
|
+
modelPath: string;
|
|
15
|
+
modelSession?: Onnx.InferenceSession;
|
|
16
|
+
metadata?: any;
|
|
17
|
+
phonemeMap?: Map<string, number[]>;
|
|
18
|
+
constructor(voiceName: string, modelPath: string);
|
|
19
|
+
initialize(): Promise<void>;
|
|
20
|
+
synthesizeSentence(sentence: string, lengthScale: number, speakerId?: number, substitutionLexicons?: Lexicon[]): Promise<{
|
|
21
|
+
rawAudio: RawAudio;
|
|
22
|
+
timeline: import("../utilities/Timeline.js").TimelineEntry[];
|
|
23
|
+
referenceSynthesizedAudio: RawAudio;
|
|
24
|
+
referenceTimeline: Timeline;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export declare const voiceList: SynthesisVoice[];
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
import Onnx from 'onnxruntime-node';
|
|
2
|
+
import { Logger } from "../utilities/Logger.js";
|
|
3
|
+
import { getEmptyRawAudio } from "../audio/AudioUtilities.js";
|
|
4
|
+
import { readAndParseJsonFile } from "../utilities/FileSystem.js";
|
|
5
|
+
const cachedInstanceLookup = new Map();
|
|
6
|
+
export async function synthesizeSentence(text, voiceName, modelPath, lengthScale, speakerId = 0, substitutionLexicons) {
|
|
7
|
+
const cacheLookupKey = modelPath;
|
|
8
|
+
let vitsTTS = cachedInstanceLookup.get(cacheLookupKey);
|
|
9
|
+
if (!vitsTTS) {
|
|
10
|
+
vitsTTS = new VitsTTS(voiceName, modelPath);
|
|
11
|
+
await vitsTTS.initialize();
|
|
12
|
+
cachedInstanceLookup.set(cacheLookupKey, vitsTTS);
|
|
13
|
+
}
|
|
14
|
+
const result = await vitsTTS.synthesizeSentence(text, lengthScale, speakerId, substitutionLexicons);
|
|
15
|
+
return result;
|
|
16
|
+
}
|
|
17
|
+
export class VitsTTS {
|
|
18
|
+
voiceName;
|
|
19
|
+
modelPath;
|
|
20
|
+
modelSession;
|
|
21
|
+
metadata;
|
|
22
|
+
phonemeMap;
|
|
23
|
+
constructor(voiceName, modelPath) {
|
|
24
|
+
this.voiceName = voiceName;
|
|
25
|
+
this.modelPath = modelPath;
|
|
26
|
+
}
|
|
27
|
+
async initialize() {
|
|
28
|
+
const logger = new Logger();
|
|
29
|
+
await logger.startAsync("Initialize VITS ONNX synthesis model");
|
|
30
|
+
const onnxOptions = {
|
|
31
|
+
logSeverityLevel: 3
|
|
32
|
+
};
|
|
33
|
+
this.modelSession = await Onnx.InferenceSession.create(`${this.modelPath}/${this.voiceName}.onnx`, onnxOptions);
|
|
34
|
+
this.metadata = await readAndParseJsonFile(`${this.modelPath}/${this.voiceName}.onnx.json`);
|
|
35
|
+
this.phonemeMap = new Map();
|
|
36
|
+
for (const key in this.metadata.phoneme_id_map) {
|
|
37
|
+
this.phonemeMap.set(key, this.metadata.phoneme_id_map[key]);
|
|
38
|
+
}
|
|
39
|
+
logger.end();
|
|
40
|
+
}
|
|
41
|
+
async synthesizeSentence(sentence, lengthScale, speakerId = 0, substitutionLexicons) {
|
|
42
|
+
const logger = new Logger();
|
|
43
|
+
if (!this.modelSession) {
|
|
44
|
+
throw new Error("Model has not been initialized");
|
|
45
|
+
}
|
|
46
|
+
await logger.startAsync("Prepare for synthesis");
|
|
47
|
+
const metadata = this.metadata;
|
|
48
|
+
const phonemeMap = this.phonemeMap;
|
|
49
|
+
const espeakVoice = metadata.espeak.voice;
|
|
50
|
+
const outputSampleRate = metadata.audio.sample_rate;
|
|
51
|
+
sentence = //simplifyPunctuationCharacters(sentence.trim())
|
|
52
|
+
sentence
|
|
53
|
+
.replaceAll("(", ", ")
|
|
54
|
+
.replaceAll(")", ", ")
|
|
55
|
+
.replaceAll("—", ", ");
|
|
56
|
+
const Espeak = await import("../synthesis/EspeakTTS.js");
|
|
57
|
+
logger.end();
|
|
58
|
+
const { referenceSynthesizedAudio, referenceTimeline, fragments, phonemizedFragmentsSubstitutions, phonemizedSentence } = await Espeak.preprocessAndSynthesizeSentence(sentence, espeakVoice, substitutionLexicons, true);
|
|
59
|
+
if (phonemizedSentence.length == 0) {
|
|
60
|
+
logger.end();
|
|
61
|
+
return {
|
|
62
|
+
rawAudio: getEmptyRawAudio(1, outputSampleRate),
|
|
63
|
+
timeline: [],
|
|
64
|
+
referenceSynthesizedAudio: getEmptyRawAudio(1, outputSampleRate),
|
|
65
|
+
referenceTimeline: []
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
await logger.startAsync("Encode phonemes to identifiers");
|
|
69
|
+
const clauseEndBreaker = ",";
|
|
70
|
+
let sentenceEndBreaker = ".";
|
|
71
|
+
if (sentence.endsWith("?") || sentence.endsWith("?\"")) {
|
|
72
|
+
sentenceEndBreaker = "?";
|
|
73
|
+
}
|
|
74
|
+
else if (sentence.endsWith("!") || sentence.endsWith("!\"")) {
|
|
75
|
+
sentenceEndBreaker = "!";
|
|
76
|
+
}
|
|
77
|
+
const phonemeCharacterSeparatorId = phonemeMap.get("_");
|
|
78
|
+
const wordSeparatorId = phonemeMap.get(" ");
|
|
79
|
+
const startId = phonemeMap.get("^");
|
|
80
|
+
const endId = phonemeMap.get("$");
|
|
81
|
+
const clauseEndBreakerId = phonemeMap.get(clauseEndBreaker);
|
|
82
|
+
const sentenceEndBreakerId = phonemeMap.get(sentenceEndBreaker);
|
|
83
|
+
const ids = [...startId, ...phonemeCharacterSeparatorId];
|
|
84
|
+
for (let clauseIndex = 0; clauseIndex < phonemizedSentence.length; clauseIndex++) {
|
|
85
|
+
const clause = phonemizedSentence[clauseIndex];
|
|
86
|
+
for (const word of clause) {
|
|
87
|
+
for (const phoneme of word) {
|
|
88
|
+
for (const phonemeCharacter of phoneme) {
|
|
89
|
+
const id = phonemeMap.get(phonemeCharacter);
|
|
90
|
+
if (id == null) {
|
|
91
|
+
//logger.log(`No id found for subphoneme "${char}"`)
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
ids.push(...id, ...phonemeCharacterSeparatorId);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (clauseIndex < phonemizedSentence.length - 1) {
|
|
98
|
+
ids.push(...wordSeparatorId, ...phonemeCharacterSeparatorId);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (clauseIndex < phonemizedSentence.length - 1) {
|
|
102
|
+
ids.push(...clauseEndBreakerId, ...phonemeCharacterSeparatorId);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
ids.push(...sentenceEndBreakerId, ...phonemeCharacterSeparatorId, ...endId);
|
|
106
|
+
//logger.log(ids)
|
|
107
|
+
const bigIntIds = new BigInt64Array(ids.map(id => BigInt(id)));
|
|
108
|
+
const idLengths = new BigInt64Array([BigInt(bigIntIds.length)]);
|
|
109
|
+
const inputTensor = new Onnx.Tensor('int64', bigIntIds, [1, bigIntIds.length]);
|
|
110
|
+
const inputLengthsTensor = new Onnx.Tensor('int64', idLengths, [1]);
|
|
111
|
+
const scalesTensor = new Onnx.Tensor('float32', [metadata.inference.noise_scale, lengthScale, metadata.inference.noise_w], [3]);
|
|
112
|
+
const speakerIdTensor = new Onnx.Tensor('int64', new BigInt64Array([BigInt(speakerId)]), [1]);
|
|
113
|
+
const modelInputs = { input: inputTensor, input_lengths: inputLengthsTensor, scales: scalesTensor, sid: speakerIdTensor };
|
|
114
|
+
await logger.startAsync("Generate audio using synthesis model");
|
|
115
|
+
const modelResults = await this.modelSession.run(modelInputs);
|
|
116
|
+
const modelOutput = modelResults["output"];
|
|
117
|
+
const synthesizedAudio = modelOutput['data'];
|
|
118
|
+
const rawAudio = { audioChannels: [synthesizedAudio], sampleRate: outputSampleRate };
|
|
119
|
+
await logger.startAsync("Align with reference synthesized audio");
|
|
120
|
+
const { alignUsingDtw } = await import("../alignment/SpeechAlignment.js");
|
|
121
|
+
const referenceWordTimeline = referenceTimeline.flatMap(clause => clause.timeline);
|
|
122
|
+
for (const wordEntry of referenceWordTimeline) {
|
|
123
|
+
wordEntry.timeline = wordEntry.timeline.flatMap(tokenEntry => tokenEntry.timeline);
|
|
124
|
+
}
|
|
125
|
+
const mappedTimeline = await alignUsingDtw(rawAudio, referenceSynthesizedAudio, referenceWordTimeline);
|
|
126
|
+
logger.end();
|
|
127
|
+
return { rawAudio, timeline: mappedTimeline, referenceSynthesizedAudio, referenceTimeline };
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export const voiceList = [
|
|
131
|
+
{
|
|
132
|
+
name: "ca-upc_ona-x-low",
|
|
133
|
+
languages: ["ca"],
|
|
134
|
+
gender: "female",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "ca-upc_pau-x-low",
|
|
138
|
+
languages: ["ca"],
|
|
139
|
+
gender: "male",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: "da-nst_talesyntese-medium",
|
|
143
|
+
languages: ["da"],
|
|
144
|
+
gender: "male",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "de-thorsten-low",
|
|
148
|
+
languages: ["de"],
|
|
149
|
+
gender: "male",
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
name: "de-eva_k-x-low",
|
|
153
|
+
languages: ["de"],
|
|
154
|
+
gender: "female",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
name: "de-ramona-low",
|
|
158
|
+
languages: ["de"],
|
|
159
|
+
gender: "female",
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
name: "de-pavoque-low",
|
|
163
|
+
languages: ["de"],
|
|
164
|
+
gender: "male",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "de-kerstin-low",
|
|
168
|
+
languages: ["de"],
|
|
169
|
+
gender: "female",
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
name: "en-gb-danny-low",
|
|
173
|
+
languages: ["en-GB", "en"],
|
|
174
|
+
gender: "male",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
name: "en-gb-alan-low",
|
|
178
|
+
languages: ["en-GB", "en"],
|
|
179
|
+
gender: "male",
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
name: "en-gb-southern_english_female-low",
|
|
183
|
+
languages: ["en-GB", "en"],
|
|
184
|
+
gender: "female",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: "en-us-amy-low",
|
|
188
|
+
languages: ["en-US", "en"],
|
|
189
|
+
gender: "female",
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
name: "en-us-kathleen-low",
|
|
193
|
+
languages: ["en-US", "en"],
|
|
194
|
+
gender: "female",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: "en-us-lessac-low",
|
|
198
|
+
languages: ["en-US", "en"],
|
|
199
|
+
gender: "female",
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
name: "en-us-lessac-medium",
|
|
203
|
+
languages: ["en-US", "en"],
|
|
204
|
+
gender: "female",
|
|
205
|
+
},
|
|
206
|
+
/*
|
|
207
|
+
{
|
|
208
|
+
name: "en-us-ljspeech-low",
|
|
209
|
+
languages: ["en-US", "en"],
|
|
210
|
+
gender: "female",
|
|
211
|
+
},
|
|
212
|
+
*/
|
|
213
|
+
{
|
|
214
|
+
name: "en-us-libritts-high",
|
|
215
|
+
languages: ["en-US", "en"],
|
|
216
|
+
gender: "unknown",
|
|
217
|
+
speakerCount: 904,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
name: "en-us-ryan-low",
|
|
221
|
+
languages: ["en-US", "en"],
|
|
222
|
+
gender: "male",
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
name: "en-us-ryan-medium",
|
|
226
|
+
languages: ["en-US", "en"],
|
|
227
|
+
gender: "male",
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
name: "en-us-ryan-high",
|
|
231
|
+
languages: ["en-US", "en"],
|
|
232
|
+
gender: "male",
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
name: "es-carlfm-x-low",
|
|
236
|
+
languages: ["es"],
|
|
237
|
+
gender: "male",
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
name: "es-mls_9972-low",
|
|
241
|
+
languages: ["es"],
|
|
242
|
+
gender: "male",
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: "es-mls_10246-low",
|
|
246
|
+
languages: ["es"],
|
|
247
|
+
gender: "male",
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
name: "fi-harri-low",
|
|
251
|
+
languages: ["fr"],
|
|
252
|
+
gender: "female",
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
name: "fr-siwis-low",
|
|
256
|
+
languages: ["fr"],
|
|
257
|
+
gender: "female",
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
name: "fr-siwis-medium",
|
|
261
|
+
languages: ["fr"],
|
|
262
|
+
gender: "female",
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
name: "fr-mls_1840-low",
|
|
266
|
+
languages: ["fr"],
|
|
267
|
+
gender: "male",
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
name: "it-riccardo_fasol-x-low",
|
|
271
|
+
languages: ["it"],
|
|
272
|
+
gender: "male",
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
name: "kk-iseke-x-low",
|
|
276
|
+
languages: ["kk"],
|
|
277
|
+
gender: "unknown",
|
|
278
|
+
speakerCount: 6,
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
name: "kk-raya-x-low",
|
|
282
|
+
languages: ["kk"],
|
|
283
|
+
gender: "male",
|
|
284
|
+
},
|
|
285
|
+
{
|
|
286
|
+
name: "kk-issai-high",
|
|
287
|
+
languages: ["kk"],
|
|
288
|
+
gender: "male",
|
|
289
|
+
},
|
|
290
|
+
{
|
|
291
|
+
name: "ne-google-medium",
|
|
292
|
+
languages: ["ne"],
|
|
293
|
+
gender: "female",
|
|
294
|
+
speakerCount: 18,
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
name: "ne-google-x-low",
|
|
298
|
+
languages: ["ne"],
|
|
299
|
+
gender: "female",
|
|
300
|
+
speakerCount: 18,
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
name: "nl-nathalie-x-low",
|
|
304
|
+
languages: ["nl"],
|
|
305
|
+
gender: "female",
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
name: "nl-rdh-medium",
|
|
309
|
+
languages: ["nl"],
|
|
310
|
+
gender: "male",
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
name: "nl-rdh-x-low",
|
|
314
|
+
languages: ["nl"],
|
|
315
|
+
gender: "male",
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
name: "nl-mls_7432-low",
|
|
319
|
+
languages: ["nl"],
|
|
320
|
+
gender: "female",
|
|
321
|
+
},
|
|
322
|
+
{
|
|
323
|
+
name: "no-talesyntese-medium",
|
|
324
|
+
languages: ["no"],
|
|
325
|
+
gender: "male",
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
name: "pl-mls_6892-low",
|
|
329
|
+
languages: ["pl"],
|
|
330
|
+
gender: "male",
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
name: "pt-br-edresson-low",
|
|
334
|
+
languages: ["pt-BR", "pt"],
|
|
335
|
+
gender: "male",
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
name: "uk-lada-x-low",
|
|
339
|
+
languages: ["uk"],
|
|
340
|
+
gender: "female",
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
name: "vi-vivos-x-low",
|
|
344
|
+
languages: ["vi"],
|
|
345
|
+
gender: "unknown",
|
|
346
|
+
speakerCount: 65,
|
|
347
|
+
},
|
|
348
|
+
{
|
|
349
|
+
name: "vi-25hours-single-low",
|
|
350
|
+
languages: ["vi"],
|
|
351
|
+
gender: "female",
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
name: "zh-cn-huayan-x-low",
|
|
355
|
+
languages: ["zh-CN", "zh"],
|
|
356
|
+
gender: "female",
|
|
357
|
+
},
|
|
358
|
+
];
|
|
359
|
+
//# sourceMappingURL=VitsTTS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VitsTTS.js","sourceRoot":"","sources":["../../src/synthesis/VitsTTS.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { logToStderr, setupProgramTerminationListeners } from "../utilities/Utilities.js";
|
|
2
|
+
const log = logToStderr;
|
|
3
|
+
setupProgramTerminationListeners();
|
|
4
|
+
//process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'
|
|
5
|
+
//process.env.http_proxy = "http://localhost:8080"
|
|
6
|
+
//const testText = `After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Alice! when she got to the door, she found she had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried.`
|
|
7
|
+
//await testKirshenbaumPhonemization(testText)
|
|
8
|
+
//await makeTarballsForInstalledPackages(true)
|
|
9
|
+
process.exit(0);
|
|
10
|
+
//# sourceMappingURL=Test.js.map
|