echogarden 0.0.1 → 0.1.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 +59 -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 +16 -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 @@
|
|
|
1
|
+
{"version":3,"file":"Synthesis.js","sourceRoot":"","sources":["../../src/api/Synthesis.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AAEvE,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAA;AAEjE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,6BAA6B,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AACpJ,OAAO,EAAY,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AACpL,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,EAA2B,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AACrH,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,oBAAoB,EAAY,sBAAsB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1K,OAAO,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACzI,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,GAAG,GAAG,WAAW,CAAA;AAEvB,6FAA6F;AAC7F,YAAY;AACZ,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,QAAkB,EAAE,OAAyB,EAAE,SAAiC,EAAE,UAAkC;IAC5J,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,OAAO,GAAG,UAAU,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;IAEtD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAA;QAClE,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;QAElF,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAA;QAEnC,MAAM,CAAC,GAAG,EAAE,CAAA;QACZ,MAAM,CAAC,GAAG,CAAC,sBAAsB,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAA;KAChF;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACpB,IAAI,OAAO,CAAC,KAAK,EAAE;YAClB,MAAM,IAAI,KAAK,CAAC,UAAU,OAAO,CAAC,KAAK,8CAA8C,CAAC,CAAA;SACtF;QAED,OAAO,CAAC,MAAM,GAAG,kCAAkC,CAAC,OAAO,CAAC,QAAS,CAAC,CAAA;QAEtE,MAAM,CAAC,GAAG,CAAC,2CAA2C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;KACxE;IAED,MAAM,CAAC,KAAK,CAAC,sBAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IAEpD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE7D,IAAI,CAAC,iBAAiB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC1C;IAED,OAAO,CAAC,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAA;IAEtC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;QACtB,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;KACjD;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IACZ,MAAM,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;IAEhD,MAAM,aAAa,GAAe,EAAE,CAAA;IACpC,MAAM,iBAAiB,GAAe,EAAE,CAAA;IAExC,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,IAAI,iBAAiB,GAAG,CAAC,GAAG,CAAA;IAE5B,IAAI,UAAU,GAAG,CAAC,CAAA;IAElB,KAAK,IAAI,YAAY,GAAG,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QAC1E,MAAM,CAAC,GAAG,CAAC,0BAA0B,YAAY,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAA;QAE7E,MAAM,WAAW,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAA;QACjD,MAAM,gBAAgB,GAAG,UAAU,CAAA;QAEnC,MAAM,YAAY,GAAkB;YACnC,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,WAAW;YACjB,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE,EAAE;SACZ,CAAA;QAED,IAAI,SAAmB,CAAA;QAEvB,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE;YACzD,SAAS,GAAG,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,QAAS,CAAC,CAAA;SAC5D;aAAM;YACN,SAAS,GAAG,CAAC,WAAW,CAAC,CAAA;SACzB;QAED,MAAM,cAAc,GAAe,EAAE,CAAA;QACrC,MAAM,kBAAkB,GAAe,EAAE,CAAA;QAEzC,KAAK,IAAI,aAAa,GAAG,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE;YAC9E,MAAM,CAAC,GAAG,CAAC,2BAA2B,aAAa,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;YAEhF,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAA;YACpD,MAAM,iBAAiB,GAAG,UAAU,CAAA;YAEpC,IAAI,yBAAyB,GAAqB,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,EAAE,CAAA;YAC/F,yBAAyB,GAAG,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAA;YAE1E,MAAM,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,GAAG,MAAM,iBAAiB,CAAC,YAAY,EAAE,yBAAyB,CAAC,CAAA;YAExI,MAAM,QAAQ,GAAG,aAAa,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAiB,CAAA;YAC7G,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAA;YAEvH,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAElC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;gBAChC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;aACzC;YAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,UAAU,CAAA;YAE5F,UAAU,IAAI,mBAAmB,CAAA;YAEjC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;YAE/F,YAAY,CAAC,QAAS,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,iBAAiB;gBAC5B,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,0BAA0B;aACpC,CAAC,CAAA;YAEF,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAA;YAElG,IAAI,UAAU,EAAE;gBACf,MAAM,UAAU,CAAC;oBAChB,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,SAAS,CAAC,MAAM;oBACvB,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,YAAY;oBACxB,QAAQ,EAAE,OAAO,CAAC,QAAS;oBAC3B,iBAAiB;iBACjB,CAAC,CAAA;aACF;SACD;QAED,YAAY,CAAC,OAAO,GAAG,UAAU,CAAA;QAEjC,MAAM,CAAC,GAAG,EAAE,CAAA;QAEZ,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAA;QAE/C,IAAI,YAAsB,CAAA;QAE1B,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;YAC9F,YAAY,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;SAC9F;aAAM;YACN,YAAY,GAAG,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;SACzC;QAED,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAEhC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QAC3B,MAAM,4BAA4B,GAAG,uBAAuB,CAAC,YAAY,CAAC,QAAS,EAAE,CAAC,gBAAgB,CAAC,CAAA;QACvG,iBAAiB,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QAEpD,MAAM,CAAC,GAAG,EAAE,CAAA;QAEZ,IAAI,SAAS,EAAE;YACd,MAAM,SAAS,CAAC;gBACf,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,QAAQ,CAAC,MAAM;gBACtB,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE,4BAA4B;gBACtC,UAAU,EAAE,WAAW;gBACvB,QAAQ,EAAE,OAAO,CAAC,QAAS;gBAC3B,iBAAiB;aACjB,CAAC,CAAA;SACF;KACD;IAED,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC9C,IAAI,WAAqB,CAAA;IAEzB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAA;QAC7F,WAAW,GAAG,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;QAE5F,IAAI,OAAO,CAAC,cAAe,CAAC,cAAc,EAAE;YAC3C,WAAW,GAAG,mBAAmB,CAAC,WAAW,EAAE,OAAO,CAAC,cAAe,CAAC,YAAY,EAAE,OAAO,CAAC,cAAe,CAAC,aAAa,CAAC,CAAA;SAC3H;KACD;SAAM;QACN,WAAW,GAAG,gBAAgB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;KACxC;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,OAAO;QACN,gBAAgB,EAAE,WAAW;QAC7B,QAAQ;QACR,aAAa;QACb,iBAAiB;KACjB,CAAA;AACF,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,OAAyB;IACvE,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;IAC3B,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,EAAE,CAAA;IAE5C,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAA;IAErC,MAAM,cAAc,GAAG,6BAA6B,CAAC,IAAI,CAAC,CAAA;IAE1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;IAE7B,MAAM,CAAC,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAA;IAE5C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE7D,IAAI,CAAC,iBAAiB,EAAE;QACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;KAC1C;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAA;IAEvC,IAAI,gBAAoC,CAAA;IAExC,IAAI,aAAa,CAAC,WAAW,EAAE;QAC9B,MAAM,CAAC,GAAG,EAAE,CAAA;QAEZ,gBAAgB,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;KAC/D;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,MAAM,SAAS,CAAC,CAAA;IAE3C,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAA;IAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACxG,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAA;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IAE7C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAK,CAAA;IAEjC,IAAI,gBAA0B,CAAA;IAE9B,IAAI,QAA8B,CAAA;IAElC,IAAI,sBAAsB,GAAG,KAAK,CAAA;IAClC,IAAI,sBAAsB,GAAG,KAAK,CAAA;IAElC,QAAQ,MAAM,EAAE;QACf,KAAK,MAAM,CAAC,CAAC;YACZ,IAAI,YAAY,GAAG,QAAQ,CAAA;YAE3B,IAAI,YAAY,IAAI,IAAI,EAAE;gBACzB,YAAY,GAAG,OAAO,CAAA;aACtB;YAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAEvD,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAA;YAE7B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAK,CAAA;YAEnC,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;YAEzC,IAAI,SAAS,IAAI,SAAS,EAAE;gBAC3B,IAAI,aAAa,CAAC,YAAY,IAAI,SAAS,EAAE;oBAC5C,IAAI,SAAS,IAAI,CAAC,EAAE;wBACnB,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;qBAC/F;iBACD;qBAAM,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,aAAa,CAAC,YAAY,EAAE;oBACpE,MAAM,IAAI,KAAK,CAAC,2BAA2B,aAAa,CAAC,YAAY,8CAA8C,CAAC,OAAO,aAAa,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC,CAAA;iBAC5J;aACD;YAED,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,sBAAsB,CAAC,+BAA+B,CAAC,CAAC,CAAA;YACxG,MAAM,QAAQ,GAAG,CAAC,iBAAiB,CAAC,CAAA;YAEpC,MAAM,SAAS,GAAG,gBAAiB,CAAA;YAEnC,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAEtI,gBAAgB,GAAG,QAAQ,CAAA;YAC3B,QAAQ,GAAG,WAAW,CAAA;YAEtB,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAK;SACL;QAED,KAAK,MAAM,CAAC,CAAC;YACZ,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;YAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,CAAA;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAA;YAEvB,MAAM,YAAY,GAAG,iBAAiB,SAAS,mBAAmB,SAAS,oBAAoB,UAAU,KAAK,cAAc,2BAA2B,CAAA;YAEvJ,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,GAAG,WAAW,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAA;YAEhH,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAiB,EAAE,oBAAoB,CAAC,CAAA;YAC9E,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAiB,EAAE,wBAAwB,CAAC,CAAA;YAE1F,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,YAAY,EAAE,gBAAgB,EAAE,wBAAwB,CAAC,CAAA;YAE3G,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAK;SACL;QAED,KAAK,OAAO,CAAC,CAAC;YACb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;YAEzD,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,cAAc,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAA;YAEtG,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,QAAQ,CAAC,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;YAE3D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAO,CAAA;YAErC,MAAM,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;YAC/B,MAAM,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,CAAA;YAC1D,MAAM,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAA;YAC3D,MAAM,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,IAAI,OAAO,CAAC,cAAe,GAAG,EAAE,CAAC,CAAA;YAEvF,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,cAAc,EAAE,WAAW,CAAC,CAAA;YAEpF,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAK;SACL;QAED,KAAK,KAAK,CAAC,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAA;YAErD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAI,CAAA;YAElC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,KAAM,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;YAErD,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;YAErG,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAK;SACL;QAED,KAAK,MAAM,CAAC,CAAC;YACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAEvD,MAAM,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;YAExC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAK,CAAA;YAEnC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,IAAI,CAAC,CAAA;YAExC,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;YAElG,gBAAgB,GAAG,QAAQ,CAAA;YAC3B,QAAQ,GAAG,WAAW,CAAA;YAEtB,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,UAAU,CAAC,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;YAEvD,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAEvC,MAAM,aAAa,GAAG,OAAO,CAAC,QAAS,CAAA;YAEvC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,IAAI,CAAC,CAAA;YAExC,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;YAEjG,gBAAgB,GAAG,QAAQ,CAAA;YAC3B,QAAQ,GAAG,WAAW,CAAA;YAEtB,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,cAAc,CAAC,CAAC;YACpB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;YAErE,MAAM,aAAa,GAAG,OAAO,CAAC,WAAY,CAAA;YAE1C,MAAM,SAAS,GAAG,aAAa,CAAC,SAAU,CAAA;YAC1C,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;YAEzC,IAAI,CAAC,SAAS,EAAE;gBACf,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;aACvD;YAED,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;YAE1F,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,cAAc,CAAC,CAAC;YACpB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;YAErE,MAAM,aAAa,GAAG,OAAO,CAAC,WAAY,CAAA;YAE1C,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;aACnC;YAED,IAAI,mBAA2B,CAAA;YAE/B,sCAAsC;YACtC,sCAAsC;YACtC,IAAI,aAAa,CAAC,mBAAmB,IAAI,SAAS,EAAE;gBACnD,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAA;aACvD;iBAAM,IAAI,KAAK,IAAI,GAAG,EAAE;gBACxB,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;aAC3D;iBAAM;gBACN,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAA;aAChE;YAED,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,EAAE,WAAW,CAAC,CAAA;YACtJ,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAA;YAEnE,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAK;SACL;QAED,KAAK,iBAAiB,CAAC,CAAC;YACvB,MAAM,yBAAyB,GAAG,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAA;YAE3F,MAAM,aAAa,GAAG,OAAO,CAAC,cAAe,CAAA;YAE7C,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAA;YAErD,IAAI,CAAC,eAAe,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;aAC5C;YAED,MAAM,aAAa,GAAG,aAAc,CAAC,aAAa,CAAA;YAElD,IAAI,CAAC,aAAa,EAAE;gBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;aAC1C;YAED,IAAI,SAAiB,CAAA;YAErB,IAAI,aAAa,CAAC,YAAY,IAAI,SAAS,EAAE;gBAC5C,IAAI,aAAa,CAAC,YAAY,IAAI,CAAC,EAAE;oBACpC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAA;iBACxD;qBAAM;oBACN,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAA;iBACxD;aACD;iBAAM;gBACN,SAAS,GAAG,kCAAkC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;aAClE;YAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAA;YAE1D,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,yBAAyB,CAAC,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAE/K,gBAAgB,GAAG,QAAQ,CAAA;YAC3B,QAAQ,GAAG,WAAW,CAAA;YAEtB,MAAK;SACL;QAED,KAAK,cAAc,CAAC,CAAC;YACpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;YAE/D,MAAM,aAAa,GAAG,OAAO,CAAC,QAAS,CAAA;YAEvC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;aAClC;YAED,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAA;YAE7C,IAAI,CAAC,WAAW,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;aACzC;YAED,MAAM,eAAe,GAAG,aAAa,CAAC,eAAe,CAAA;YAErD,IAAI,CAAC,eAAe,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;aAC7C;YAED,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,CAAA;YAC7C,MAAM,YAAY,GAAG,aAAa,CAAC,YAAY,CAAA;YAE/C,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,CAAA;YAEjK,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,YAAY,CAAC,CAAC;YAClB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;YAEnE,MAAM,aAAa,GAAG,OAAO,CAAC,UAAW,CAAA;YAEzC,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAA;YAEnC,IAAI,CAAC,MAAM,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;aAC9C;YAED,MAAM,OAAO,GAAI,aAAqB,CAAC,mBAAmB,CAAC,CAAA;YAC3D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAU,CAAA;YAC1C,MAAM,eAAe,GAAG,aAAa,CAAC,eAAgB,CAAA;YAEtD,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAA;YAEhH,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,kBAAkB,CAAC,CAAC;YACxB,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;YAE7E,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,EAAE,GAAG,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;YAE5L,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;YAChF,MAAM,gBAAgB,GAAyB,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE1F,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;YAEvF,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,KAAK,gBAAgB,CAAC,CAAC;YACtB,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAA;YAEzE,MAAM,aAAa,GAAG,OAAO,CAAC,aAAc,CAAA;YAE5C,MAAM,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAA;YAE3D,IAAI,CAAC,kBAAkB,EAAE;gBACxB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAA;aACpD;YAED,IAAI,MAAM,WAAW,CAAC,kBAAkB,CAAC,IAAI,kEAAkE,EAAE;gBAChH,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;aACrD;YAED,IAAI,SAAiB,CAAA;YAErB,IAAI,aAAa,CAAC,YAAY,IAAI,SAAS,EAAE;gBAC5C,IAAI,aAAa,CAAC,YAAY,IAAI,CAAC,EAAE;oBACpC,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAA;iBACxD;qBAAM;oBACN,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAA;iBACxD;aACD;iBAAM;gBACN,SAAS,GAAG,kCAAkC,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;aAClE;YAED,MAAM,QAAQ,GAAG,kCAAkC,CAAC,KAAK,CAAC,CAAA;YAE1D,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAEpI,gBAAgB,GAAG,QAAQ,CAAA;YAC3B,QAAQ,GAAG,YAAY,CAAA;YAEvB,MAAK;SACL;QAED,KAAK,kBAAkB,CAAC,CAAC;YACxB,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;YAE7E,MAAM,CAAC,GAAG,EAAE,CAAA;YAEZ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;YAErK,gBAAgB,GAAG,QAAQ,CAAA;YAE3B,MAAM,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAA;YAChF,MAAM,gBAAgB,GAAyB,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE1F,QAAQ,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAA;YAEvF,sBAAsB,GAAG,IAAI,CAAA;YAC7B,sBAAsB,GAAG,IAAI,CAAA;YAE7B,MAAK;SACL;QAED,OAAO,CAAC,CAAC;YACR,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAC,MAAM,oBAAoB,CAAC,CAAA;SAC9D;KACD;IAED,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;IAC7C,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;IAElD,IAAI,OAAO,CAAC,cAAe,CAAC,cAAc,EAAE;QAC3C,gBAAgB,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,CAAC,cAAe,CAAC,YAAa,EAAE,OAAO,CAAC,cAAe,CAAC,aAAc,CAAC,CAAA;KACvI;IAED,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IACnE,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;IAE7F,IAAI,QAAQ,EAAE;QACb,MAAM,WAAW,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,UAAU,CAAA;QACpE,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAA;QAE1F,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,EAAE,WAAW,GAAG,WAAW,CAAC,CAAA;KACvE;IAED,IAAI,CAAC,QAAQ,EAAE;QACd,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;QAEjD,IAAI,SAAS,GAAG,IAAI,CAAA;QAEpB,IAAI,WAAW,EAAE;YAChB,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACzC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAU,CAAA;QAE3C,gBAAgB,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAEpC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAA;QAEvF,QAAQ,GAAG,YAAY,CAAA;QAEvB,MAAM,CAAC,GAAG,EAAE,CAAA;KACZ;IAED,MAAM,qBAAqB,GAAG,OAAO,CAAC,cAAe,CAAA;IAErD,IAAI,iBAAiB,GAAG,qBAAqB,CAAC,KAAK,CAAA;IAEnD,IAAI,sBAAsB,IAAI,iBAAiB,IAAI,SAAS,EAAE;QAC7D,iBAAiB,GAAG,KAAK,CAAA;KACzB;IAED,IAAI,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAA;IAElD,IAAI,sBAAsB,IAAI,gBAAgB,IAAI,SAAS,EAAE;QAC5D,gBAAgB,GAAG,KAAK,CAAA;KACxB;IAED,IAAI,CAAC,iBAAiB,IAAI,SAAS,IAAI,iBAAiB,IAAI,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,SAAS,IAAI,gBAAgB,IAAI,GAAG,CAAC,EAAE;QAC/H,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAE7C,iBAAiB,GAAG,iBAAiB,IAAI,GAAG,CAAA;QAC5C,gBAAgB,GAAG,gBAAgB,IAAI,GAAG,CAAA;QAE1C,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,uBAAuB,CAAA;QAE7E,IAAI,uBAAuB,IAAI,OAAO,EAAE;YACvC,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAA;YAC7C,gBAAgB,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,CAAA;SACtG;aAAM,IAAI,uBAAuB,IAAI,YAAY,EAAE;YACnD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAA;YAEvD,MAAM,iBAAiB,GAAsB,UAAU,CAAC,UAAU,CAAC,wBAAwB,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAA;YAE9H,gBAAgB,GAAG,MAAM,UAAU,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,CAAA;SAC9H;aAAM;YACN,MAAM,IAAI,KAAK,CAAC,IAAI,uBAAuB,iDAAiD,CAAC,CAAA;SAC7F;QAED,IAAI,iBAAiB,IAAI,GAAG,IAAI,QAAQ,EAAE;YACzC,QAAQ,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC,GAAG,iBAAiB,CAAC,CAAA;SACpE;KACD;IAED,IAAI,QAAQ,EAAE;QACb,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;KAC5D;IAED,MAAM,CAAC,GAAG,EAAE,CAAA;IAEZ,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAA;IAE1D,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,CAAA;AACtC,CAAC;AAED,SAAS,kCAAkC,CAAC,IAAY;IACvD,IAAI,IAAI,IAAI,GAAG,EAAE;QAChB,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QACnD,OAAO,IAAI,cAAc,GAAG,CAAA;KAC5B;SAAM;QACN,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAA;QACzD,OAAO,IAAI,cAAc,GAAG,CAAA;KAC5B;AACF,CAAC;AAED,SAAS,kCAAkC,CAAC,KAAa,EAAE,WAAwB;IAClF,IAAI,oBAAoB,CAAA;IACxB,IAAI,WAAW,IAAI,MAAM,EAAE;QAC1B,kEAAkE;QAClE,oBAAoB,GAAG,GAAG,CAAA;KAC1B;SAAM,IAAI,WAAW,IAAI,QAAQ,EAAE;QACnC,oEAAoE;QACpE,oBAAoB,GAAG,GAAG,CAAA;KAC1B;SAAM;QACN,oEAAoE;QACpE,qDAAqD;QACrD,oBAAoB,GAAG,GAAG,CAAA;KAC1B;IAED,IAAI,KAAK,IAAI,GAAG,EAAE;QACjB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,GAAG,oBAAoB,CAAA;QACvF,OAAO,IAAI,eAAe,IAAI,CAAA;KAC9B;SAAM;QACN,MAAM,eAAe,GAAG,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,oBAAoB,CAAC,CAAA;QACvF,OAAO,IAAI,eAAe,IAAI,CAAA;KAC9B;AACF,CAAC;AAqHD,MAAM,CAAC,MAAM,uBAAuB,GAAqB;IACxD,MAAM,EAAE,SAAS;IAEjB,QAAQ,EAAE,SAAS;IAEnB,KAAK,EAAE,SAAS;IAChB,WAAW,EAAE,SAAS;IAEtB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IACV,cAAc,EAAE,GAAG;IAEnB,IAAI,EAAE,KAAK;IAEX,gBAAgB,EAAE,IAAI;IAEtB,eAAe,EAAE,GAAG;IACpB,gBAAgB,EAAE,IAAI;IAEtB,SAAS,EAAE;QACV,MAAM,EAAE,KAAK;KACb;IAED,cAAc,EAAE;QACf,cAAc,EAAE,IAAI;QACpB,YAAY,EAAE,CAAC,CAAC;QAChB,aAAa,EAAE,EAAE;QAEjB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAEhB,uBAAuB,EAAE,OAAO;QAChC,UAAU,EAAE,EACX;KACD;IAED,IAAI,EAAE;QACL,SAAS,EAAE,SAAS;KACpB;IAED,IAAI,EAAE,EACL;IAED,KAAK,EAAE,EACN;IAED,MAAM,EAAE;QACP,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,SAAS;QAChB,UAAU,EAAE,SAAS;KACrB;IAED,GAAG,EAAE;QACJ,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,GAAG;KACX;IAED,IAAI,EAAE;QACL,IAAI,EAAE,CAAC;KACP;IAED,QAAQ,EAAE;QACT,IAAI,EAAE,CAAC;KACP;IAED,WAAW,EAAE;QACZ,SAAS,EAAE,mBAAmB;QAC9B,SAAS,EAAE,IAAI;KACf;IAED,WAAW,EAAE;QACZ,MAAM,EAAE,SAAS;QAEjB,mBAAmB,EAAE,SAAS;QAE9B,WAAW,EAAE,EACZ;KACD;IAED,cAAc,EAAE;QACf,eAAe,EAAE,SAAS;QAC1B,aAAa,EAAE,SAAS;QAExB,YAAY,EAAE,SAAS;KACvB;IAED,QAAQ,EAAE;QACT,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,SAAS;QACtB,eAAe,EAAE,SAAS;QAC1B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACvB;IAED,UAAU,EAAE;QACX,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,CAAC;QAClB,MAAM,EAAE,SAAS;KACjB;IAED,eAAe,EAAE;QAChB,GAAG,EAAE,IAAI;KACT;IAED,aAAa,EAAE;QACd,kBAAkB,EAAE,SAAS;QAE7B,YAAY,EAAE,SAAS;KACvB;IAED,eAAe,EAAE,EAChB;CACD,CAAA;AAED,6FAA6F;AAC7F,qBAAqB;AACrB,6FAA6F;AAC7F,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAgC;IACtE,OAAO,GAAG,UAAU,CAAC,8BAA8B,EAAE,OAAO,CAAC,CAAA;IAE7D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAM,CAAA;IAEnC,IAAI,QAAQ,GAAG,YAAY,EAAE,IAAI,CAAA;IAEjC,IAAI,CAAC,QAAQ,EAAE;QACd,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;QACzC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAA;QACpD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;KACzB;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,OAAO,CAAC,MAAM,cAAc,CAAC,CAAA;IAE1E,KAAK,UAAU,aAAa;QAC3B,IAAI,SAAS,GAAqB,EAAE,CAAA;QAEpC,QAAQ,OAAO,CAAC,MAAM,EAAE;YACvB,KAAK,QAAQ,CAAC,CAAC;gBACd,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;gBAE3D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAA;gBAE3C,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;oBAE/E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;wBACjC,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;wBAExD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;4BAC3C,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;yBACjC;qBACD;oBAGD,OAAO;wBACN,IAAI,EAAE,KAAK,CAAC,UAAU;wBACtB,SAAS;wBACT,MAAM,EAAE,MAAM;qBACd,CAAA;gBACF,CAAC,CAAC,CAAA;gBAEF,MAAK;aACL;YAED,KAAK,OAAO,CAAC,CAAC;gBACb,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAA;gBAEzD,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBAEtC,MAAK;aACL;YAED,KAAK,MAAM,CAAC,CAAC;gBACZ,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;gBAE/D,SAAS,GAAG,WAAW,CAAC,SAAS,CAAA;gBAEjC,MAAK;aACL;YAED,KAAK,KAAK,CAAC,CAAC;gBACX,SAAS,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC;oBAC1B,MAAM,EAAE,MAAM;iBACd,CAAC,CAAA;gBAEF,MAAK;aACL;YAED,KAAK,MAAM,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;gBAEvD,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;oBACzC,OAAO,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,QAAQ,KAAK,CAAC,IAAI,EAAE,EAAE,CAAA;gBACvD,CAAC,CAAC,CAAA;gBAEF,MAAK;aACL;YAED,KAAK,MAAM,CAAC,CAAC;gBACZ,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;gBAEvD,MAAM,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAA;gBAExC,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;gBAE7C,MAAK;aACL;YAED,KAAK,UAAU,CAAC,CAAC;gBAChB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAA;gBAEvD,MAAM,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;gBAEvC,SAAS,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;gBAE5C,MAAK;aACL;YAED,KAAK,cAAc,CAAC,CAAC;gBACpB,SAAS,GAAG,CAAC;wBACZ,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,CAAC,OAAO,CAAC;wBACpB,MAAM,EAAE,SAAS;qBACjB,CAAC,CAAA;gBAEF,MAAK;aACL;YAED,KAAK,cAAc,CAAC,CAAC;gBACpB,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;gBAErE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAY,CAAC,MAAM,CAAA;gBAE1C,IAAI,CAAC,MAAM,EAAE;oBACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;iBACnC;gBAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAA;gBAExD,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAChC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxG,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAyB;iBAC7D,CAAC,CAAC,CAAA;gBAEH,MAAK;aACL;YAED,KAAK,iBAAiB,CAAC,CAAC;gBACvB,MAAM,yBAAyB,GAAG,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAA;gBAE3F,MAAM,eAAe,GAAG,OAAO,CAAC,cAAe,CAAC,eAAe,CAAA;gBAE/D,IAAI,CAAC,eAAe,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;iBAC5C;gBAED,MAAM,aAAa,GAAG,OAAO,CAAC,cAAe,CAAC,aAAa,CAAA;gBAE3D,IAAI,CAAC,aAAa,EAAE;oBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;iBAC1C;gBAED,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;gBAE3F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC3B,SAAS,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,SAAS,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpF,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;qBAC7C,CAAC,CAAA;iBACF;gBAED,MAAK;aACL;YAED,KAAK,cAAc,CAAC,CAAC;gBACpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;gBAE/D,MAAM,MAAM,GAAG,OAAO,CAAC,QAAS,CAAC,MAAM,CAAA;gBAEvC,IAAI,CAAC,MAAM,EAAE;oBACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;iBAClC;gBAED,MAAM,WAAW,GAAG,OAAO,CAAC,QAAS,CAAC,WAAW,CAAA;gBAEjD,IAAI,CAAC,WAAW,EAAE;oBACjB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;iBACzC;gBAED,MAAM,eAAe,GAAG,OAAO,CAAC,QAAS,CAAC,eAAe,CAAA;gBAEzD,IAAI,CAAC,eAAe,EAAE;oBACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;iBAC7C;gBAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,eAAe,CAAC,CAAA;gBAEnF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;oBAC3B,MAAM,YAAY,GAAG,qBAAqB,CAAC,KAAK,CAAC,YAAa,CAAC,CAAA;oBAC/D,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,oBAAoB,CAAC,YAAY,CAAC,CAAC,CAAA;oBAExE,IAAI,KAAK,CAAC,uBAAuB,EAAE;wBAClC,KAAK,MAAM,sBAAsB,IAAI,KAAK,CAAC,uBAAuB,EAAE;4BACnE,aAAa,CAAC,IAAI,CACjB,qBAAqB,CAAC,sBAAsB,CAAC,EAC7C,oBAAoB,CAAC,sBAAsB,CAAC,CAC5C,CAAA;yBACD;qBACD;oBAED,SAAS,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,KAAK,CAAC,EAAG;wBACf,SAAS,EAAE,aAAa;wBACxB,MAAM,EAAE,KAAK,CAAC,MAAO,CAAC,WAAW,EAAyB;qBAC1D,CAAC,CAAA;iBACF;gBAED,MAAK;aACL;YAED,KAAK,YAAY,CAAC,CAAC;gBAClB,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;gBACnE,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAA;gBAE9C,MAAK;aACL;YAED,KAAK,kBAAkB,CAAC,CAAC;gBACxB,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;gBAE7E,MAAM,UAAU,GAAG,kBAAkB,CAAC,uBAAuB,CAAA;gBAE7D,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE;oBAClC,SAAS,CAAC,IAAI,CAAC;wBACd,IAAI,EAAE,UAAU,CAAC,QAAQ,CAAC;wBAC1B,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;wBACzI,MAAM,EAAE,SAAS;qBACjB,CAAC,CAAA;iBACF;gBAED,MAAK;aACL;YAED,KAAK,gBAAgB,CAAC,CAAC;gBACtB,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAA;gBAEzE,MAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,EAAE,kBAAkB,CAAA;gBAEpE,IAAI,CAAC,kBAAkB,EAAE;oBACxB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;iBACnD;gBAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAA;gBAEtE,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;oBACvC,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,SAAS,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBACpF,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;iBAClD,CAAC,CAAC,CAAA;gBAEH,MAAK;aACL;YAED,KAAK,kBAAkB,CAAC,CAAC;gBACxB,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAA;gBAE7E,SAAS,GAAG,kBAAkB,CAAC,SAAS,CAAA;gBAExC,MAAK;aACL;SACD;QAGD,IAAI,aAAa,EAAE;YAClB,MAAM,aAAa,CAAC,aAAa,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC,CAAA;SACrE;QAED,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,IAAI,SAA2B,CAAA;IAE/B,IAAI,aAAa,IAAI,UAAU,CAAC,aAAa,CAAC,IAAI,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,KAAM,CAAC,QAAS,CAAC,EAAE;QAClH,SAAS,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAA;KACrD;SAAM;QACN,SAAS,GAAG,MAAM,aAAa,EAAE,CAAA;KACjC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAA;IAElE,IAAI,YAAY,EAAE;QACjB,IAAI,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAA;QAEzF,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAChE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAA;YAE5D,iBAAiB,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAA;SAC1F;QAED,SAAS,GAAG,iBAAiB,CAAA;KAC7B;IAED,IAAI,OAAO,CAAC,WAAW,EAAE;QACxB,MAAM,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAA;QACzD,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,IAAI,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAA;KACnG;IAED,IAAI,OAAO,CAAC,KAAK,EAAE;QAClB,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAA;QAC9D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAE1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAA;SACpG;aAAM;YACN,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBACpC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAA;gBAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;gBAEnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;oBACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;wBAC9C,OAAO,IAAI,CAAA;qBACX;iBACD;gBAED,OAAO,KAAK,CAAA;YACb,CAAC,CAAC,CAAA;SACF;KACD;IAED,IAAI,iBAAiB,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;IAEpC,IAAI,iBAAiB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE;QACvF,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAA;QAElE,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;YAC9B,IAAI,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;gBACnD,iBAAiB,GAAG,KAAK,CAAA;gBACzB,MAAK;aACL;SACD;KACD;IAED,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,QAAgB;IAClE,QAAQ,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAA;IAE1C,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAE1J,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrC,OAAO,MAAM,CAAA;KACb;IAED,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAA,AAAT,EAAW,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEpF,IAAI,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACtC,OAAO,OAAO,CAAA;KACd;IAED,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAEhE,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACrC,OAAO,MAAM,CAAA;KACb;IAED,OAAO,QAAQ,CAAA;AAChB,CAAC;AASD,MAAM,CAAC,MAAM,8BAA8B,GAA4B;IACtE,GAAG,uBAAuB;IAE1B,KAAK,EAAE;QACN,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,EAAE,GAAG,EAAE;KACjB;CACD,CAAA"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RawAudio } from "../audio/AudioUtilities.js";
|
|
2
|
+
import { Timeline } from "../utilities/Timeline.js";
|
|
3
|
+
import type { WhisperModelName } from "../recognition/WhisperSTT.js";
|
|
4
|
+
export declare function translateSpeechFile(filename: string, options: SpeechTranslationOptions): Promise<{
|
|
5
|
+
transcript: string;
|
|
6
|
+
timeline: Timeline;
|
|
7
|
+
rawAudio: RawAudio;
|
|
8
|
+
sourceLanguage: string;
|
|
9
|
+
}>;
|
|
10
|
+
export declare function translateSpeech(inputRawAudio: RawAudio, options: SpeechTranslationOptions): Promise<{
|
|
11
|
+
transcript: string;
|
|
12
|
+
timeline: Timeline;
|
|
13
|
+
rawAudio: RawAudio;
|
|
14
|
+
sourceLanguage: string;
|
|
15
|
+
}>;
|
|
16
|
+
export type SpeechTranslationEngine = "whisper";
|
|
17
|
+
export interface SpeechTranslationOptions {
|
|
18
|
+
engine?: SpeechTranslationEngine;
|
|
19
|
+
sourceLanguage?: string;
|
|
20
|
+
targetLanguage?: string;
|
|
21
|
+
whisper?: {
|
|
22
|
+
model?: WhisperModelName;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare const defaultSpeechTranslationOptions: SpeechTranslationOptions;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { extendDeep } from "../utilities/ObjectUtilities.js";
|
|
2
|
+
import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
|
|
3
|
+
import { logToStderr } from "../utilities/Utilities.js";
|
|
4
|
+
import { downmixToMonoAndNormalize, trimAudioEnd } from "../audio/AudioUtilities.js";
|
|
5
|
+
import { Logger } from "../utilities/Logger.js";
|
|
6
|
+
import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
|
|
7
|
+
import { getShortLanguageCode, normalizeLanguageCode } from "../utilities/Locale.js";
|
|
8
|
+
const log = logToStderr;
|
|
9
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
10
|
+
// Speech translation
|
|
11
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
12
|
+
export async function translateSpeechFile(filename, options) {
|
|
13
|
+
const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
|
|
14
|
+
return translateSpeech(rawAudio, options);
|
|
15
|
+
}
|
|
16
|
+
export async function translateSpeech(inputRawAudio, options) {
|
|
17
|
+
const logger = new Logger();
|
|
18
|
+
const startTimestamp = logger.getTimestamp();
|
|
19
|
+
if (!options.sourceLanguage) {
|
|
20
|
+
throw new Error(`Source language is not set`);
|
|
21
|
+
}
|
|
22
|
+
logger.start("Preprocess audio for translation");
|
|
23
|
+
options = extendDeep(defaultSpeechTranslationOptions, options);
|
|
24
|
+
const engine = options.engine;
|
|
25
|
+
const sourceLanguage = normalizeLanguageCode(options.sourceLanguage);
|
|
26
|
+
const targetLanguage = options.targetLanguage;
|
|
27
|
+
let transcript;
|
|
28
|
+
let timeline;
|
|
29
|
+
let sourceRawAudio = await resampleAudioSpeex(inputRawAudio, 16000);
|
|
30
|
+
sourceRawAudio = downmixToMonoAndNormalize(sourceRawAudio);
|
|
31
|
+
sourceRawAudio.audioChannels[0] = trimAudioEnd(sourceRawAudio.audioChannels[0], 0, -40);
|
|
32
|
+
logger.start(`Load ${engine} module`);
|
|
33
|
+
switch (engine) {
|
|
34
|
+
case "whisper": {
|
|
35
|
+
const WhisperSTT = await import("../recognition/WhisperSTT.js");
|
|
36
|
+
const whisperOptions = options.whisper;
|
|
37
|
+
const shortSourceLanguageCode = getShortLanguageCode(sourceLanguage);
|
|
38
|
+
const shortTargetLanguageCode = getShortLanguageCode(targetLanguage);
|
|
39
|
+
const { modelName, modelDir, tokenizerDir } = await WhisperSTT.loadPackagesAndGetPaths(whisperOptions.model, shortSourceLanguageCode);
|
|
40
|
+
if (shortTargetLanguageCode != "en") {
|
|
41
|
+
throw new Error("Whisper translation only supports English as target language");
|
|
42
|
+
}
|
|
43
|
+
if (modelName.endsWith(".en")) {
|
|
44
|
+
throw new Error("Whisper translation tasks are only possible with a multilingual model");
|
|
45
|
+
}
|
|
46
|
+
if (shortSourceLanguageCode == "en" && shortTargetLanguageCode == "en") {
|
|
47
|
+
throw new Error("Both translation source and target language are English");
|
|
48
|
+
}
|
|
49
|
+
logger.end();
|
|
50
|
+
({ transcript, timeline } = await WhisperSTT.recognize(sourceRawAudio, modelName, modelDir, tokenizerDir, "translate", sourceLanguage));
|
|
51
|
+
break;
|
|
52
|
+
}
|
|
53
|
+
default: {
|
|
54
|
+
throw new Error(`Engine '${options.engine}' is not supported`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
logger.end();
|
|
58
|
+
logger.logDuration(`Total speech translation time`, startTimestamp);
|
|
59
|
+
return { transcript, timeline, rawAudio: inputRawAudio, sourceLanguage };
|
|
60
|
+
}
|
|
61
|
+
export const defaultSpeechTranslationOptions = {
|
|
62
|
+
engine: "whisper",
|
|
63
|
+
sourceLanguage: undefined,
|
|
64
|
+
targetLanguage: "en",
|
|
65
|
+
whisper: {
|
|
66
|
+
model: "tiny",
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=Translation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Translation.js","sourceRoot":"","sources":["../../src/api/Translation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { RawAudio } from "../audio/AudioUtilities.js";
|
|
2
|
+
import { Timeline } from "../utilities/Timeline.js";
|
|
3
|
+
export declare function detectFileVoiceActivity(filename: string, options: VADOptions): Promise<{
|
|
4
|
+
timeline: Timeline;
|
|
5
|
+
rawAudio: RawAudio;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function detectVoiceActivity(rawAudio: RawAudio, options: VADOptions): Promise<{
|
|
8
|
+
timeline: Timeline;
|
|
9
|
+
rawAudio: RawAudio;
|
|
10
|
+
}>;
|
|
11
|
+
export type VADEngine = "webrtc" | "silero" | "rnnoise";
|
|
12
|
+
export interface VADOptions {
|
|
13
|
+
engine?: VADEngine;
|
|
14
|
+
activityThreshold?: number;
|
|
15
|
+
webrtc?: {
|
|
16
|
+
frameDuration?: 10 | 20 | 30;
|
|
17
|
+
mode?: 0 | 1 | 2 | 3;
|
|
18
|
+
};
|
|
19
|
+
silero?: {
|
|
20
|
+
modelPath?: string;
|
|
21
|
+
frameDuration?: 30 | 60 | 90;
|
|
22
|
+
};
|
|
23
|
+
rnnoise?: {};
|
|
24
|
+
}
|
|
25
|
+
export declare const defaultVADOptions: VADOptions;
|
package/dist/api/Vad.js
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { extendDeep } from "../utilities/ObjectUtilities.js";
|
|
2
|
+
import * as FFMpegTranscoder from "../codecs/FFMpegTranscoder.js";
|
|
3
|
+
import { logToStderr } from "../utilities/Utilities.js";
|
|
4
|
+
import { downmixToMonoAndNormalize } from "../audio/AudioUtilities.js";
|
|
5
|
+
import { Logger } from "../utilities/Logger.js";
|
|
6
|
+
import { resampleAudioSpeex } from "../dsp/SpeexResampler.js";
|
|
7
|
+
import path from "path";
|
|
8
|
+
import { loadPackage } from "../utilities/PackageManager.js";
|
|
9
|
+
const log = logToStderr;
|
|
10
|
+
export async function detectFileVoiceActivity(filename, options) {
|
|
11
|
+
const rawAudio = await FFMpegTranscoder.decodeToChannels(filename);
|
|
12
|
+
return detectVoiceActivity(rawAudio, options);
|
|
13
|
+
}
|
|
14
|
+
export async function detectVoiceActivity(rawAudio, options) {
|
|
15
|
+
const logger = new Logger();
|
|
16
|
+
logger.start("Prepare for voice activity detection");
|
|
17
|
+
options = extendDeep(defaultVADOptions, options);
|
|
18
|
+
rawAudio = await resampleAudioSpeex(rawAudio, 16000);
|
|
19
|
+
rawAudio = downmixToMonoAndNormalize(rawAudio);
|
|
20
|
+
logger.start(`Detect voice activity with ${options.engine}`);
|
|
21
|
+
let frameDurationSeconds;
|
|
22
|
+
let frameProbabilities;
|
|
23
|
+
switch (options.engine) {
|
|
24
|
+
case "webrtc": {
|
|
25
|
+
const WebRtcVAD = await import("../voice-activity-detection/WebRtcVAD.js");
|
|
26
|
+
const webrtcOptions = options.webrtc;
|
|
27
|
+
frameProbabilities = await WebRtcVAD.detectVoiceActivity(rawAudio, webrtcOptions.frameDuration);
|
|
28
|
+
frameDurationSeconds = webrtcOptions.frameDuration / 1000;
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
case "silero": {
|
|
32
|
+
const SileroVAD = await import("../voice-activity-detection/SileroVAD.js");
|
|
33
|
+
const sileroOptions = options.silero;
|
|
34
|
+
const modelDir = await loadPackage("silero-vad");
|
|
35
|
+
const modelPath = path.join(modelDir, "silero-vad.onnx");
|
|
36
|
+
const frameDuration = sileroOptions.frameDuration;
|
|
37
|
+
frameProbabilities = await SileroVAD.detectVoiceActivity(rawAudio, modelPath, frameDuration);
|
|
38
|
+
frameDurationSeconds = sileroOptions.frameDuration / 1000;
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
case "rnnoise": {
|
|
42
|
+
const RNNoise = await import("../denoising/RNNoise.js");
|
|
43
|
+
const rnnoiseOptions = options.rnnoise;
|
|
44
|
+
const { denoisedRawAudio, frameVadProbabilities } = await RNNoise.denoiseAudio(rawAudio);
|
|
45
|
+
frameDurationSeconds = 0.01;
|
|
46
|
+
frameProbabilities = frameVadProbabilities;
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
default: {
|
|
50
|
+
throw new Error(`Engine '${options.engine}' is not supported`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const timeline = [];
|
|
54
|
+
for (let i = 0; i < frameProbabilities.length; i++) {
|
|
55
|
+
const frameProbability = frameProbabilities[i];
|
|
56
|
+
const startTime = i * frameDurationSeconds;
|
|
57
|
+
const endTime = (i + 1) * frameDurationSeconds;
|
|
58
|
+
if (frameProbability >= options.activityThreshold) {
|
|
59
|
+
if (timeline.length == 0 || timeline[timeline.length - 1].text == "nonspeech") {
|
|
60
|
+
timeline.push({ type: "segment", text: "speech", startTime, endTime });
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (timeline.length == 0 || timeline[timeline.length - 1].text == "speech") {
|
|
66
|
+
timeline.push({ type: "segment", text: "nonspeech", startTime, endTime });
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
timeline[timeline.length - 1].endTime = endTime;
|
|
71
|
+
}
|
|
72
|
+
logger.end();
|
|
73
|
+
return { timeline, rawAudio };
|
|
74
|
+
}
|
|
75
|
+
export const defaultVADOptions = {
|
|
76
|
+
engine: "webrtc",
|
|
77
|
+
activityThreshold: 0.5,
|
|
78
|
+
webrtc: {
|
|
79
|
+
frameDuration: 30,
|
|
80
|
+
mode: 1
|
|
81
|
+
},
|
|
82
|
+
silero: {
|
|
83
|
+
modelPath: undefined,
|
|
84
|
+
frameDuration: 90,
|
|
85
|
+
},
|
|
86
|
+
rnnoise: {}
|
|
87
|
+
};
|
|
88
|
+
//# sourceMappingURL=Vad.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Vad.js","sourceRoot":"","sources":["../../src/api/Vad.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { SampleFormat } from "../codecs/WaveCodec.js";
|
|
3
|
+
export declare function encodeToAudioBuffer(audioChannels: Float32Array[], targetBitDepth: number, targetSampleFormat?: SampleFormat): Buffer;
|
|
4
|
+
export declare function decodeToChannels(audioBuffer: Buffer, channelCount: number, sourceBitDepth: number, sourceSampleFormat: SampleFormat): Float32Array[];
|
|
5
|
+
export declare function uint8PcmToFloat32(input: Uint8Array): Float32Array;
|
|
6
|
+
export declare function float32ToUint8Pcm(input: Float32Array): Uint8Array;
|
|
7
|
+
export declare function int16PcmToFloat32(input: Int16Array): Float32Array;
|
|
8
|
+
export declare function float32ToInt16Pcm(input: Float32Array): Int16Array;
|
|
9
|
+
export declare function int24PcmToFloat32(input: Int32Array): Float32Array;
|
|
10
|
+
export declare function float32ToInt24Pcm(input: Float32Array): Int32Array;
|
|
11
|
+
export declare function int32PcmToFloat32(input: Int32Array): Float32Array;
|
|
12
|
+
export declare function float32ToInt32Pcm(input: Float32Array): Int32Array;
|
|
13
|
+
export declare function interleaveChannels(channels: Float32Array[]): Float32Array;
|
|
14
|
+
export declare function deInterleaveChannels(interleavedChannels: Float32Array, channelCount: number): Float32Array[];
|
|
15
|
+
export declare function clampFloatSample(floatSample: number): number;
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import AlawMulaw from "alawmulaw";
|
|
2
|
+
import * as BinaryArrayConversion from '../utilities/BinaryArrayConversion.js';
|
|
3
|
+
import { SampleFormat } from "../codecs/WaveCodec.js";
|
|
4
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
5
|
+
// Low level audio sample conversions
|
|
6
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
7
|
+
export function encodeToAudioBuffer(audioChannels, targetBitDepth, targetSampleFormat = SampleFormat.PCM) {
|
|
8
|
+
const interleavedChannels = interleaveChannels(audioChannels);
|
|
9
|
+
if (targetSampleFormat == SampleFormat.PCM) {
|
|
10
|
+
if (targetBitDepth == 8) {
|
|
11
|
+
return Buffer.from(float32ToUint8Pcm(interleavedChannels).buffer);
|
|
12
|
+
}
|
|
13
|
+
else if (targetBitDepth == 16) {
|
|
14
|
+
return BinaryArrayConversion.int16ToBufferLE(float32ToInt16Pcm(interleavedChannels));
|
|
15
|
+
}
|
|
16
|
+
else if (targetBitDepth == 24) {
|
|
17
|
+
return BinaryArrayConversion.int24ToBufferLE(float32ToInt24Pcm(interleavedChannels));
|
|
18
|
+
}
|
|
19
|
+
else if (targetBitDepth == 32) {
|
|
20
|
+
return BinaryArrayConversion.int32ToBufferLE(float32ToInt32Pcm(interleavedChannels));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
throw new Error(`Unsupported PCM bit depth: ${targetBitDepth}`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (targetSampleFormat == SampleFormat.Float) {
|
|
27
|
+
if (targetBitDepth == 32) {
|
|
28
|
+
return BinaryArrayConversion.float32ToBufferLE(interleavedChannels);
|
|
29
|
+
}
|
|
30
|
+
else if (targetBitDepth == 64) {
|
|
31
|
+
return BinaryArrayConversion.float64ToBufferLE(BinaryArrayConversion.float32Tofloat64(interleavedChannels));
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
throw new Error(`Unsupported float bit depth: ${targetBitDepth}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
else if (targetSampleFormat == SampleFormat.Alaw) {
|
|
38
|
+
if (targetBitDepth == 8) {
|
|
39
|
+
return Buffer.from(AlawMulaw.alaw.encode(float32ToInt16Pcm(interleavedChannels)));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
throw new Error(`Unsupported alaw bit depth: ${targetBitDepth}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (targetSampleFormat == SampleFormat.Mulaw) {
|
|
46
|
+
if (targetBitDepth == 8) {
|
|
47
|
+
return Buffer.from(AlawMulaw.mulaw.encode(float32ToInt16Pcm(interleavedChannels)));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw new Error(`Unsupported mulaw bit depth: ${targetBitDepth}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
throw new Error(`Unsupported audio format: ${targetSampleFormat}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function decodeToChannels(audioBuffer, channelCount, sourceBitDepth, sourceSampleFormat) {
|
|
58
|
+
let interleavedChannels;
|
|
59
|
+
if (sourceSampleFormat == SampleFormat.PCM) {
|
|
60
|
+
if (sourceBitDepth == 8) {
|
|
61
|
+
interleavedChannels = uint8PcmToFloat32(audioBuffer);
|
|
62
|
+
}
|
|
63
|
+
else if (sourceBitDepth == 16) {
|
|
64
|
+
interleavedChannels = int16PcmToFloat32(BinaryArrayConversion.bufferLEToInt16(audioBuffer));
|
|
65
|
+
}
|
|
66
|
+
else if (sourceBitDepth == 24) {
|
|
67
|
+
interleavedChannels = int24PcmToFloat32(BinaryArrayConversion.bufferLEToInt24(audioBuffer));
|
|
68
|
+
}
|
|
69
|
+
else if (sourceBitDepth == 32) {
|
|
70
|
+
interleavedChannels = int32PcmToFloat32(BinaryArrayConversion.bufferLEToInt32(audioBuffer));
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
throw new Error(`Unsupported PCM bit depth: ${sourceBitDepth}`);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
else if (sourceSampleFormat == SampleFormat.Float) {
|
|
77
|
+
if (sourceBitDepth == 32) {
|
|
78
|
+
interleavedChannels = BinaryArrayConversion.bufferLEToFloat32(audioBuffer);
|
|
79
|
+
}
|
|
80
|
+
else if (sourceBitDepth == 64) {
|
|
81
|
+
interleavedChannels = BinaryArrayConversion.float64Tofloat32(BinaryArrayConversion.bufferLEToFloat64(audioBuffer));
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
throw new Error(`Unsupported float bit depth: ${sourceBitDepth}`);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
else if (sourceSampleFormat == SampleFormat.Alaw) {
|
|
88
|
+
if (sourceBitDepth == 8) {
|
|
89
|
+
interleavedChannels = int16PcmToFloat32(AlawMulaw.alaw.decode(audioBuffer));
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
throw new Error(`Unsupported alaw bit depth: ${sourceBitDepth}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else if (sourceSampleFormat == SampleFormat.Mulaw) {
|
|
96
|
+
if (sourceBitDepth == 8) {
|
|
97
|
+
interleavedChannels = int16PcmToFloat32(AlawMulaw.mulaw.decode(audioBuffer));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
throw new Error(`Unsupported mulaw bit depth: ${sourceBitDepth}`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
throw new Error(`Unsupported audio format: ${sourceSampleFormat}`);
|
|
105
|
+
}
|
|
106
|
+
return deInterleaveChannels(interleavedChannels, channelCount);
|
|
107
|
+
}
|
|
108
|
+
// Int8 PCM <-> Float32 conversion
|
|
109
|
+
export function uint8PcmToFloat32(input) {
|
|
110
|
+
const output = new Float32Array(input.length);
|
|
111
|
+
for (let i = 0; i < input.length; i++) {
|
|
112
|
+
const sample = input[i] - 128;
|
|
113
|
+
output[i] = sample < 0 ? sample / 128 : sample / 127;
|
|
114
|
+
}
|
|
115
|
+
return output;
|
|
116
|
+
}
|
|
117
|
+
export function float32ToUint8Pcm(input) {
|
|
118
|
+
const output = new Uint8Array(input.length);
|
|
119
|
+
for (let i = 0; i < input.length; i++) {
|
|
120
|
+
const sample = clampFloatSample(input[i]);
|
|
121
|
+
output[i] = ((sample < 0 ? sample * 128 : sample * 127) | 0) + 128;
|
|
122
|
+
}
|
|
123
|
+
return output;
|
|
124
|
+
}
|
|
125
|
+
// Int16 PCM <-> Float32 conversion
|
|
126
|
+
export function int16PcmToFloat32(input) {
|
|
127
|
+
const output = new Float32Array(input.length);
|
|
128
|
+
for (let i = 0; i < input.length; i++) {
|
|
129
|
+
const sample = input[i];
|
|
130
|
+
output[i] = sample < 0 ? sample / 32768 : sample / 32767;
|
|
131
|
+
}
|
|
132
|
+
return output;
|
|
133
|
+
}
|
|
134
|
+
export function float32ToInt16Pcm(input) {
|
|
135
|
+
const output = new Int16Array(input.length);
|
|
136
|
+
for (let i = 0; i < input.length; i++) {
|
|
137
|
+
const sample = clampFloatSample(input[i]);
|
|
138
|
+
output[i] = (sample < 0 ? sample * 32768 : sample * 32767) | 0;
|
|
139
|
+
}
|
|
140
|
+
return output;
|
|
141
|
+
}
|
|
142
|
+
// Int24 PCM <-> Float32 conversion (uses int32 for storage)
|
|
143
|
+
export function int24PcmToFloat32(input) {
|
|
144
|
+
const output = new Float32Array(input.length);
|
|
145
|
+
for (let i = 0; i < input.length; i++) {
|
|
146
|
+
const sample = input[i];
|
|
147
|
+
output[i] = sample < 0 ? sample / 8388608 : sample / 8388607;
|
|
148
|
+
}
|
|
149
|
+
return output;
|
|
150
|
+
}
|
|
151
|
+
export function float32ToInt24Pcm(input) {
|
|
152
|
+
const output = new Int32Array(input.length);
|
|
153
|
+
for (let i = 0; i < input.length; i++) {
|
|
154
|
+
const sample = clampFloatSample(input[i]);
|
|
155
|
+
output[i] = (sample < 0 ? sample * 8388608 : sample * 8388607) | 0;
|
|
156
|
+
}
|
|
157
|
+
return output;
|
|
158
|
+
}
|
|
159
|
+
// Int32 PCM <-> Float32 conversion
|
|
160
|
+
export function int32PcmToFloat32(input) {
|
|
161
|
+
const output = new Float32Array(input.length);
|
|
162
|
+
for (let i = 0; i < input.length; i++) {
|
|
163
|
+
const sample = input[i];
|
|
164
|
+
output[i] = sample < 0 ? sample / 2147483648 : sample / 2147483647;
|
|
165
|
+
}
|
|
166
|
+
return output;
|
|
167
|
+
}
|
|
168
|
+
export function float32ToInt32Pcm(input) {
|
|
169
|
+
const output = new Int32Array(input.length);
|
|
170
|
+
for (let i = 0; i < input.length; i++) {
|
|
171
|
+
const sample = clampFloatSample(input[i]);
|
|
172
|
+
output[i] = (sample < 0 ? sample * 2147483648 : sample * 2147483647) | 0;
|
|
173
|
+
}
|
|
174
|
+
return output;
|
|
175
|
+
}
|
|
176
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
177
|
+
// Channel interleaving
|
|
178
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
179
|
+
export function interleaveChannels(channels) {
|
|
180
|
+
const channelCount = channels.length;
|
|
181
|
+
if (channelCount == 0) {
|
|
182
|
+
throw new Error("Empty channel array received");
|
|
183
|
+
}
|
|
184
|
+
if (channelCount == 1) {
|
|
185
|
+
return channels[0];
|
|
186
|
+
}
|
|
187
|
+
const sampleCount = channels[0].length;
|
|
188
|
+
const result = new Float32Array(sampleCount * channelCount);
|
|
189
|
+
let writeIndex = 0;
|
|
190
|
+
for (let i = 0; i < sampleCount; i++) {
|
|
191
|
+
for (let c = 0; c < channelCount; c++) {
|
|
192
|
+
result[writeIndex] = channels[c][i];
|
|
193
|
+
writeIndex += 1;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return result;
|
|
197
|
+
}
|
|
198
|
+
export function deInterleaveChannels(interleavedChannels, channelCount) {
|
|
199
|
+
if (channelCount == 0) {
|
|
200
|
+
throw new Error("0 channel count received");
|
|
201
|
+
}
|
|
202
|
+
if (channelCount == 1) {
|
|
203
|
+
return [interleavedChannels];
|
|
204
|
+
}
|
|
205
|
+
if (interleavedChannels.length % channelCount != 0) {
|
|
206
|
+
throw new Error(`Size of interleaved channels (${interleaveChannels.length}) is not a multiple of channel count (${channelCount})`);
|
|
207
|
+
}
|
|
208
|
+
const sampleCount = interleavedChannels.length / channelCount;
|
|
209
|
+
const channels = [];
|
|
210
|
+
for (let i = 0; i < channelCount; i++) {
|
|
211
|
+
channels.push(new Float32Array(sampleCount));
|
|
212
|
+
}
|
|
213
|
+
let readIndex = 0;
|
|
214
|
+
for (let i = 0; i < sampleCount; i++) {
|
|
215
|
+
for (let c = 0; c < channelCount; c++) {
|
|
216
|
+
channels[c][i] = interleavedChannels[readIndex];
|
|
217
|
+
readIndex += 1;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return channels;
|
|
221
|
+
}
|
|
222
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
223
|
+
// Utilities
|
|
224
|
+
/////////////////////////////////////////////////////////////////////////////////////////////
|
|
225
|
+
export function clampFloatSample(floatSample) {
|
|
226
|
+
return Math.max(-1, Math.min(floatSample, 1));
|
|
227
|
+
}
|
|
228
|
+
//# sourceMappingURL=AudioBufferConversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AudioBufferConversion.js","sourceRoot":"","sources":["../../src/audio/AudioBufferConversion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RawAudio } from "./AudioUtilities.js";
|
|
2
|
+
import { Timeline } from '../utilities/Timeline.js';
|
|
3
|
+
export declare function playAudioFileWithTimelineFile(audioFilename: string, timelineFileName: string, transcriptFileName?: string): Promise<void>;
|
|
4
|
+
export declare function playAudioWithTimeline(rawAudio: RawAudio, timeline: Timeline, transcript?: string): Promise<void>;
|
|
5
|
+
export declare function playAudioWithTimelinePhones(rawAudio: RawAudio, timeline: Timeline): Promise<void>;
|
|
6
|
+
export declare function playAudioPairWithTimelineInterleaved(rawAudio1: RawAudio, rawAudio2: RawAudio, timeline1: Timeline, timeline2: Timeline): Promise<void>;
|
|
7
|
+
export declare function playAudioSamples(rawAudio: RawAudio, onTimePosition?: (timePosition: number) => void, microFadeInOut?: boolean): Promise<void>;
|
|
8
|
+
export declare function playAudioSamples_Speaker(rawAudio: RawAudio, onTimePosition?: (timePosition: number) => void, microFadeInOut?: boolean): Promise<void>;
|
|
9
|
+
export declare const charactersToWriteAhead: string[];
|