usernameeReal commited on
Commit
371efe7
·
verified ·
1 Parent(s): 59e618d

Upload worker-BKr81zhZ.js

Browse files
Files changed (1) hide show
  1. assets/worker-BKr81zhZ.js +1 -1
assets/worker-BKr81zhZ.js CHANGED
@@ -2775,4 +2775,4 @@ ${Q}${de}`+ne.repeat(x)+`${Q}`,N}function b(x,P,R,Q){return`${P}${Q}`+R.repeat(x
2775
  === ALL AVAILABLE SPEAKERS ===`),console.log(`Total: ${v} speakers across ${Object.keys(ga).length} languages`),console.log("-".repeat(50));for(const[s,_]of Object.entries(ga)){console.log(`
2776
  ${s.toUpperCase()} (${Object.keys(_).length} speakers):`);for(const A of Object.keys(_))console.log(` - ${A}`)}console.log(`
2777
  To use a speaker: load_default_speaker(name)
2778
- `)}load_default_speaker(v){const s=this.language.toLowerCase().trim();if(!(ga[s]&&ga[s][v]))throw new Error(`Speaker ${v} not found for language ${s}`);return ga[s][v]}prepare_prompt(v,s=null){const _=this.prompt_processor.get_completion_prompt(v,this.language,s);return this.prompt_processor.tokenizer(_,{add_special_tokens:!1})}async generate({text:v,speaker:s=null,temperature:_=.1,repetition_penalty:A=1.1,max_length:j=4096,additional_gen_config:ee={}}){const U=this.prepare_prompt(v,s);this.config.verbose&&(console.log(`Input tokens: ${U.input_ids.dims}`),console.log("Generating audio..."));const T=(await this.model.generate({max_length:j,temperature:_,repetition_penalty:A,do_sample:!0,...ee,...U})).slice(U.input_ids.dims[1]),M=await this.get_audio(T);return this.config.verbose&&console.log("Audio generation completed"),new e0({audio:M,sr:this.audio_codec.sr})}};const dp=Object.freeze({.2:{tokenizer:"onnx-community/OuteTTS-0.2-500M",sizes:["500M"],links:["https://huggingface.co/onnx-community/OuteTTS-0.2-500M"],languages:["en","ja","ko","zh"],hf_interface:t0,max_seq_length:4096}});function r0(Me){if(!(Me in dp))throw new Error(`Unsupported model version '${Me}'. Supported versions are: ${Object.keys(dp)}`);return dp[Me]}function s0(Me,v){if(!Me)throw new Error("max_seq_length must be specified.");if(Me>v)throw new Error(`Requested max_seq_length (${Me}) exceeds the maximum supported length (${v}).`)}async function n0({model_version:Me,cfg:v}){const s=r0(Me);v.tokenizer_path=v.tokenizer_path||s.tokenizer;const _=s.languages;if(!_.includes(v.language))throw new Error(`Language '${v.language}' is not supported by model version '${Me}'. Supported languages are: ${_}`);v.languages=_;const A=s.hf_interface;return s0(v.max_seq_length,s.max_seq_length),await A.load(v)}let om=!1;try{const Me=await navigator.gpu.requestAdapter();if(!Me)throw new Error("WebGPU is not supported (no adapter found)");om=Me.features.has("shader-f16"),self.postMessage({status:"feature-success"})}catch(Me){throw self.postMessage({status:"feature-error",data:Me.toString()}),Me}const o0=new Z_({model_path:"onnx-community/OuteTTS-0.2-500M",language:"en",dtype:om?"q4f16":"q4"}),Zh=await n0({model_version:"0.2",cfg:o0});self.postMessage({status:"ready"});self.addEventListener("message",async Me=>{const{text:v,speaker_id:s}=Me.data,_=s==="random"?null:Zh.load_default_speaker(s),j=(await Zh.generate({text:v,temperature:.1,repetition_penalty:1.1,max_length:4096,speaker:_})).to_wav("output.wav"),ee=new Blob([j],{type:"audio/wav"});self.postMessage({status:"complete",audio:URL.createObjectURL(ee),text:v})});
 
2775
  === ALL AVAILABLE SPEAKERS ===`),console.log(`Total: ${v} speakers across ${Object.keys(ga).length} languages`),console.log("-".repeat(50));for(const[s,_]of Object.entries(ga)){console.log(`
2776
  ${s.toUpperCase()} (${Object.keys(_).length} speakers):`);for(const A of Object.keys(_))console.log(` - ${A}`)}console.log(`
2777
  To use a speaker: load_default_speaker(name)
2778
+ `)}load_default_speaker(v){const s=this.language.toLowerCase().trim();if(!(ga[s]&&ga[s][v]))throw new Error(`Speaker ${v} not found for language ${s}`);return ga[s][v]}prepare_prompt(v,s=null){const _=this.prompt_processor.get_completion_prompt(v,this.language,s);return this.prompt_processor.tokenizer(_,{add_special_tokens:!1})}async generate({text:v,speaker:s=null,temperature:_=.1,repetition_penalty:A=1.1,max_length:j=4096,additional_gen_config:ee={}}){const U=this.prepare_prompt(v,s);this.config.verbose&&(console.log(`Input tokens: ${U.input_ids.dims}`),console.log("Generating audio..."));const T=(await this.model.generate({max_length:j,temperature:_,repetition_penalty:A,do_sample:!0,...ee,...U})).slice(U.input_ids.dims[1]),M=await this.get_audio(T);return this.config.verbose&&console.log("Audio generation completed"),new e0({audio:M,sr:this.audio_codec.sr})}};const dp=Object.freeze({.2:{tokenizer:"onnx-community/OuteTTS-0.2-500M",sizes:["500M"],links:["https://huggingface.co/onnx-community/OuteTTS-0.2-500M"],languages:["en","ja","ko","zh"],hf_interface:t0,max_seq_length:4096}});function r0(Me){if(!(Me in dp))throw new Error(`Unsupported model version '${Me}'. Supported versions are: ${Object.keys(dp)}`);return dp[Me]}function s0(Me,v){if(!Me)throw new Error("max_seq_length must be specified.");if(Me>v)throw new Error(`Requested max_seq_length (${Me}) exceeds the maximum supported length (${v}).`)}async function n0({model_version:Me,cfg:v}){const s=r0(Me);v.tokenizer_path=v.tokenizer_path||s.tokenizer;const _=s.languages;if(!_.includes(v.language))throw new Error(`Language '${v.language}' is not supported by model version '${Me}'. Supported languages are: ${_}`);v.languages=_;const A=s.hf_interface;return s0(v.max_seq_length,s.max_seq_length),await A.load(v)}let om=!1;try{const Me=await navigator.gpu.requestAdapter();if(!Me)throw new Error("WebGPU is not supported (no adapter found)");om=Me.features.has("shader-f16"),self.postMessage({status:"feature-success"})}catch(Me){throw self.postMessage({status:"feature-success"}),Me}const o0=new Z_({model_path:"onnx-community/OuteTTS-0.2-500M",language:"en",dtype:om?"q4f16":"q4"}),Zh=await n0({model_version:"0.2",cfg:o0});self.postMessage({status:"ready"});self.addEventListener("message",async Me=>{const{text:v,speaker_id:s}=Me.data,_=s==="random"?null:Zh.load_default_speaker(s),j=(await Zh.generate({text:v,temperature:.1,repetition_penalty:1.1,max_length:4096,speaker:_})).to_wav("output.wav"),ee=new Blob([j],{type:"audio/wav"});self.postMessage({status:"complete",audio:URL.createObjectURL(ee),text:v})});