ms180 commited on
Commit
cba4e2b
β€’
1 Parent(s): 4bd381c

Fixed bug in audio reload for tts demo

Browse files
modules/app.py CHANGED
@@ -16,9 +16,9 @@ async def index() -> FileResponse:
16
 
17
 
18
  @router.get("/api/tts/load_model")
19
- async def load_tts_model(model_name: str) -> JSONResponse:
20
  try:
21
- tts_model.load_model(model_name)
22
  return JSONResponse(status_code=200, content="Successfully loaded model")
23
  except Exception as e:
24
  return JSONResponse(status_code=500, content={"error": str(e)})
@@ -28,7 +28,7 @@ async def load_tts_model(model_name: str) -> JSONResponse:
28
  async def generate_tts(text: TextInput):
29
  try:
30
  tts_model.generate(text)
31
- return FileResponse(tts_model.output_path)
32
  except Exception as e:
33
  return JSONResponse(status_code=500, content={"error": str(e)})
34
 
 
16
 
17
 
18
  @router.get("/api/tts/load_model")
19
+ async def load_tts_model(model_name: str, fs: int) -> JSONResponse:
20
  try:
21
+ tts_model.load_model(model_name, fs)
22
  return JSONResponse(status_code=200, content="Successfully loaded model")
23
  except Exception as e:
24
  return JSONResponse(status_code=500, content={"error": str(e)})
 
28
  async def generate_tts(text: TextInput):
29
  try:
30
  tts_model.generate(text)
31
+ return JSONResponse(status_code=200)
32
  except Exception as e:
33
  return JSONResponse(status_code=500, content={"error": str(e)})
34
 
modules/tts_frontend.py CHANGED
@@ -13,10 +13,12 @@ class TTSModel:
13
  def __init__(self):
14
  self.model = None
15
  self.model_path = "models/tts"
16
- self.output_path = "template/sample.wav"
 
17
 
18
- def load_model(self, model_path):
19
  self.model = Text2Speech(model_dir=f"{self.model_path}/{model_path}")
 
20
 
21
  def generate(self, text_input: TextInput):
22
  if self.model is None:
@@ -26,5 +28,5 @@ class TTSModel:
26
  os.remove(self.output_path)
27
 
28
  audio = self.model(text_input.text)["wav"]
29
- sf.write(self.output_path, audio, 16000)
30
  return
 
13
  def __init__(self):
14
  self.model = None
15
  self.model_path = "models/tts"
16
+ self.output_path = "static/sample.wav"
17
+ self.fs = None
18
 
19
+ def load_model(self, model_path, fs):
20
  self.model = Text2Speech(model_dir=f"{self.model_path}/{model_path}")
21
+ self.fs = fs
22
 
23
  def generate(self, text_input: TextInput):
24
  if self.model is None:
 
28
  os.remove(self.output_path)
29
 
30
  audio = self.model(text_input.text)["wav"]
31
+ sf.write(self.output_path, audio, self.fs)
32
  return
static/css/{app.6300f8e8.css β†’ app.234bfaaa.css} RENAMED
@@ -1 +1 @@
1
- @import url(https://fonts.googleapis.com/css?family=Nunito:400,700);.btn-super-parant[data-v-002ef1c4]{display:flex;justify-content:center;align-items:center;position:absolute;bottom:55px;width:100%;height:60px;z-index:-1}input[data-v-002ef1c4]{display:none}.btn-containrt_foreground[data-v-002ef1c4]{direction:ltr;display:flex;align-items:flex-end;width:80%;height:60px;background:var(--color-foreground)}.btn-containrt[data-v-002ef1c4]{direction:ltr;display:flex;justify-content:space-around;background-color:#fff;width:100%;height:55px}.active-label[data-v-002ef1c4]{width:45px;height:45px;border-radius:40%;display:flex;justify-content:center;align-items:center;transition:all .3s ease;top:10px;background:#fff!important;color:rgba(0,0,0,.54)}.btn-title[data-v-002ef1c4]{color:rgba(0,0,0,.6);font-size:12px;text-align:center}.btn-badge[data-v-002ef1c4]{width:18px;height:18px;display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:25px;border-radius:50%;font-size:12px;color:#fff;background:var(--color-badge)}.checked .active-label[data-v-002ef1c4]{transform:translateY(-10px);border-color:#d1d9e6!important;border-radius:15px;box-shadow:2px 2px 4px #b8b9be,-2px -2px 4px #fff}.checked .btn-title[data-v-002ef1c4]{animation:fadein-002ef1c4 .2s;top:50px}.unchecked .active-label[data-v-002ef1c4]{background:transparent}.unchecked .btn-title[data-v-002ef1c4]{visibility:hidden}@media screen and (min-width:576px){.labels[data-v-002ef1c4]{cursor:pointer}}@keyframes fadein-002ef1c4{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ar-records{height:auto!important}.ar-records__record--selected{border:1px solid #1f1e33!important}body{font-family:Nunito,sans-serif}.player-wrapper{align-items:center;background-color:#fff;background-image:linear-gradient(90deg,#fff,#e0e0e0);display:flex;justify-content:center}.player{background-color:#fff;border:1px solid #e0e0e0;border-radius:5px;color:#404040;display:inline-block;width:100%}.player-controls{display:flex}.player-controls>div{border-right:1px solid #e0e0e0}.player-controls>div:last-child{border-right:none}.player-controls>div a{color:#404040;display:block;text-decoration:none}.player-progress{background-color:#e0e0e0;cursor:pointer;height:50%;min-width:200px;position:relative}.player-progress .player-seeker{background-color:#404040;bottom:0;left:0;position:absolute;top:0}.player-time{display:flex;justify-content:space-between}.player-time .player-time-current{font-weight:700;padding-left:5px}.player-time .player-time-total{opacity:.5;padding-right:5px}.v-alert{position:fixed;left:50%;bottom:50px;transform:translate(-50%,-50%);margin:0 auto}.body{color:#1f1e33}
 
1
+ @import url(https://fonts.googleapis.com/css?family=Nunito:400,700);.btn-super-parant[data-v-002ef1c4]{display:flex;justify-content:center;align-items:center;position:absolute;bottom:55px;width:100%;height:60px;z-index:-1}input[data-v-002ef1c4]{display:none}.btn-containrt_foreground[data-v-002ef1c4]{direction:ltr;display:flex;align-items:flex-end;width:80%;height:60px;background:var(--color-foreground)}.btn-containrt[data-v-002ef1c4]{direction:ltr;display:flex;justify-content:space-around;background-color:#fff;width:100%;height:55px}.active-label[data-v-002ef1c4]{width:45px;height:45px;border-radius:40%;display:flex;justify-content:center;align-items:center;transition:all .3s ease;top:10px;background:#fff!important;color:rgba(0,0,0,.54)}.btn-title[data-v-002ef1c4]{color:rgba(0,0,0,.6);font-size:12px;text-align:center}.btn-badge[data-v-002ef1c4]{width:18px;height:18px;display:flex;align-items:center;justify-content:center;position:absolute;top:0;left:25px;border-radius:50%;font-size:12px;color:#fff;background:var(--color-badge)}.checked .active-label[data-v-002ef1c4]{transform:translateY(-10px);border-color:#d1d9e6!important;border-radius:15px;box-shadow:2px 2px 4px #b8b9be,-2px -2px 4px #fff}.checked .btn-title[data-v-002ef1c4]{animation:fadein-002ef1c4 .2s;top:50px}.unchecked .active-label[data-v-002ef1c4]{background:transparent}.unchecked .btn-title[data-v-002ef1c4]{visibility:hidden}@media screen and (min-width:576px){.labels[data-v-002ef1c4]{cursor:pointer}}@keyframes fadein-002ef1c4{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ar-records{height:auto!important}.ar-records__record--selected{border:1px solid #1f1e33!important}body{font-family:Nunito,sans-serif}.player-wrapper{align-items:center;background-color:#fff;background-image:linear-gradient(90deg,#fff,#e0e0e0);display:flex;justify-content:center}.player{background-color:#fff;border:1px solid #e0e0e0;border-radius:5px;color:#404040;display:inline-block;width:100%}.player-controls{display:flex}.player-controls>div{border-right:1px solid #e0e0e0}.player-controls>div:last-child{border-right:none}.player-controls>div a{color:#404040;display:block;text-decoration:none}.player-progress{background-color:#e0e0e0;cursor:pointer;height:50%;min-width:200px;position:relative}.player-progress .player-seeker{background-color:#404040;bottom:0;left:0;position:absolute;top:0}.player-time{display:flex;justify-content:space-between}.player-time .player-time-current{font-weight:700;padding-left:5px}.player-time .player-time-total{opacity:.5;padding-right:5px}.v-alert{position:fixed;left:50%;bottom:50px;transform:translate(-50%,-50%);margin:0 auto}
static/js/{app.2c53b14e.js β†’ app.025f3c10.js} RENAMED
@@ -1,2 +1,2 @@
1
- (function(){"use strict";var t={7264:function(t,e,s){var a=s(144),o=s(1096),i=s(3551),l=function(){var t=this,e=t._self._c;return e(o.Z,[e(i.Z,[e("DemoHeader"),e("EspnetOnnxDemo"),e("DemoFooter")],1)],1)},r=[],n=s(3058),d=s(4437),c=s(6035),h=s(5294),u=s(5234),p=function(){var t=this,e=t._self._c;return e(c.Z,[e(n.Z,{staticClass:"mt-4",attrs:{flat:""}},[e(h.Z,[e(d.Z,{attrs:{cols:"3"}},[e("a",{attrs:{href:"https://github.com/espnet/espnet"}},[e("img",{attrs:{src:"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png",width:"100%"}})])]),e(u.Z),e(d.Z,{staticStyle:{"text-align":"right"},attrs:{cols:"1"}},[e("a",{attrs:{href:"https://github.com/espnet/espnet_onnx"}},[e("img",{attrs:{src:"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png",width:"100%"}})])])],1)],1)],1)},m=[],g={name:"DemoHeader",data:()=>({hoverFlag:!1}),methods:{hover(){this.hoverFlag=!0},out(){this.hoverFlag=!1}}},v=g,f=s(3736),y=(0,f.Z)(v,p,m,!1,null,null,null),_=y.exports,b=s(2537),Z=function(){var t=this,e=t._self._c;return e(c.Z,[e(b.Z,{attrs:{padless:"",absolute:""}},[e(h.Z,{attrs:{justify:"center","no-gutters":""}},[e(d.Z,{staticClass:"py-4 text-center",attrs:{color:"#BFBFBF",cols:"12"}},[t._v(" "+t._s((new Date).getFullYear())+" β€” "),e("strong",[t._v("ESPnet-ONNX")])])],1)],1)],1)},S=[],x={name:"DemoFooter"},w=x,C=(0,f.Z)(w,Z,S,!1,null,null,null),T=C.exports,A=s(5223),F=s(9868),k=function(){var t=this,e=t._self._c;return e(c.Z,[e(n.Z,{attrs:{flat:""}},[e(A.EB,[e("span",{staticClass:"text-h3"},[t._v("ESPnet-ONNX demo")])]),e(A.ZB,{staticClass:"body-1"},[t._v(" This is a demonstration space of ESPnet-ONNX project. Please select ASR or TTS to play! ")])],1),e("MenuBar",{staticClass:"mt-6 mx-auto",attrs:{options:t.options},on:{select:t.menuChanged},model:{value:t.selected,callback:function(e){t.selected=e},expression:"selected"}}),e(F.Z,{staticClass:"mb-10"},[e("div",{directives:[{name:"show",rawName:"v-show",value:"ASR"==t.menuSelected,expression:"menuSelected == 'ASR'"}]},[e("ASRDemoSheet",{staticClass:"mt-3"})],1),e("div",{directives:[{name:"show",rawName:"v-show",value:"TTS"==t.menuSelected,expression:"menuSelected == 'TTS'"}]},[e("TTSDemoSheet",{staticClass:"mt-3"})],1)])],1)},E=[],P=s(5057),L=function(){var t=this,e=t._self._c;return e("div",{staticClass:"btn-containrt_foreground",style:t.cssVariables},[e("div",{staticClass:"btn-containrt"},t._l(t.localOptions,(function(s,a){return e("div",{key:`menu-label-${a}`,class:{[`btn-item-${a} labels`]:!0,["checked"]:s.isActive,["unchecked"]:!s.isActive},on:{click:function(e){return t.handleLabelClick(s)}}},[e("div",{staticClass:"active-label"},[s.badge?e("div",{staticClass:"btn-badge"},[t._v(" "+t._s(s.badge)+" ")]):t._e(),t.hasSlot("icon")?t._t("icon",null,{props:s}):[e(P.Z,[t._v(" "+t._s(s.icon)+" ")])]],2),e("div",{staticClass:"btn-title"},[t.hasSlot("title")?t._t("title",null,{props:s}):[t._v(" "+t._s(s.title)+" ")]],2)])})),0)])},O=[],R={model:{prop:"value",event:"update"},props:{value:{default:null},options:{type:Array,default:()=>[]},badgeColor:{type:String,default:"#FBC02D"}},data:()=>({localOptions:[],showable:!1}),created(){this.localOptions=this.options.map((t=>({...t,isActive:this.isActive(t)})))},computed:{cssVariables(){return{"--color-badge":this.badgeColor}},hasActiveClass(){return this.localOptions.some((t=>t.isActive))}},methods:{handleLabelClick(t){this.showable||this.toggleClass(),this.updateValue(t.id),this.$emit("select",t.title)},updateValue(t){this.localOptions.forEach((e=>e.isActive=this.isActive(e,t))),this.$emit("update",t)},toggleClass(){this.showable=!this.showable},isActive(t,e=this.value){return t.id==e||(t.childs||[]).find((t=>t.id==e))},hasSlot(t){return this.$slots[t]||this.$scopedSlots[t]}}},D=R,M=(0,f.Z)(D,L,O,!1,null,"002ef1c4",null),j=M.exports,I=s(4635),N=s(1828),B=s(5731),V=s(4397),$=s(5617),X=function(){var t=this,e=t._self._c;return e(c.Z,[e(F.Z,{staticClass:"mt-6 mx-3"},[e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Select model ")])]),e(d.Z,{attrs:{cols:"7"}},[e(B.Z,{attrs:{items:t.models,error:t.selectError,dense:""},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.loadingFlag},on:{click:t.loadModel}},[t._v(" Load ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("div",{staticClass:"my-auto"},[e("span",{staticClass:"text-h6"},[t._v(" Upload audio ")])])]),e(d.Z,{attrs:{cols:"7"}},[e("audio-recorder",{staticStyle:{"box-shadow":"none",background:"none"},attrs:{attempts:3,time:1,"sample-rate":"16000","show-download-button":!1,"show-upload-button":!1,format:"mp3","select-record":t.selectRecord,"after-recording":t.afterRecord}})],1),e(d.Z,{staticClass:"d-flex flex-column",attrs:{cols:"2"}},[e(u.Z),e(N.Z,{staticClass:"mt-auto",attrs:{outlined:"",width:"100%",loading:t.ASRLoadingFlag},on:{click:t.runModel}},[t._v(" Run ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Text ")])]),e(d.Z,{attrs:{cols:"9"}},[e($.Z,{attrs:{dense:"",readonly:""},model:{value:t.text,callback:function(e){t.text=e},expression:"text"}})],1)],1),e(h.Z,{staticClass:"mt-6"},[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Model Detail ")])]),e(d.Z,{attrs:{cols:"9"}},[e(n.Z,{attrs:{flat:""}},[e(V.Z,[e("tbody",t._l(t.modelInfo[t.model],(function(s){return e("tr",{key:s.name},[e("td",[t._v(t._s(s.name))]),e("td",[t._v(t._s(s.value))])])})),0)])],1)],1)],1)],1),e(I.Z,{attrs:{value:t.showAlert,type:t.barType,"colored-border":"",border:"top",elevation:"2"}},[t._v(" "+t._s(t.message))])],1)},H=[],G=s(6154),z={name:"ASRDemoSheet",data:()=>({model:"",models:["pyf98/librispeech_conformer_hop_length160"],modelInfo:{"pyf98/librispeech_conformer_hop_length160":[{name:"url",value:"https://huggingface.co/pyf98/librispeech_conformer_hop_length160"},{name:"encoder",value:"Conformer"},{name:"decoder",value:"Transformer"}]},loadingFlag:!1,text:"",ASRLoadingFlag:!1,showAlert:!1,message:"",barType:"success",selectError:!1,audioFile:"",audioError:!1,soundSrc:[],record:null}),methods:{hide_alert:function(){window.setInterval((()=>{this.showAlert=!1}),3e3)},loadModel(){if(this.loadingFlag=!0,""===this.model)return this.showAlert=!0,this.selectError=!0,this.message="Please select a model",this.loadingFlag=!1,this.barType="error",void this.hide_alert();this.selectError=!1,G.Z.get("/api/asr/load_model",{params:{model_name:this.model}}).then((()=>{this.message="Successfully loaded model",this.barType="success",this.loadingFlag=!1,this.alert=!0,this.modelLoaded=!0,this.showAlert=!0,this.hide_alert()})).catch((t=>{this.message="Error happened while loading model",this.loadingFlag=!1,this.alert=!0,this.barType="error",this.showAlert=!0,this.hide_alert(),console.log(t)}))},runModel(){if(this.ASRLoadingFlag=!0,!this.record)return this.showAlert=!0,this.audioError=!0,this.message="Please record at least one audio.",this.ASRLoadingFlag=!1,this.barType="error",void this.hide_alert();let t=new FormData;t.append("audio",this.record.blob,`${this.record.filename}.mp3`),G.Z.post("/api/asr/recognize",t,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{this.message="Recognition finished.",this.barType="success",this.ASRLoadingFlag=!1,this.alert=!0,this.text=t.data.text,this.hide_alert()})).catch((t=>{this.message="Error happened while executing model",this.ASRLoadingFlag=!1,this.alert=!0,this.barType="error",this.hide_alert(),console.log(t)}))},selectRecord(t){this.record=t},afterRecord(t){this.record=t}}},U=z,W=(0,f.Z)(U,X,H,!1,null,null,null),Y=W.exports,q=function(){var t=this,e=t._self._c;return e(c.Z,[e(F.Z,{staticClass:"mt-6 mx-3"},[e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Select model ")])]),e(d.Z,{attrs:{cols:"7"}},[e(B.Z,{attrs:{items:t.models,dense:"",error:t.selectError},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.loadingFlag},on:{click:t.loadModel}},[t._v(" Load ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Write text ")])]),e(d.Z,{attrs:{cols:"7"}},[e($.Z,{attrs:{dense:"",clearable:"",rows:"2",counter:"",error:t.textError,rules:t.textLengthRules},model:{value:t.text,callback:function(e){t.text=e},expression:"text"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.TTSLoadingFlag},on:{click:t.runModel}},[t._v(" Generate ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Generated audio ")])]),e(d.Z,{attrs:{cols:"9"}},[e("AudioPlayer",{ref:"audioPlayer",attrs:{audioPath:t.audioPath}})],1)],1),e(h.Z,{staticClass:"mt-6"},[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Model Detail ")])]),e(d.Z,{attrs:{cols:"9"}},[e(n.Z,{attrs:{flat:""}},[e(V.Z,[e("tbody",t._l(t.modelInfo[t.model],(function(s){return e("tr",{key:s.name},[e("td",[t._v(t._s(s.name))]),e("td",[t._v(t._s(s.value))])])})),0)])],1)],1)],1)],1),e(I.Z,{attrs:{value:t.showAlert,type:t.barType,"colored-border":"",border:"top",elevation:"2"}},[t._v(" "+t._s(t.message))])],1)},J=[],K=s(2059),Q=function(){var t=this,e=t._self._c;return e("div",{staticClass:"player"},[e(h.Z,{staticClass:"player-controls ma-0"},[e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"1",title:"Stop"}},[e(N.Z,{attrs:{icon:""},on:{click:t.stop}},[e(P.Z,[t._v("mdi-stop")])],1)],1),e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"1",title:"Play/Pause"}},[e(N.Z,{attrs:{icon:""},on:{click:function(e){t.playing=!t.playing}}},[e(P.Z,{directives:[{name:"show",rawName:"v-show",value:!t.playing,expression:"!playing"}]},[t._v("mdi-play")]),e(P.Z,{directives:[{name:"show",rawName:"v-show",value:t.playing,expression:"playing"}]},[t._v("mdi-pause")])],1)],1),e(d.Z,{staticClass:"pa-0",attrs:{cols:"6"}},[e("div",{staticClass:"player-progress",attrs:{title:"Time played : Total time"},on:{click:t.seek}},[e("div",{staticClass:"player-seeker",style:{width:this.percentComplete+"%"}})]),e("div",{staticClass:"player-time"},[e("div",{staticClass:"player-time-current"},[t._v(t._s(t.currentTime))]),e("div",{staticClass:"player-time-total"},[t._v(t._s(t.durationTime))])])]),e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"4"}},[e(K.Z,{attrs:{"prepend-icon":"mdi-volume-high",max:"100",width:"100%",dense:"","hide-details":"auto"},model:{value:t.volume,callback:function(e){t.volume=e},expression:"volume"}})],1)],1)],1)},tt=[];const et=t=>{let e=new Date(1e3*t).toISOString().substr(11,8);return 0===e.indexOf("00:")?e.substr(3):e};var st={name:"ASRDemoSheet",props:{file:{type:String,default:null},autoPlay:{type:Boolean,default:!1},loop:{type:Boolean,default:!1},audioPath:{type:String,default:null}},data:()=>({audio:void 0,currentSeconds:0,durationSeconds:0,innerLoop:!1,loaded:!1,playing:!1,previousVolume:35,showVolume:!1,volume:100}),computed:{currentTime(){return et(this.currentSeconds)},durationTime(){return et(this.durationSeconds)},percentComplete(){return parseInt(this.currentSeconds/this.durationSeconds*100)},muted(){return this.volume/100===0}},watch:{playing(t){if(t)return this.audio.play();this.audio.pause()},volume(){this.showVolume=!1,this.audio.volume=this.volume/100}},methods:{download(){this.stop(),window.open(this.file,"download")},load(){if(this.audio.readyState>=2)return this.loaded=!0,this.durationSeconds=parseInt(this.audio.duration),this.playing=this.autoPlay;throw new Error("Failed to load sound file.")},mute(){if(this.muted)return this.volume=this.previousVolume;this.previousVolume=this.volume,this.volume=0},seek(t){if(!this.playing||"SPAN"===t.target.tagName)return;const e=t.target.getBoundingClientRect(),s=(t.clientX-e.left)/e.width;this.audio.currentTime=parseInt(this.audio.duration*s)},stop(){this.playing=!1,this.audio.currentTime=0},update(){this.currentSeconds=parseInt(this.audio.currentTime)},reload(){this.audio=new Audio("/demo/sample.wav"),this.audio.addEventListener("timeupdate",this.update),this.audio.addEventListener("loadeddata",this.load),this.audio.addEventListener("pause",(()=>{this.playing=!1})),this.audio.addEventListener("play",(()=>{this.playing=!0})),this.playing=!1,this.durationSeconds=parseInt(this.audio.duration)}},created(){this.innerLoop=this.loop}},at=st,ot=(0,f.Z)(at,Q,tt,!1,null,null,null),it=ot.exports,lt={name:"ASRDemoSheet",components:{AudioPlayer:it},data:()=>({model:"",models:["kan-bayashi/ljspeech_vits"],modelInfo:{"kan-bayashi/ljspeech_vits":[{name:"url",value:"https://huggingface.co/espnet/kan-bayashi_ljspeech_vits"},{name:"model",value:"VITS"}]},counter:{max:20},loadingFlag:!1,text:"",TTSLoadingFlag:!1,textLengthRules:[t=>t.length<=100||"Maximum 100 characters allowed"],showAlert:!1,message:"",modelLoaded:!1,audioPath:"",textError:!1,barType:"success",selectError:!1}),methods:{hide_alert:function(){window.setInterval((()=>{this.showAlert=!1}),3e3)},loadModel:function(){if(this.loadingFlag=!0,""===this.model)return this.showAlert=!0,this.selectError=!0,this.message="Please select a model",this.loadingFlag=!1,this.barType="error",void this.hide_alert();this.selectError=!1,G.Z.get("/api/tts/load_model",{params:{model_name:this.model}}).then((()=>{this.message="Successfully loaded model",this.barType="success",this.loadingFlag=!1,this.alert=!0,this.modelLoaded=!0,this.showAlert=!0,this.hide_alert()})).catch((t=>{this.message="Error happened while loading model",this.loadingFlag=!1,this.alert=!0,this.barType="error",this.showAlert=!0,this.hide_alert(),console.log(t)}))},runModel:function(){return this.TTSLoadingFlag=!0,this.modelLoaded?this.text?(this.selectError=!1,void G.Z.post("/api/tts/generate",{text:this.text}).then((t=>{this.message="Successfully generated audio",this.barType="success",this.TTSLoadingFlag=!1,this.alert=!0,this.audioPath=t.data.audio_path,this.hide_alert(),this.$refs.audioPlayer.reload()})).catch((t=>{this.message="Error happened while loading model",this.TTSLoadingFlag=!1,this.alert=!0,this.barType="error",this.hide_alert(),console.log(t)}))):(this.showAlert=!0,this.textError=!0,this.message="Please write text.",this.TTSLoadingFlag=!1,this.barType="error",void this.hide_alert()):(this.showAlert=!0,this.selectError=!0,this.message="Please load a model before generating audio.",this.TTSLoadingFlag=!1,this.barType="error",void this.hide_alert())}}},rt=lt,nt=(0,f.Z)(rt,q,J,!1,null,null,null),dt=nt.exports,ct={name:"EspnetOnnxDemo",components:{MenuBar:j,ASRDemoSheet:Y,TTSDemoSheet:dt},data:()=>({selected:1,options:[{id:1,icon:"mdi-microphone-message",title:"ASR"},{id:2,icon:"mdi-speaker-message",title:"TTS"}],menuSelected:"ASR"}),methods:{menuChanged:function(t){this.menuSelected!=t&&(this.menuSelected=t)}}},ht=ct,ut=(0,f.Z)(ht,k,E,!1,null,null,null),pt=ut.exports,mt={name:"App",components:{DemoHeader:_,DemoFooter:T,EspnetOnnxDemo:pt}},gt=mt,vt=(0,f.Z)(gt,l,r,!1,null,null,null),ft=vt.exports,yt=s(2250);a.ZP.use(yt.Z);var _t=new yt.Z({}),bt=s(579),Zt=s.n(bt);a.ZP.use(Zt()),a.ZP.config.productionTip=!1,new a.ZP({vuetify:_t,render:t=>t(ft)}).$mount("#app")}},e={};function s(a){var o=e[a];if(void 0!==o)return o.exports;var i=e[a]={exports:{}};return t[a](i,i.exports,s),i.exports}s.m=t,function(){var t=[];s.O=function(e,a,o,i){if(!a){var l=1/0;for(c=0;c<t.length;c++){a=t[c][0],o=t[c][1],i=t[c][2];for(var r=!0,n=0;n<a.length;n++)(!1&i||l>=i)&&Object.keys(s.O).every((function(t){return s.O[t](a[n])}))?a.splice(n--,1):(r=!1,i<l&&(l=i));if(r){t.splice(c--,1);var d=o();void 0!==d&&(e=d)}}return e}i=i||0;for(var c=t.length;c>0&&t[c-1][2]>i;c--)t[c]=t[c-1];t[c]=[a,o,i]}}(),function(){s.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return s.d(e,{a:e}),e}}(),function(){s.d=function(t,e){for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){s.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}}(),function(){var t={143:0};s.O.j=function(e){return 0===t[e]};var e=function(e,a){var o,i,l=a[0],r=a[1],n=a[2],d=0;if(l.some((function(e){return 0!==t[e]}))){for(o in r)s.o(r,o)&&(s.m[o]=r[o]);if(n)var c=n(s)}for(e&&e(a);d<l.length;d++)i=l[d],s.o(t,i)&&t[i]&&t[i][0](),t[i]=0;return s.O(c)},a=self["webpackChunkespnet_onnx_demo"]=self["webpackChunkespnet_onnx_demo"]||[];a.forEach(e.bind(null,0)),a.push=e.bind(null,a.push.bind(a))}();var a=s.O(void 0,[998],(function(){return s(7264)}));a=s.O(a)})();
2
- //# sourceMappingURL=app.2c53b14e.js.map
 
1
+ (function(){"use strict";var t={1019:function(t,e,s){var a=s(144),o=s(1096),i=s(3551),l=function(){var t=this,e=t._self._c;return e(o.Z,[e(i.Z,[e("DemoHeader"),e("EspnetOnnxDemo"),e("DemoFooter")],1)],1)},r=[],n=s(3058),d=s(4437),c=s(6035),h=s(5294),u=s(5234),m=function(){var t=this,e=t._self._c;return e(c.Z,[e(n.Z,{staticClass:"mt-4",attrs:{flat:""}},[e(h.Z,[e(d.Z,{attrs:{cols:"3"}},[e("a",{attrs:{href:"https://github.com/espnet/espnet"}},[e("img",{attrs:{src:"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png",width:"100%"}})])]),e(u.Z),e(d.Z,{staticStyle:{"text-align":"right"},attrs:{cols:"1"}},[e("a",{attrs:{href:"https://github.com/espnet/espnet_onnx"}},[e("img",{attrs:{src:"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png",width:"100%"}})])])],1)],1)],1)},p=[],g={name:"DemoHeader",data:()=>({hoverFlag:!1}),methods:{hover(){this.hoverFlag=!0},out(){this.hoverFlag=!1}}},v=g,f=s(1001),y=(0,f.Z)(v,m,p,!1,null,null,null),_=y.exports,b=s(2537),Z=function(){var t=this,e=t._self._c;return e(c.Z,[e(b.Z,{attrs:{padless:"",absolute:""}},[e(h.Z,{attrs:{justify:"center","no-gutters":""}},[e(d.Z,{staticClass:"py-4 text-center",attrs:{color:"#BFBFBF",cols:"12"}},[t._v(" "+t._s((new Date).getFullYear())+" β€” "),e("strong",[t._v("ESPnet-ONNX")])])],1)],1)],1)},S=[],x={name:"DemoFooter"},w=x,C=(0,f.Z)(w,Z,S,!1,null,null,null),T=C.exports,A=s(5223),F=s(9868),k=function(){var t=this,e=t._self._c;return e(c.Z,[e(n.Z,{attrs:{flat:""}},[e(A.EB,[e("span",{staticClass:"text-h3"},[t._v("ESPnet-ONNX demo")])]),e(A.ZB,{staticClass:"body-1"},[t._v(" This is a demonstration space of ESPnet-ONNX project. Please select ASR or TTS to play! ")])],1),e("MenuBar",{staticClass:"mt-6 mx-auto",attrs:{options:t.options},on:{select:t.menuChanged},model:{value:t.selected,callback:function(e){t.selected=e},expression:"selected"}}),e(F.Z,{staticClass:"mb-10"},[e("div",{directives:[{name:"show",rawName:"v-show",value:"ASR"==t.menuSelected,expression:"menuSelected == 'ASR'"}]},[e("ASRDemoSheet",{staticClass:"mt-3"})],1),e("div",{directives:[{name:"show",rawName:"v-show",value:"TTS"==t.menuSelected,expression:"menuSelected == 'TTS'"}]},[e("TTSDemoSheet",{staticClass:"mt-3"})],1)])],1)},E=[],L=s(5057),O=function(){var t=this,e=t._self._c;return e("div",{staticClass:"btn-containrt_foreground",style:t.cssVariables},[e("div",{staticClass:"btn-containrt"},t._l(t.localOptions,(function(s,a){return e("div",{key:`menu-label-${a}`,class:{[`btn-item-${a} labels`]:!0,["checked"]:s.isActive,["unchecked"]:!s.isActive},on:{click:function(e){return t.handleLabelClick(s)}}},[e("div",{staticClass:"active-label"},[s.badge?e("div",{staticClass:"btn-badge"},[t._v(" "+t._s(s.badge)+" ")]):t._e(),t.hasSlot("icon")?t._t("icon",null,{props:s}):[e(L.Z,[t._v(" "+t._s(s.icon)+" ")])]],2),e("div",{staticClass:"btn-title"},[t.hasSlot("title")?t._t("title",null,{props:s}):[t._v(" "+t._s(s.title)+" ")]],2)])})),0)])},P=[],R={model:{prop:"value",event:"update"},props:{value:{default:null},options:{type:Array,default:()=>[]},badgeColor:{type:String,default:"#FBC02D"}},data:()=>({localOptions:[],showable:!1}),created(){this.localOptions=this.options.map((t=>({...t,isActive:this.isActive(t)})))},computed:{cssVariables(){return{"--color-badge":this.badgeColor}},hasActiveClass(){return this.localOptions.some((t=>t.isActive))}},methods:{handleLabelClick(t){this.showable||this.toggleClass(),this.updateValue(t.id),this.$emit("select",t.title)},updateValue(t){this.localOptions.forEach((e=>e.isActive=this.isActive(e,t))),this.$emit("update",t)},toggleClass(){this.showable=!this.showable},isActive(t,e=this.value){return t.id==e||(t.childs||[]).find((t=>t.id==e))},hasSlot(t){return this.$slots[t]||this.$scopedSlots[t]}}},D=R,M=(0,f.Z)(D,O,P,!1,null,"002ef1c4",null),I=M.exports,j=s(4635),N=s(1828),B=s(5731),V=s(4397),$=s(5617),X=function(){var t=this,e=t._self._c;return e(c.Z,[e(F.Z,{staticClass:"mt-6 mx-3"},[e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Select model ")])]),e(d.Z,{attrs:{cols:"7"}},[e(B.Z,{attrs:{items:t.models,error:t.selectError,dense:""},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.loadingFlag},on:{click:t.loadModel}},[t._v(" Load ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("div",{staticClass:"my-auto"},[e("span",{staticClass:"text-h6"},[t._v(" Upload audio ")])])]),e(d.Z,{attrs:{cols:"7"}},[e("audio-recorder",{staticStyle:{"box-shadow":"none",background:"none"},attrs:{attempts:3,time:1,"sample-rate":"16000","show-download-button":!1,"show-upload-button":!1,format:"mp3","select-record":t.selectRecord,"after-recording":t.afterRecord}})],1),e(d.Z,{staticClass:"d-flex flex-column",attrs:{cols:"2"}},[e(u.Z),e(N.Z,{staticClass:"mt-auto",attrs:{outlined:"",width:"100%",loading:t.ASRLoadingFlag},on:{click:t.runModel}},[t._v(" Run ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Text ")])]),e(d.Z,{attrs:{cols:"9"}},[e($.Z,{attrs:{dense:"",readonly:""},model:{value:t.text,callback:function(e){t.text=e},expression:"text"}})],1)],1),e(h.Z,{staticClass:"mt-6"},[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Model Detail ")])]),e(d.Z,{attrs:{cols:"9"}},[e(n.Z,{attrs:{flat:""}},[e(V.Z,[e("tbody",t._l(t.modelInfo[t.model],(function(s){return e("tr",{key:s.name},[e("td",[t._v(t._s(s.name))]),e("td",[t._v(t._s(s.value))])])})),0)])],1)],1)],1)],1),e(j.Z,{attrs:{value:t.showAlert,type:t.barType,"colored-border":"",border:"top",elevation:"2"}},[t._v(" "+t._s(t.message))])],1)},H=[],G=s(6154),z={name:"ASRDemoSheet",data:()=>({model:"",models:["pyf98/librispeech_conformer_hop_length160"],modelInfo:{"pyf98/librispeech_conformer_hop_length160":[{name:"url",value:"https://huggingface.co/pyf98/librispeech_conformer_hop_length160"},{name:"encoder",value:"Conformer"},{name:"decoder",value:"Transformer"}]},loadingFlag:!1,text:"",ASRLoadingFlag:!1,showAlert:!1,message:"",barType:"success",selectError:!1,audioFile:"",audioError:!1,soundSrc:[],record:null}),methods:{hide_alert:function(){window.setInterval((()=>{this.showAlert=!1}),3e3)},loadModel(){if(this.loadingFlag=!0,""===this.model)return this.showAlert=!0,this.selectError=!0,this.message="Please select a model",this.loadingFlag=!1,this.barType="error",void this.hide_alert();this.selectError=!1,G.Z.get("/api/asr/load_model",{params:{model_name:this.model}}).then((()=>{this.message="Successfully loaded model",this.barType="success",this.loadingFlag=!1,this.alert=!0,this.modelLoaded=!0,this.showAlert=!0,this.hide_alert()})).catch((t=>{this.message="Error happened while loading model",this.loadingFlag=!1,this.alert=!0,this.barType="error",this.showAlert=!0,this.hide_alert(),console.log(t)}))},runModel(){if(this.ASRLoadingFlag=!0,!this.record)return this.showAlert=!0,this.audioError=!0,this.message="Please record at least one audio.",this.ASRLoadingFlag=!1,this.barType="error",void this.hide_alert();let t=new FormData;t.append("audio",this.record.blob,`${this.record.filename}.mp3`),G.Z.post("/api/asr/recognize",t,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{this.message="Recognition finished.",this.barType="success",this.ASRLoadingFlag=!1,this.alert=!0,this.text=t.data.text,this.hide_alert()})).catch((t=>{this.message="Error happened while executing model",this.ASRLoadingFlag=!1,this.alert=!0,this.barType="error",this.hide_alert(),console.log(t)}))},selectRecord(t){this.record=t},afterRecord(t){this.record=t}}},U=z,W=(0,f.Z)(U,X,H,!1,null,null,null),Y=W.exports,q=function(){var t=this,e=t._self._c;return e(c.Z,[e(F.Z,{staticClass:"mt-6 mx-3"},[e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Select model ")])]),e(d.Z,{attrs:{cols:"7"}},[e(B.Z,{attrs:{items:t.models,dense:"",error:t.selectError},model:{value:t.model,callback:function(e){t.model=e},expression:"model"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.loadingFlag},on:{click:t.loadModel}},[t._v(" Load ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Write text ")])]),e(d.Z,{attrs:{cols:"7"}},[e($.Z,{attrs:{dense:"",clearable:"",rows:"2",counter:"",error:t.textError,rules:t.textLengthRules},model:{value:t.text,callback:function(e){t.text=e},expression:"text"}})],1),e(d.Z,{attrs:{cols:"2"}},[e(N.Z,{attrs:{outlined:"",width:"100%",loading:t.TTSLoadingFlag},on:{click:t.runModel}},[t._v(" Generate ")])],1)],1),e(h.Z,[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Generated audio ")])]),e(d.Z,{attrs:{cols:"9"}},[e("AudioPlayer",{ref:"audioPlayer"})],1)],1),e(h.Z,{staticClass:"mt-6"},[e(d.Z,{staticClass:"py-auto",staticStyle:{"text-align":"center"},attrs:{cols:"3",height:"100%"}},[e("span",{staticClass:"text-h6"},[t._v(" Model Detail ")])]),e(d.Z,{attrs:{cols:"9"}},[e(n.Z,{attrs:{flat:""}},[e(V.Z,[e("tbody",t._l(t.modelInfo[t.model],(function(s){return e("tr",{key:s.name},[e("td",[t._v(t._s(s.name))]),e("td",[t._v(t._s(s.value))])])})),0)])],1)],1)],1)],1),e(j.Z,{attrs:{value:t.showAlert,type:t.barType,"colored-border":"",border:"top",elevation:"2"}},[t._v(" "+t._s(t.message))])],1)},J=[],K=s(2059),Q=function(){var t=this,e=t._self._c;return e("div",{staticClass:"player"},[e(h.Z,{staticClass:"player-controls ma-0"},[e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"1",title:"Stop"}},[e(N.Z,{attrs:{icon:""},on:{click:t.stop}},[e(L.Z,[t._v("mdi-stop")])],1)],1),e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"1",title:"Play/Pause"}},[e(N.Z,{attrs:{icon:""},on:{click:function(e){t.playing=!t.playing}}},[e(L.Z,{directives:[{name:"show",rawName:"v-show",value:!t.playing,expression:"!playing"}]},[t._v("mdi-play")]),e(L.Z,{directives:[{name:"show",rawName:"v-show",value:t.playing,expression:"playing"}]},[t._v("mdi-pause")])],1)],1),e(d.Z,{staticClass:"pa-0",attrs:{cols:"6"}},[e("div",{staticClass:"player-progress",attrs:{title:"Time played : Total time"},on:{click:t.seek}},[e("div",{staticClass:"player-seeker",style:{width:this.percentComplete+"%"}})]),e("div",{staticClass:"player-time"},[e("div",{staticClass:"player-time-current"},[t._v(t._s(t.currentTime))]),e("div",{staticClass:"player-time-total"},[t._v(t._s(t.durationTime))])])]),e(d.Z,{staticClass:"pa-2",staticStyle:{"text-align":"center"},attrs:{cols:"4"}},[e(K.Z,{attrs:{"prepend-icon":"mdi-volume-high",max:"100",width:"100%",dense:"","hide-details":"auto"},model:{value:t.volume,callback:function(e){t.volume=e},expression:"volume"}})],1)],1)],1)},tt=[];const et=t=>{let e=new Date(1e3*t).toISOString().substr(11,8);return 0===e.indexOf("00:")?e.substr(3):e};var st={name:"ASRDemoSheet",props:{file:{type:String,default:null},autoPlay:{type:Boolean,default:!1},loop:{type:Boolean,default:!1}},data:()=>({audio:void 0,currentSeconds:0,durationSeconds:0,innerLoop:!1,loaded:!1,playing:!1,previousVolume:35,showVolume:!1,volume:100}),computed:{currentTime(){return et(this.currentSeconds)},durationTime(){return et(this.durationSeconds)},percentComplete(){return parseInt(this.currentSeconds/this.durationSeconds*100)},muted(){return this.volume/100===0}},watch:{playing(t){if(t)return this.audio.play();this.audio.pause()},volume(){this.showVolume=!1,this.audio.volume=this.volume/100}},methods:{download(){this.stop(),window.open(this.file,"download")},load(){if(this.audio.readyState>=2)return this.loaded=!0,this.durationSeconds=parseInt(this.audio.duration),this.playing=this.autoPlay;throw new Error("Failed to load sound file.")},mute(){if(this.muted)return this.volume=this.previousVolume;this.previousVolume=this.volume,this.volume=0},seek(t){if(!this.playing||"SPAN"===t.target.tagName)return;const e=t.target.getBoundingClientRect(),s=(t.clientX-e.left)/e.width;this.audio.currentTime=parseInt(this.audio.duration*s)},stop(){this.playing=!1,this.audio.currentTime=0},update(){this.currentSeconds=parseInt(this.audio.currentTime)},reload(){this.audio=new Audio("/static/sample.wav"),this.audio.addEventListener("timeupdate",this.update),this.audio.addEventListener("loadeddata",this.load),this.audio.addEventListener("pause",(()=>{this.playing=!1})),this.audio.addEventListener("play",(()=>{this.playing=!0})),this.playing=!1,this.durationSeconds=parseInt(this.audio.duration)}},created(){this.innerLoop=this.loop}},at=st,ot=(0,f.Z)(at,Q,tt,!1,null,null,null),it=ot.exports,lt={name:"ASRDemoSheet",components:{AudioPlayer:it},data:()=>({model:"",models:["kan-bayashi/ljspeech_vits"],modelInfo:{"kan-bayashi/ljspeech_vits":[{name:"url",value:"https://huggingface.co/espnet/kan-bayashi_ljspeech_vits"},{name:"model",value:"VITS"},{name:"sample_rate",value:22050}]},counter:{max:20},loadingFlag:!1,text:"",TTSLoadingFlag:!1,textLengthRules:[t=>t.length<=100||"Maximum 100 characters allowed"],showAlert:!1,message:"",modelLoaded:!1,textError:!1,barType:"success",selectError:!1}),methods:{hide_alert:function(){window.setInterval((()=>{this.showAlert=!1}),3e3)},loadModel:function(){if(this.loadingFlag=!0,""===this.model)return this.showAlert=!0,this.selectError=!0,this.message="Please select a model",this.loadingFlag=!1,this.barType="error",void this.hide_alert();this.selectError=!1,G.Z.get("/api/tts/load_model",{params:{model_name:this.model,fs:this.modelInfo[this.model][2].value}}).then((()=>{this.message="Successfully loaded model",this.barType="success",this.loadingFlag=!1,this.alert=!0,this.modelLoaded=!0,this.showAlert=!0,this.hide_alert()})).catch((t=>{this.message="Error happened while loading model",this.loadingFlag=!1,this.alert=!0,this.barType="error",this.showAlert=!0,this.hide_alert(),console.log(t)}))},runModel:function(){return this.TTSLoadingFlag=!0,this.modelLoaded?this.text?(this.selectError=!1,void G.Z.post("/api/tts/generate",{text:this.text}).then((()=>{this.message="Successfully generated audio",this.barType="success",this.TTSLoadingFlag=!1,this.alert=!0,this.hide_alert(),this.$refs.audioPlayer.reload()})).catch((t=>{this.message="Error happened while loading model",this.TTSLoadingFlag=!1,this.alert=!0,this.barType="error",this.hide_alert(),console.log(t)}))):(this.showAlert=!0,this.textError=!0,this.message="Please write text.",this.TTSLoadingFlag=!1,this.barType="error",void this.hide_alert()):(this.showAlert=!0,this.selectError=!0,this.message="Please load a model before generating audio.",this.TTSLoadingFlag=!1,this.barType="error",void this.hide_alert())}}},rt=lt,nt=(0,f.Z)(rt,q,J,!1,null,null,null),dt=nt.exports,ct={name:"EspnetOnnxDemo",components:{MenuBar:I,ASRDemoSheet:Y,TTSDemoSheet:dt},data:()=>({selected:1,options:[{id:1,icon:"mdi-microphone-message",title:"ASR"},{id:2,icon:"mdi-speaker-message",title:"TTS"}],menuSelected:"ASR"}),methods:{menuChanged:function(t){this.menuSelected!=t&&(this.menuSelected=t)}}},ht=ct,ut=(0,f.Z)(ht,k,E,!1,null,null,null),mt=ut.exports,pt={name:"App",components:{DemoHeader:_,DemoFooter:T,EspnetOnnxDemo:mt}},gt=pt,vt=(0,f.Z)(gt,l,r,!1,null,null,null),ft=vt.exports,yt=s(2250);a.ZP.use(yt.Z);var _t=new yt.Z({}),bt=s(579),Zt=s.n(bt);a.ZP.use(Zt()),a.ZP.config.productionTip=!1,new a.ZP({vuetify:_t,render:t=>t(ft)}).$mount("#app")}},e={};function s(a){var o=e[a];if(void 0!==o)return o.exports;var i=e[a]={exports:{}};return t[a](i,i.exports,s),i.exports}s.m=t,function(){var t=[];s.O=function(e,a,o,i){if(!a){var l=1/0;for(c=0;c<t.length;c++){a=t[c][0],o=t[c][1],i=t[c][2];for(var r=!0,n=0;n<a.length;n++)(!1&i||l>=i)&&Object.keys(s.O).every((function(t){return s.O[t](a[n])}))?a.splice(n--,1):(r=!1,i<l&&(l=i));if(r){t.splice(c--,1);var d=o();void 0!==d&&(e=d)}}return e}i=i||0;for(var c=t.length;c>0&&t[c-1][2]>i;c--)t[c]=t[c-1];t[c]=[a,o,i]}}(),function(){s.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return s.d(e,{a:e}),e}}(),function(){s.d=function(t,e){for(var a in e)s.o(e,a)&&!s.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})}}(),function(){s.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){s.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){s.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}}(),function(){var t={143:0};s.O.j=function(e){return 0===t[e]};var e=function(e,a){var o,i,l=a[0],r=a[1],n=a[2],d=0;if(l.some((function(e){return 0!==t[e]}))){for(o in r)s.o(r,o)&&(s.m[o]=r[o]);if(n)var c=n(s)}for(e&&e(a);d<l.length;d++)i=l[d],s.o(t,i)&&t[i]&&t[i][0](),t[i]=0;return s.O(c)},a=self["webpackChunkespnet_onnx_demo"]=self["webpackChunkespnet_onnx_demo"]||[];a.forEach(e.bind(null,0)),a.push=e.bind(null,a.push.bind(a))}();var a=s.O(void 0,[998],(function(){return s(1019)}));a=s.O(a)})();
2
+ //# sourceMappingURL=app.025f3c10.js.map
static/js/app.025f3c10.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"file":"js/app.025f3c10.js","mappings":"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","sources":["webpack://espnet_onnx_demo/./src/App.vue","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue","webpack://espnet_onnx_demo/src/components/DemoHeader.vue","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue?6c1c","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue?bb6d","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue","webpack://espnet_onnx_demo/src/components/DemoFooter.vue","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue?fd59","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue?db02","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue","webpack://espnet_onnx_demo/./src/components/MenuBar.vue","webpack://espnet_onnx_demo/src/components/MenuBar.vue","webpack://espnet_onnx_demo/./src/components/MenuBar.vue?aaa0","webpack://espnet_onnx_demo/./src/components/MenuBar.vue?fa57","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue","webpack://espnet_onnx_demo/src/components/ASRDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue?d13f","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue?a49e","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue","webpack://espnet_onnx_demo/src/components/AudioPalyer.vue","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue?69d5","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue?7e6e","webpack://espnet_onnx_demo/src/components/TTSDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue?87d7","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue?7384","webpack://espnet_onnx_demo/src/components/EspnetOnnxDemo.vue","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue?d93f","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue?6c9d","webpack://espnet_onnx_demo/src/App.vue","webpack://espnet_onnx_demo/./src/App.vue?7e46","webpack://espnet_onnx_demo/./src/App.vue?0e40","webpack://espnet_onnx_demo/./src/plugins/vuetify.js","webpack://espnet_onnx_demo/./src/main.js","webpack://espnet_onnx_demo/webpack/bootstrap","webpack://espnet_onnx_demo/webpack/runtime/chunk loaded","webpack://espnet_onnx_demo/webpack/runtime/compat get default export","webpack://espnet_onnx_demo/webpack/runtime/define property getters","webpack://espnet_onnx_demo/webpack/runtime/global","webpack://espnet_onnx_demo/webpack/runtime/hasOwnProperty shorthand","webpack://espnet_onnx_demo/webpack/runtime/make namespace object","webpack://espnet_onnx_demo/webpack/runtime/jsonp chunk loading","webpack://espnet_onnx_demo/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('v-main',[_c('DemoHeader'),_c('EspnetOnnxDemo'),_c('DemoFooter')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-card',{staticClass:\"mt-4\",attrs:{\"flat\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('a',{attrs:{\"href\":\"https://github.com/espnet/espnet\"}},[_c('img',{attrs:{\"src\":\"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png\",\"width\":\"100%\"}})])]),_c('v-spacer'),_c('v-col',{staticStyle:{\"text-align\":\"right\"},attrs:{\"cols\":\"1\"}},[_c('a',{attrs:{\"href\":\"https://github.com/espnet/espnet_onnx\"}},[_c('img',{attrs:{\"src\":\"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png\",\"width\":\"100%\"}})])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-card flat class=\"mt-4\">\n <v-row>\n <v-col cols=\"3\">\n <a href=\"https://github.com/espnet/espnet\">\n <img src=\"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png\" width=\"100%\" />\n </a>\n </v-col>\n <v-spacer></v-spacer>\n <v-col cols=\"1\" style=\"text-align: right\">\n <a href=\"https://github.com/espnet/espnet_onnx\">\n <img src=\"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png\" width=\"100%\" />\n </a>\n </v-col>\n </v-row>\n </v-card>\n </v-container>\n</template>\n\n<script>\nexport default {\n name: \"DemoHeader\",\n data: () => ({\n hoverFlag: false,\n }),\n methods: {\n hover() {\n this.hoverFlag = true;\n },\n out() {\n this.hoverFlag = false;\n },\n },\n};\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DemoHeader.vue?vue&type=template&id=1bf56fb9&\"\nimport script from \"./DemoHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./DemoHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-footer',{attrs:{\"padless\":\"\",\"absolute\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"py-4 text-center\",attrs:{\"color\":\"#BFBFBF\",\"cols\":\"12\"}},[_vm._v(\" \"+_vm._s(new Date().getFullYear())+\" β€” \"),_c('strong',[_vm._v(\"ESPnet-ONNX\")])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-footer padless absolute>\n <v-row justify=\"center\" no-gutters>\n <v-col class=\"py-4 text-center\" color=\"#BFBFBF\" cols=\"12\">\n {{ new Date().getFullYear() }} β€” <strong>ESPnet-ONNX</strong>\n </v-col>\n </v-row>\n </v-footer>\n </v-container>\n</template>\n<script>\n\nexport default {\n name: 'DemoFooter',\n}\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DemoFooter.vue?vue&type=template&id=60669fe3&\"\nimport script from \"./DemoFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./DemoFooter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_c('span',{staticClass:\"text-h3\"},[_vm._v(\"ESPnet-ONNX demo\")])]),_c('v-card-text',{staticClass:\"body-1\"},[_vm._v(\" This is a demonstration space of ESPnet-ONNX project. Please select ASR or TTS to play! \")])],1),_c('MenuBar',{staticClass:\"mt-6 mx-auto\",attrs:{\"options\":_vm.options},on:{\"select\":_vm.menuChanged},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('v-sheet',{staticClass:\"mb-10\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuSelected == 'ASR'),expression:\"menuSelected == 'ASR'\"}]},[_c('ASRDemoSheet',{staticClass:\"mt-3\"})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuSelected == 'TTS'),expression:\"menuSelected == 'TTS'\"}]},[_c('TTSDemoSheet',{staticClass:\"mt-3\"})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"btn-containrt_foreground\",style:(_vm.cssVariables)},[_c('div',{staticClass:\"btn-containrt\"},_vm._l((_vm.localOptions),function(button,index){return _c('div',{key:`menu-label-${index}`,class:{\n [`btn-item-${index} labels`]: true,\n ['checked']: button.isActive,\n ['unchecked']: !button.isActive,\n },on:{\"click\":function($event){return _vm.handleLabelClick(button)}}},[_c('div',{staticClass:\"active-label\"},[(button.badge)?_c('div',{staticClass:\"btn-badge\"},[_vm._v(\" \"+_vm._s(button.badge)+\" \")]):_vm._e(),(_vm.hasSlot('icon'))?_vm._t(\"icon\",null,{\"props\":button}):[_c('v-icon',[_vm._v(\" \"+_vm._s(button.icon)+\" \")])]],2),_c('div',{staticClass:\"btn-title\"},[(_vm.hasSlot('title'))?_vm._t(\"title\",null,{\"props\":button}):[_vm._v(\" \"+_vm._s(button.title)+\" \")]],2)])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"btn-containrt_foreground\" :style=\"cssVariables\">\n <div class=\"btn-containrt\">\n <div\n v-for=\"(button, index) in localOptions\"\n :key=\"`menu-label-${index}`\"\n :class=\"{\n [`btn-item-${index} labels`]: true,\n ['checked']: button.isActive,\n ['unchecked']: !button.isActive,\n }\"\n @click=\"handleLabelClick(button)\"\n >\n <div class=\"active-label\">\n <div class=\"btn-badge\" v-if=\"button.badge\">\n {{ button.badge }}\n </div>\n <slot name=\"icon\" v-if=\"hasSlot('icon')\" :props=\"button\" />\n <template v-else>\n <v-icon> {{ button.icon }} </v-icon>\n </template>\n </div>\n\n <div class=\"btn-title\">\n <slot name=\"title\" v-if=\"hasSlot('title')\" :props=\"button\" />\n <template v-else>\n {{ button.title }}\n </template>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n model: {\n prop: \"value\",\n event: \"update\",\n },\n props: {\n value: {\n default: null,\n },\n options: {\n type: Array,\n default: () => [],\n },\n badgeColor: {\n type: String,\n default: \"#FBC02D\",\n },\n },\n data: () => ({\n localOptions: [],\n showable: false,\n }),\n created() {\n this.localOptions = this.options.map((option) => ({\n ...option,\n isActive: this.isActive(option),\n }));\n },\n computed: {\n cssVariables() {\n return {\n \"--color-badge\": this.badgeColor,\n };\n },\n hasActiveClass() {\n return this.localOptions.some((option) => option.isActive);\n },\n },\n methods: {\n handleLabelClick(button) {\n if (!this.showable) {\n this.toggleClass();\n }\n this.updateValue(button.id);\n this.$emit(\"select\", button.title);\n },\n updateValue(value) {\n this.localOptions.forEach(\n (option) => (option.isActive = this.isActive(option, value))\n );\n this.$emit(\"update\", value);\n },\n toggleClass() {\n this.showable = !this.showable;\n },\n isActive(button, value = this.value) {\n return (\n button.id == value ||\n (button.childs || []).find((child) => child.id == value)\n );\n },\n hasSlot(slotName) {\n return this.$slots[slotName] || this.$scopedSlots[slotName];\n },\n },\n};\n</script>\n\n<style scoped>\n.btn-super-parant {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n bottom: 55px;\n width: 100%;\n height: 60px;\n z-index: -1;\n}\ninput {\n display: none;\n}\n.btn-containrt_foreground {\n direction: ltr;\n display: flex;\n align-items: flex-end;\n width: 80%;\n height: 60px;\n background: var(--color-foreground);\n}\n.btn-containrt {\n direction: ltr;\n display: flex;\n justify-content: space-around;\n background-color: #fff;\n width: 100%;\n height: 55px;\n}\n.active-label {\n width: 45px;\n height: 45px;\n border-radius: 40%;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all 300ms ease;\n top: 10px;\n background: #fff !important;\n color: rgba(0, 0, 0, 0.54);\n}\n.btn-title {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n text-align: center;\n}\n.btn-badge {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0px;\n left: 25px;\n border-radius: 50%;\n font-size: 12px;\n color: #fff;\n background: var(--color-badge);\n}\n.checked .active-label {\n transform: translateY(-10px);\n border-color: #d1d9e6 !important;\n border-radius: 15px;\n box-shadow: 2px 2px 4px #b8b9be, -2px -2px 4px #ffffff;\n}\n.checked .btn-title {\n animation: fadein 200ms;\n top: 50px;\n}\n.unchecked .active-label {\n background: transparent;\n}\n.unchecked .btn-title {\n visibility: hidden;\n}\n@media screen and (min-width: 576px) {\n .labels {\n cursor: pointer;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0px);\n }\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MenuBar.vue?vue&type=template&id=002ef1c4&scoped=true&\"\nimport script from \"./MenuBar.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuBar.vue?vue&type=style&index=0&id=002ef1c4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"002ef1c4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-sheet',{staticClass:\"mt-6 mx-3\"},[_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Select model \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-select',{attrs:{\"items\":_vm.models,\"error\":_vm.selectError,\"dense\":\"\"},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.loadingFlag},on:{\"click\":_vm.loadModel}},[_vm._v(\" Load \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('div',{staticClass:\"my-auto\"},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Upload audio \")])])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('audio-recorder',{staticStyle:{\"box-shadow\":\"none\",\"background\":\"none\"},attrs:{\"attempts\":3,\"time\":1,\"sample-rate\":\"16000\",\"show-download-button\":false,\"show-upload-button\":false,\"format\":\"mp3\",\"select-record\":_vm.selectRecord,\"after-recording\":_vm.afterRecord}})],1),_c('v-col',{staticClass:\"d-flex flex-column\",attrs:{\"cols\":\"2\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"mt-auto\",attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.ASRLoadingFlag},on:{\"click\":_vm.runModel}},[_vm._v(\" Run \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Text \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-textarea',{attrs:{\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1)],1),_c('v-row',{staticClass:\"mt-6\"},[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Model Detail \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.modelInfo[_vm.model]),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.value))])])}),0)])],1)],1)],1)],1),_c('v-alert',{attrs:{\"value\":_vm.showAlert,\"type\":_vm.barType,\"colored-border\":\"\",\"border\":\"top\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.message))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-sheet class=\"mt-6 mx-3\">\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Select model </span>\n </v-col>\n <v-col cols=\"7\">\n <v-select\n v-model=\"model\"\n :items=\"models\"\n :error=\"selectError\"\n dense\n ></v-select>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"loadModel\"\n outlined\n width=\"100%\"\n :loading=\"loadingFlag\"\n >\n Load\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <div class=\"my-auto\">\n <span class=\"text-h6\"> Upload audio </span>\n </div></v-col\n >\n <v-col cols=\"7\">\n <audio-recorder\n :attempts=\"3\"\n :time=\"1\"\n sample-rate=\"16000\"\n :show-download-button=\"false\"\n :show-upload-button=\"false\"\n format=\"mp3\"\n :select-record=\"selectRecord\"\n :after-recording=\"afterRecord\"\n style=\"box-shadow: none; background: none\"\n />\n </v-col>\n <v-col cols=\"2\" class=\"d-flex flex-column\">\n <v-spacer />\n <v-btn\n @click=\"runModel\"\n outlined\n width=\"100%\"\n :loading=\"ASRLoadingFlag\"\n class=\"mt-auto\"\n >\n Run\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Text </span></v-col\n >\n <v-col cols=\"9\">\n <v-textarea v-model=\"text\" dense readonly></v-textarea>\n </v-col>\n </v-row>\n <v-row class=\"mt-6\">\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Model Detail </span>\n <!-- <v-spacer></v-spacer> -->\n </v-col>\n <v-col cols=\"9\">\n <v-card flat>\n <v-simple-table>\n <tbody>\n <tr v-for=\"item in modelInfo[model]\" :key=\"item.name\">\n <td>{{ item.name }}</td>\n <td>{{ item.value }}</td>\n </tr>\n </tbody>\n </v-simple-table>\n </v-card>\n </v-col>\n </v-row>\n </v-sheet>\n <v-alert\n :value=\"showAlert\"\n :type=\"barType\"\n colored-border\n border=\"top\"\n elevation=\"2\"\n >\n {{ message }}</v-alert\n >\n </v-container>\n</template>\n<script>\nimport axios from \"axios\";\n\nexport default {\n name: \"ASRDemoSheet\",\n data: () => ({\n model: \"\",\n models: [\"pyf98/librispeech_conformer_hop_length160\"],\n modelInfo: {\n \"pyf98/librispeech_conformer_hop_length160\": [\n {\n name: \"url\",\n value:\n \"https://huggingface.co/pyf98/librispeech_conformer_hop_length160\",\n },\n {\n name: \"encoder\",\n value: \"Conformer\",\n },\n {\n name: \"decoder\",\n value: \"Transformer\",\n },\n ],\n },\n loadingFlag: false,\n text: \"\",\n ASRLoadingFlag: false,\n showAlert: false,\n message: \"\",\n barType: \"success\",\n selectError: false,\n audioFile: \"\",\n audioError: false,\n soundSrc: [],\n record: null,\n }),\n methods: {\n hide_alert: function () {\n // `event` is the native DOM event\n window.setInterval(() => {\n this.showAlert = false;\n }, 3000);\n },\n loadModel() {\n this.loadingFlag = true;\n if (this.model === \"\") {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please select a model\";\n this.loadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .get(\"/api/asr/load_model\", {\n params: {\n model_name: this.model,\n },\n })\n .then(() => {\n this.message = \"Successfully loaded model\";\n this.barType = \"success\";\n this.loadingFlag = false;\n this.alert = true;\n this.modelLoaded = true;\n this.showAlert = true;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.loadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.showAlert = true;\n this.hide_alert();\n console.log(error);\n });\n },\n runModel() {\n this.ASRLoadingFlag = true;\n // if (!this.modelLoaded) {\n // this.showAlert = true;\n // this.selectError = true;\n // this.message = \"Please load a model before generating audio.\";\n // this.ASRLoadingFlag = false;\n // this.barType = \"error\";\n // this.hide_alert();\n // return;\n // }\n if (!this.record) {\n this.showAlert = true;\n this.audioError = true;\n this.message = \"Please record at least one audio.\";\n this.ASRLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n\n let formData = new FormData();\n formData.append(\"audio\", this.record.blob, `${this.record.filename}.mp3`);\n\n axios\n .post(\"/api/asr/recognize\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n })\n .then((res) => {\n this.message = \"Recognition finished.\";\n this.barType = \"success\";\n this.ASRLoadingFlag = false;\n this.alert = true;\n this.text = res.data.text;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while executing model\";\n this.ASRLoadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.hide_alert();\n console.log(error);\n });\n },\n selectRecord(r) {\n this.record = r;\n },\n afterRecord(r) {\n this.record = r;\n },\n },\n};\n</script>\n<style>\n.ar-records {\n height: auto !important;\n}\n\n.ar-records__record--selected {\n border: 1px solid #1f1e33 !important;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ASRDemoSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ASRDemoSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ASRDemoSheet.vue?vue&type=template&id=5002468c&\"\nimport script from \"./ASRDemoSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./ASRDemoSheet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ASRDemoSheet.vue?vue&type=style&index=0&id=5002468c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-sheet',{staticClass:\"mt-6 mx-3\"},[_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Select model \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-select',{attrs:{\"items\":_vm.models,\"dense\":\"\",\"error\":_vm.selectError},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.loadingFlag},on:{\"click\":_vm.loadModel}},[_vm._v(\" Load \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Write text \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-textarea',{attrs:{\"dense\":\"\",\"clearable\":\"\",\"rows\":\"2\",\"counter\":\"\",\"error\":_vm.textError,\"rules\":_vm.textLengthRules},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.TTSLoadingFlag},on:{\"click\":_vm.runModel}},[_vm._v(\" Generate \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Generated audio \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('AudioPlayer',{ref:\"audioPlayer\"})],1)],1),_c('v-row',{staticClass:\"mt-6\"},[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Model Detail \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.modelInfo[_vm.model]),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.value))])])}),0)])],1)],1)],1)],1),_c('v-alert',{attrs:{\"value\":_vm.showAlert,\"type\":_vm.barType,\"colored-border\":\"\",\"border\":\"top\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.message))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"player\"},[_c('v-row',{staticClass:\"player-controls ma-0\"},[_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"1\",\"title\":\"Stop\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.stop}},[_c('v-icon',[_vm._v(\"mdi-stop\")])],1)],1),_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"1\",\"title\":\"Play/Pause\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.playing = !_vm.playing}}},[_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.playing),expression:\"!playing\"}]},[_vm._v(\"mdi-play\")]),_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.playing),expression:\"playing\"}]},[_vm._v(\"mdi-pause\")])],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"player-progress\",attrs:{\"title\":\"Time played : Total time\"},on:{\"click\":_vm.seek}},[_c('div',{staticClass:\"player-seeker\",style:({ width: this.percentComplete + '%' })})]),_c('div',{staticClass:\"player-time\"},[_c('div',{staticClass:\"player-time-current\"},[_vm._v(_vm._s(_vm.currentTime))]),_c('div',{staticClass:\"player-time-total\"},[_vm._v(_vm._s(_vm.durationTime))])])]),_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"4\"}},[_c('v-slider',{attrs:{\"prepend-icon\":\"mdi-volume-high\",\"max\":\"100\",\"width\":\"100%\",\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.volume),callback:function ($$v) {_vm.volume=$$v},expression:\"volume\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"player\">\n <v-row class=\"player-controls ma-0\">\n <v-col cols=\"1\" class=\"pa-2\" style=\"text-align: center;\" title=\"Stop\">\n <v-btn icon @click=\"stop\">\n <v-icon>mdi-stop</v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"1\" class=\"pa-2\" style=\"text-align: center;\" title=\"Play/Pause\">\n <v-btn icon @click=\"playing = !playing\" >\n <v-icon v-show=\"!playing\">mdi-play</v-icon>\n <v-icon v-show=\"playing\">mdi-pause</v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"6\" class=\"pa-0\" >\n <div\n v-on:click=\"seek\"\n class=\"player-progress\"\n title=\"Time played : Total time\"\n >\n <div\n :style=\"{ width: this.percentComplete + '%' }\"\n class=\"player-seeker\"\n ></div>\n </div>\n <div class=\"player-time\">\n <div class=\"player-time-current\">{{ currentTime }}</div>\n <div class=\"player-time-total\">{{ durationTime }}</div>\n </div>\n </v-col>\n <v-col cols=\"4\" style=\"text-align: center;\" class=\"pa-2\" >\n <v-slider\n v-model=\"volume\"\n prepend-icon=\"mdi-volume-high\"\n max=\"100\"\n width=\"100%\"\n dense\n hide-details=\"auto\"\n ></v-slider>\n </v-col>\n </v-row>\n </div>\n</template>\n<script>\nconst convertTimeHHMMSS = (val) => {\n\tlet hhmmss = new Date(val * 1000).toISOString().substr(11, 8);\n\n\treturn hhmmss.indexOf(\"00:\") === 0 ? hhmmss.substr(3) : hhmmss;\n};\n\nexport default {\n name: \"ASRDemoSheet\",\n props: {\n file: {\n type: String,\n default: null,\n },\n autoPlay: {\n type: Boolean,\n default: false,\n },\n loop: {\n type: Boolean,\n default: false,\n },\n },\n data: () => ({\n audio: undefined,\n currentSeconds: 0,\n durationSeconds: 0,\n innerLoop: false,\n loaded: false,\n playing: false,\n previousVolume: 35,\n showVolume: false,\n volume: 100,\n }),\n computed: {\n currentTime() {\n return convertTimeHHMMSS(this.currentSeconds);\n },\n durationTime() {\n return convertTimeHHMMSS(this.durationSeconds);\n },\n percentComplete() {\n return parseInt((this.currentSeconds / this.durationSeconds) * 100);\n },\n muted() {\n return this.volume / 100 === 0;\n },\n },\n watch: {\n playing(value) {\n if (value) {\n return this.audio.play();\n }\n this.audio.pause();\n },\n volume() {\n this.showVolume = false;\n this.audio.volume = this.volume / 100;\n },\n },\n methods: {\n download() {\n this.stop();\n window.open(this.file, \"download\");\n },\n load() {\n if (this.audio.readyState >= 2) {\n this.loaded = true;\n this.durationSeconds = parseInt(this.audio.duration);\n return (this.playing = this.autoPlay);\n }\n\n throw new Error(\"Failed to load sound file.\");\n },\n mute() {\n if (this.muted) {\n return (this.volume = this.previousVolume);\n }\n\n this.previousVolume = this.volume;\n this.volume = 0;\n },\n seek(e) {\n if (!this.playing || e.target.tagName === \"SPAN\") {\n return;\n }\n\n const el = e.target.getBoundingClientRect();\n const seekPos = (e.clientX - el.left) / el.width;\n\n this.audio.currentTime = parseInt(this.audio.duration * seekPos);\n },\n stop() {\n this.playing = false;\n this.audio.currentTime = 0;\n },\n update() {\n this.currentSeconds = parseInt(this.audio.currentTime);\n },\n reload() {\n this.audio = new Audio(\"/static/sample.wav\");\n this.audio.addEventListener(\"timeupdate\", this.update);\n this.audio.addEventListener(\"loadeddata\", this.load);\n this.audio.addEventListener(\"pause\", () => {\n this.playing = false;\n });\n this.audio.addEventListener(\"play\", () => {\n this.playing = true;\n });\n this.playing = false;\n this.durationSeconds = parseInt(this.audio.duration);\n }\n },\n created() {\n this.innerLoop = this.loop;\n },\n};\n</script>\n<style lang=\"scss\">\n@import url(\"https://fonts.googleapis.com/css?family=Nunito:400,700\");\n\nbody {\n font-family: \"Nunito\", sans-serif;\n}\n\n$player-bg: #fff;\n$player-border-color: darken($player-bg, 12%);\n$player-link-color: darken($player-bg, 75%);\n$player-progress-color: $player-border-color;\n$player-seeker-color: $player-link-color;\n$player-text-color: $player-link-color;\n\n.player-wrapper {\n align-items: center;\n background-color: $player-bg;\n background-image: linear-gradient(90deg, #fff 0, darken(#fff, 12%));\n display: flex;\n justify-content: center;\n // height: 100vh;\n}\n\n.player {\n background-color: $player-bg;\n border: 1px solid $player-border-color;\n border-radius: 5px;\n // box-shadow: 0 5px 8px rgba(0, 0, 0, 0.15);\n color: $player-text-color;\n display: inline-block;\n // line-height: 1.5625;\n width:100%;\n}\n\n.player-controls {\n display: flex;\n\n > div {\n border-right: 1px solid $player-border-color;\n\n &:last-child {\n border-right: none;\n }\n\n a {\n color: $player-link-color;\n display: block;\n // line-height: 0;\n // padding: 1em;\n text-decoration: none;\n }\n }\n}\n\n.player-progress {\n background-color: $player-progress-color;\n cursor: pointer;\n height: 50%;\n min-width: 200px;\n position: relative;\n\n .player-seeker {\n background-color: $player-seeker-color;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n }\n}\n\n.player-time {\n display: flex;\n // font-size: 18px;\n justify-content: space-between;\n\n .player-time-current {\n font-weight: 700;\n padding-left: 5px;\n }\n\n .player-time-total {\n opacity: 0.5;\n padding-right: 5px;\n }\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioPalyer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioPalyer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AudioPalyer.vue?vue&type=template&id=0bdac3d0&\"\nimport script from \"./AudioPalyer.vue?vue&type=script&lang=js&\"\nexport * from \"./AudioPalyer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AudioPalyer.vue?vue&type=style&index=0&id=0bdac3d0&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-container>\n <v-sheet class=\"mt-6 mx-3\">\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Select model </span>\n </v-col>\n <v-col cols=\"7\">\n <v-select\n v-model=\"model\"\n :items=\"models\"\n dense\n :error=\"selectError\"\n ></v-select>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"loadModel\"\n outlined\n width=\"100%\"\n :loading=\"loadingFlag\"\n >\n Load\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Write text </span></v-col\n >\n <v-col cols=\"7\">\n <v-textarea\n v-model=\"text\"\n dense\n clearable\n rows=\"2\"\n counter\n :error=\"textError\"\n v-bind:rules=\"textLengthRules\"\n >\n </v-textarea>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"runModel\"\n outlined\n width=\"100%\"\n :loading=\"TTSLoadingFlag\"\n >\n Generate\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Generated audio </span></v-col\n >\n <v-col cols=\"9\">\n <AudioPlayer ref=\"audioPlayer\"></AudioPlayer>\n </v-col>\n </v-row>\n <v-row class=\"mt-6\">\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Model Detail </span>\n <!-- <v-spacer></v-spacer> -->\n </v-col>\n <v-col cols=\"9\">\n <v-card flat>\n <v-simple-table>\n <tbody>\n <tr v-for=\"item in modelInfo[model]\" :key=\"item.name\">\n <td>{{ item.name }}</td>\n <td>{{ item.value }}</td>\n </tr>\n </tbody>\n </v-simple-table>\n </v-card>\n </v-col>\n </v-row>\n </v-sheet>\n <v-alert\n :value=\"showAlert\"\n :type=\"barType\"\n colored-border\n border=\"top\"\n elevation=\"2\"\n >\n {{ message }}</v-alert\n >\n </v-container>\n</template>\n<script>\nimport AudioPlayer from \"./AudioPalyer.vue\";\nimport axios from \"axios\";\n\nexport default {\n name: \"ASRDemoSheet\",\n components: {\n AudioPlayer,\n },\n data: () => ({\n model: \"\",\n models: [\"kan-bayashi/ljspeech_vits\"],\n modelInfo: {\n \"kan-bayashi/ljspeech_vits\": [\n {\n name: \"url\",\n value: \"https://huggingface.co/espnet/kan-bayashi_ljspeech_vits\",\n },\n {\n name: \"model\",\n value: \"VITS\",\n },\n {\n name: \"sample_rate\",\n value: 22050,\n },\n ],\n },\n counter: {\n max: 20,\n },\n loadingFlag: false,\n text: \"\",\n TTSLoadingFlag: false,\n textLengthRules: [\n (text) => text.length <= 100 || \"Maximum 100 characters allowed\",\n ],\n showAlert: false,\n message: \"\",\n modelLoaded: false,\n textError: false,\n barType: \"success\",\n selectError: false,\n }),\n methods: {\n hide_alert: function () {\n // `event` is the native DOM event\n window.setInterval(() => {\n this.showAlert = false;\n }, 3000);\n },\n loadModel: function () {\n this.loadingFlag = true;\n if (this.model === \"\") {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please select a model\";\n this.loadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .get(\"/api/tts/load_model\", {\n params: {\n model_name: this.model,\n fs: this.modelInfo[this.model][2].value,\n },\n })\n .then(() => {\n this.message = \"Successfully loaded model\";\n this.barType = \"success\";\n this.loadingFlag = false;\n this.alert = true;\n this.modelLoaded = true;\n this.showAlert = true;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.loadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.showAlert = true;\n this.hide_alert();\n console.log(error);\n });\n },\n runModel: function () {\n this.TTSLoadingFlag = true;\n if (!this.modelLoaded) {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please load a model before generating audio.\";\n this.TTSLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n if (!this.text) {\n this.showAlert = true;\n this.textError = true;\n this.message = \"Please write text.\";\n this.TTSLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .post(\"/api/tts/generate\", {\n text: this.text,\n })\n .then(() => {\n this.message = \"Successfully generated audio\";\n this.barType = \"success\";\n this.TTSLoadingFlag = false;\n this.alert = true;\n this.hide_alert();\n this.$refs.audioPlayer.reload();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.TTSLoadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.hide_alert();\n console.log(error);\n });\n },\n },\n};\n</script>\n<style>\n.v-alert {\n position: fixed;\n left: 50%;\n bottom: 50px;\n transform: translate(-50%, -50%);\n margin: 0 auto;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TTSDemoSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TTSDemoSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TTSDemoSheet.vue?vue&type=template&id=7bd18c8c&\"\nimport script from \"./TTSDemoSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./TTSDemoSheet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TTSDemoSheet.vue?vue&type=style&index=0&id=7bd18c8c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-container>\n <v-card flat>\n <v-card-title>\n <span class=\"text-h3\">ESPnet-ONNX demo</span>\n </v-card-title>\n <v-card-text class=\"body-1\">\n This is a demonstration space of ESPnet-ONNX project. Please select ASR\n or TTS to play!\n </v-card-text>\n </v-card>\n\n <MenuBar\n :options=\"options\"\n v-model=\"selected\"\n v-on:select=\"menuChanged\"\n class=\"mt-6 mx-auto\"\n />\n <v-sheet class=\"mb-10\">\n <div v-show=\"menuSelected == 'ASR'\">\n <ASRDemoSheet class=\"mt-3\"></ASRDemoSheet>\n </div>\n <div v-show=\"menuSelected == 'TTS'\">\n <TTSDemoSheet class=\"mt-3\"></TTSDemoSheet>\n </div>\n </v-sheet>\n </v-container>\n</template>\n<script>\nimport MenuBar from \"./MenuBar.vue\";\nimport ASRDemoSheet from \"./ASRDemoSheet.vue\";\nimport TTSDemoSheet from \"./TTSDemoSheet.vue\";\n\nexport default {\n name: \"EspnetOnnxDemo\",\n components: {\n MenuBar,\n ASRDemoSheet,\n TTSDemoSheet,\n },\n data: () => ({\n selected: 1,\n options: [\n { id: 1, icon: \"mdi-microphone-message\", title: \"ASR\" },\n { id: 2, icon: \"mdi-speaker-message\", title: \"TTS\" },\n ],\n menuSelected: \"ASR\",\n }),\n methods: {\n menuChanged: function (e) {\n if (this.menuSelected != e) {\n this.menuSelected = e;\n }\n },\n },\n};\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EspnetOnnxDemo.vue?vue&type=template&id=b4c0ed34&\"\nimport script from \"./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"\nexport * from \"./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-app>\n <v-main>\n <DemoHeader></DemoHeader>\n <EspnetOnnxDemo></EspnetOnnxDemo>\n <DemoFooter></DemoFooter>\n </v-main>\n </v-app>\n</template>\n\n<script>\nimport DemoHeader from './components/DemoHeader.vue'\nimport DemoFooter from './components/DemoFooter.vue'\nimport EspnetOnnxDemo from './components/EspnetOnnxDemo.vue'\n\nexport default {\n name: 'App',\n\n components: {\n DemoHeader,\n DemoFooter,\n EspnetOnnxDemo\n },\n\n};\n</script>\n","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=9a668cba&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n // theme: { dark: true },\n});\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify'\nimport AudioRecorder from 'vue-audio-recorder'\n\nVue.use(AudioRecorder)\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n render: h => h(App)\n}).$mount('#app')\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkespnet_onnx_demo\"] = self[\"webpackChunkespnet_onnx_demo\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(1019); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["staticRenderFns","render","_c","staticStyle","attrs","name","data","hoverFlag","methods","hover","out","component","staticClass","_vm","on","menuChanged","model","value","selected","directives","menuSelected","_self","cssVariables","_l","localOptions","index","isActive","button","badge","_s","_v","icon","hasSlot","title","prop","event","props","default","options","type","Array","badgeColor","String","showable","created","map","option","computed","hasActiveClass","some","handleLabelClick","toggleClass","updateValue","id","$emit","forEach","childs","find","child","slotName","$slots","$scopedSlots","callback","selectRecord","ASRLoadingFlag","text","expression","key","message","models","modelInfo","loadingFlag","showAlert","barType","selectError","audioFile","audioError","soundSrc","record","hide_alert","window","setInterval","loadModel","axios","params","model_name","then","alert","modelLoaded","catch","error","console","log","runModel","formData","FormData","append","blob","filename","headers","res","r","afterRecord","textLengthRules","ref","playing","rawName","width","volume","convertTimeHHMMSS","val","hhmmss","Date","toISOString","substr","indexOf","file","autoPlay","Boolean","loop","audio","undefined","currentSeconds","durationSeconds","innerLoop","loaded","previousVolume","showVolume","currentTime","durationTime","percentComplete","parseInt","muted","watch","play","pause","download","stop","open","load","readyState","duration","Error","mute","seek","e","target","tagName","el","getBoundingClientRect","seekPos","clientX","left","update","reload","Audio","addEventListener","components","AudioPlayer","counter","max","TTSLoadingFlag","length","textError","fs","$refs","audioPlayer","MenuBar","ASRDemoSheet","TTSDemoSheet","DemoHeader","DemoFooter","EspnetOnnxDemo","Vue","Vuetify","AudioRecorder","vuetify","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","obj","prototype","hasOwnProperty","call","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}
static/js/app.2c53b14e.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/app.2c53b14e.js","mappings":"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","sources":["webpack://espnet_onnx_demo/./src/App.vue","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue","webpack://espnet_onnx_demo/src/components/DemoHeader.vue","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue?89cb","webpack://espnet_onnx_demo/./src/components/DemoHeader.vue?81f6","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue","webpack://espnet_onnx_demo/src/components/DemoFooter.vue","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue?e81a","webpack://espnet_onnx_demo/./src/components/DemoFooter.vue?27ce","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue","webpack://espnet_onnx_demo/./src/components/MenuBar.vue","webpack://espnet_onnx_demo/src/components/MenuBar.vue","webpack://espnet_onnx_demo/./src/components/MenuBar.vue?d71e","webpack://espnet_onnx_demo/./src/components/MenuBar.vue?cc93","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue","webpack://espnet_onnx_demo/src/components/ASRDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue?22aa","webpack://espnet_onnx_demo/./src/components/ASRDemoSheet.vue?2509","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue","webpack://espnet_onnx_demo/src/components/AudioPalyer.vue","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue?79e4","webpack://espnet_onnx_demo/./src/components/AudioPalyer.vue?bdb6","webpack://espnet_onnx_demo/src/components/TTSDemoSheet.vue","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue?501a","webpack://espnet_onnx_demo/./src/components/TTSDemoSheet.vue?f099","webpack://espnet_onnx_demo/src/components/EspnetOnnxDemo.vue","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue?4283","webpack://espnet_onnx_demo/./src/components/EspnetOnnxDemo.vue?f147","webpack://espnet_onnx_demo/src/App.vue","webpack://espnet_onnx_demo/./src/App.vue?46c1","webpack://espnet_onnx_demo/./src/App.vue?01fe","webpack://espnet_onnx_demo/./src/plugins/vuetify.js","webpack://espnet_onnx_demo/./src/main.js","webpack://espnet_onnx_demo/webpack/bootstrap","webpack://espnet_onnx_demo/webpack/runtime/chunk loaded","webpack://espnet_onnx_demo/webpack/runtime/compat get default export","webpack://espnet_onnx_demo/webpack/runtime/define property getters","webpack://espnet_onnx_demo/webpack/runtime/global","webpack://espnet_onnx_demo/webpack/runtime/hasOwnProperty shorthand","webpack://espnet_onnx_demo/webpack/runtime/make namespace object","webpack://espnet_onnx_demo/webpack/runtime/jsonp chunk loading","webpack://espnet_onnx_demo/webpack/startup"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-app',[_c('v-main',[_c('DemoHeader'),_c('EspnetOnnxDemo'),_c('DemoFooter')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-card',{staticClass:\"mt-4\",attrs:{\"flat\":\"\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"3\"}},[_c('a',{attrs:{\"href\":\"https://github.com/espnet/espnet\"}},[_c('img',{attrs:{\"src\":\"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png\",\"width\":\"100%\"}})])]),_c('v-spacer'),_c('v-col',{staticStyle:{\"text-align\":\"right\"},attrs:{\"cols\":\"1\"}},[_c('a',{attrs:{\"href\":\"https://github.com/espnet/espnet_onnx\"}},[_c('img',{attrs:{\"src\":\"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png\",\"width\":\"100%\"}})])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-card flat class=\"mt-4\">\n <v-row>\n <v-col cols=\"3\">\n <a href=\"https://github.com/espnet/espnet\">\n <img src=\"https://masao-someki.github.io/espnet_onnx_demo/image/espnet-logo.png\" width=\"100%\" />\n </a>\n </v-col>\n <v-spacer></v-spacer>\n <v-col cols=\"1\" style=\"text-align: right\">\n <a href=\"https://github.com/espnet/espnet_onnx\">\n <img src=\"https://masao-someki.github.io/espnet_onnx_demo/image/github-mark.png\" width=\"100%\" />\n </a>\n </v-col>\n </v-row>\n </v-card>\n </v-container>\n</template>\n\n<script>\nexport default {\n name: \"DemoHeader\",\n data: () => ({\n hoverFlag: false,\n }),\n methods: {\n hover() {\n this.hoverFlag = true;\n },\n out() {\n this.hoverFlag = false;\n },\n },\n};\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoHeader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoHeader.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DemoHeader.vue?vue&type=template&id=1bf56fb9&\"\nimport script from \"./DemoHeader.vue?vue&type=script&lang=js&\"\nexport * from \"./DemoHeader.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-footer',{attrs:{\"padless\":\"\",\"absolute\":\"\"}},[_c('v-row',{attrs:{\"justify\":\"center\",\"no-gutters\":\"\"}},[_c('v-col',{staticClass:\"py-4 text-center\",attrs:{\"color\":\"#BFBFBF\",\"cols\":\"12\"}},[_vm._v(\" \"+_vm._s(new Date().getFullYear())+\" β€” \"),_c('strong',[_vm._v(\"ESPnet-ONNX\")])])],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-footer padless absolute>\n <v-row justify=\"center\" no-gutters>\n <v-col class=\"py-4 text-center\" color=\"#BFBFBF\" cols=\"12\">\n {{ new Date().getFullYear() }} β€” <strong>ESPnet-ONNX</strong>\n </v-col>\n </v-row>\n </v-footer>\n </v-container>\n</template>\n<script>\n\nexport default {\n name: 'DemoFooter',\n}\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoFooter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DemoFooter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DemoFooter.vue?vue&type=template&id=60669fe3&\"\nimport script from \"./DemoFooter.vue?vue&type=script&lang=js&\"\nexport * from \"./DemoFooter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-card-title',[_c('span',{staticClass:\"text-h3\"},[_vm._v(\"ESPnet-ONNX demo\")])]),_c('v-card-text',{staticClass:\"body-1\"},[_vm._v(\" This is a demonstration space of ESPnet-ONNX project. Please select ASR or TTS to play! \")])],1),_c('MenuBar',{staticClass:\"mt-6 mx-auto\",attrs:{\"options\":_vm.options},on:{\"select\":_vm.menuChanged},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}}),_c('v-sheet',{staticClass:\"mb-10\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuSelected == 'ASR'),expression:\"menuSelected == 'ASR'\"}]},[_c('ASRDemoSheet',{staticClass:\"mt-3\"})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuSelected == 'TTS'),expression:\"menuSelected == 'TTS'\"}]},[_c('TTSDemoSheet',{staticClass:\"mt-3\"})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"btn-containrt_foreground\",style:(_vm.cssVariables)},[_c('div',{staticClass:\"btn-containrt\"},_vm._l((_vm.localOptions),function(button,index){return _c('div',{key:`menu-label-${index}`,class:{\n [`btn-item-${index} labels`]: true,\n ['checked']: button.isActive,\n ['unchecked']: !button.isActive,\n },on:{\"click\":function($event){return _vm.handleLabelClick(button)}}},[_c('div',{staticClass:\"active-label\"},[(button.badge)?_c('div',{staticClass:\"btn-badge\"},[_vm._v(\" \"+_vm._s(button.badge)+\" \")]):_vm._e(),(_vm.hasSlot('icon'))?_vm._t(\"icon\",null,{\"props\":button}):[_c('v-icon',[_vm._v(\" \"+_vm._s(button.icon)+\" \")])]],2),_c('div',{staticClass:\"btn-title\"},[(_vm.hasSlot('title'))?_vm._t(\"title\",null,{\"props\":button}):[_vm._v(\" \"+_vm._s(button.title)+\" \")]],2)])}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"btn-containrt_foreground\" :style=\"cssVariables\">\n <div class=\"btn-containrt\">\n <div\n v-for=\"(button, index) in localOptions\"\n :key=\"`menu-label-${index}`\"\n :class=\"{\n [`btn-item-${index} labels`]: true,\n ['checked']: button.isActive,\n ['unchecked']: !button.isActive,\n }\"\n @click=\"handleLabelClick(button)\"\n >\n <div class=\"active-label\">\n <div class=\"btn-badge\" v-if=\"button.badge\">\n {{ button.badge }}\n </div>\n <slot name=\"icon\" v-if=\"hasSlot('icon')\" :props=\"button\" />\n <template v-else>\n <v-icon> {{ button.icon }} </v-icon>\n </template>\n </div>\n\n <div class=\"btn-title\">\n <slot name=\"title\" v-if=\"hasSlot('title')\" :props=\"button\" />\n <template v-else>\n {{ button.title }}\n </template>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n model: {\n prop: \"value\",\n event: \"update\",\n },\n props: {\n value: {\n default: null,\n },\n options: {\n type: Array,\n default: () => [],\n },\n badgeColor: {\n type: String,\n default: \"#FBC02D\",\n },\n },\n data: () => ({\n localOptions: [],\n showable: false,\n }),\n created() {\n this.localOptions = this.options.map((option) => ({\n ...option,\n isActive: this.isActive(option),\n }));\n },\n computed: {\n cssVariables() {\n return {\n \"--color-badge\": this.badgeColor,\n };\n },\n hasActiveClass() {\n return this.localOptions.some((option) => option.isActive);\n },\n },\n methods: {\n handleLabelClick(button) {\n if (!this.showable) {\n this.toggleClass();\n }\n this.updateValue(button.id);\n this.$emit(\"select\", button.title);\n },\n updateValue(value) {\n this.localOptions.forEach(\n (option) => (option.isActive = this.isActive(option, value))\n );\n this.$emit(\"update\", value);\n },\n toggleClass() {\n this.showable = !this.showable;\n },\n isActive(button, value = this.value) {\n return (\n button.id == value ||\n (button.childs || []).find((child) => child.id == value)\n );\n },\n hasSlot(slotName) {\n return this.$slots[slotName] || this.$scopedSlots[slotName];\n },\n },\n};\n</script>\n\n<style scoped>\n.btn-super-parant {\n display: flex;\n justify-content: center;\n align-items: center;\n position: absolute;\n bottom: 55px;\n width: 100%;\n height: 60px;\n z-index: -1;\n}\ninput {\n display: none;\n}\n.btn-containrt_foreground {\n direction: ltr;\n display: flex;\n align-items: flex-end;\n width: 80%;\n height: 60px;\n background: var(--color-foreground);\n}\n.btn-containrt {\n direction: ltr;\n display: flex;\n justify-content: space-around;\n background-color: #fff;\n width: 100%;\n height: 55px;\n}\n.active-label {\n width: 45px;\n height: 45px;\n border-radius: 40%;\n display: flex;\n justify-content: center;\n align-items: center;\n transition: all 300ms ease;\n top: 10px;\n background: #fff !important;\n color: rgba(0, 0, 0, 0.54);\n}\n.btn-title {\n color: rgba(0, 0, 0, 0.6);\n font-size: 12px;\n text-align: center;\n}\n.btn-badge {\n width: 18px;\n height: 18px;\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0px;\n left: 25px;\n border-radius: 50%;\n font-size: 12px;\n color: #fff;\n background: var(--color-badge);\n}\n.checked .active-label {\n transform: translateY(-10px);\n border-color: #d1d9e6 !important;\n border-radius: 15px;\n box-shadow: 2px 2px 4px #b8b9be, -2px -2px 4px #ffffff;\n}\n.checked .btn-title {\n animation: fadein 200ms;\n top: 50px;\n}\n.unchecked .active-label {\n background: transparent;\n}\n.unchecked .btn-title {\n visibility: hidden;\n}\n@media screen and (min-width: 576px) {\n .labels {\n cursor: pointer;\n }\n}\n@keyframes fadein {\n from {\n opacity: 0;\n transform: translateY(20px);\n }\n to {\n opacity: 1;\n transform: translateY(0px);\n }\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MenuBar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MenuBar.vue?vue&type=template&id=002ef1c4&scoped=true&\"\nimport script from \"./MenuBar.vue?vue&type=script&lang=js&\"\nexport * from \"./MenuBar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MenuBar.vue?vue&type=style&index=0&id=002ef1c4&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"002ef1c4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-sheet',{staticClass:\"mt-6 mx-3\"},[_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Select model \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-select',{attrs:{\"items\":_vm.models,\"error\":_vm.selectError,\"dense\":\"\"},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.loadingFlag},on:{\"click\":_vm.loadModel}},[_vm._v(\" Load \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('div',{staticClass:\"my-auto\"},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Upload audio \")])])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('audio-recorder',{staticStyle:{\"box-shadow\":\"none\",\"background\":\"none\"},attrs:{\"attempts\":3,\"time\":1,\"sample-rate\":\"16000\",\"show-download-button\":false,\"show-upload-button\":false,\"format\":\"mp3\",\"select-record\":_vm.selectRecord,\"after-recording\":_vm.afterRecord}})],1),_c('v-col',{staticClass:\"d-flex flex-column\",attrs:{\"cols\":\"2\"}},[_c('v-spacer'),_c('v-btn',{staticClass:\"mt-auto\",attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.ASRLoadingFlag},on:{\"click\":_vm.runModel}},[_vm._v(\" Run \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Text \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-textarea',{attrs:{\"dense\":\"\",\"readonly\":\"\"},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1)],1),_c('v-row',{staticClass:\"mt-6\"},[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Model Detail \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.modelInfo[_vm.model]),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.value))])])}),0)])],1)],1)],1)],1),_c('v-alert',{attrs:{\"value\":_vm.showAlert,\"type\":_vm.barType,\"colored-border\":\"\",\"border\":\"top\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.message))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <v-container>\n <v-sheet class=\"mt-6 mx-3\">\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Select model </span>\n </v-col>\n <v-col cols=\"7\">\n <v-select\n v-model=\"model\"\n :items=\"models\"\n :error=\"selectError\"\n dense\n ></v-select>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"loadModel\"\n outlined\n width=\"100%\"\n :loading=\"loadingFlag\"\n >\n Load\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <div class=\"my-auto\">\n <span class=\"text-h6\"> Upload audio </span>\n </div></v-col\n >\n <v-col cols=\"7\">\n <audio-recorder\n :attempts=\"3\"\n :time=\"1\"\n sample-rate=\"16000\"\n :show-download-button=\"false\"\n :show-upload-button=\"false\"\n format=\"mp3\"\n :select-record=\"selectRecord\"\n :after-recording=\"afterRecord\"\n style=\"box-shadow: none; background: none\"\n />\n </v-col>\n <v-col cols=\"2\" class=\"d-flex flex-column\">\n <v-spacer />\n <v-btn\n @click=\"runModel\"\n outlined\n width=\"100%\"\n :loading=\"ASRLoadingFlag\"\n class=\"mt-auto\"\n >\n Run\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Text </span></v-col\n >\n <v-col cols=\"9\">\n <v-textarea v-model=\"text\" dense readonly></v-textarea>\n </v-col>\n </v-row>\n <v-row class=\"mt-6\">\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Model Detail </span>\n <!-- <v-spacer></v-spacer> -->\n </v-col>\n <v-col cols=\"9\">\n <v-card flat>\n <v-simple-table>\n <tbody>\n <tr v-for=\"item in modelInfo[model]\" :key=\"item.name\">\n <td>{{ item.name }}</td>\n <td>{{ item.value }}</td>\n </tr>\n </tbody>\n </v-simple-table>\n </v-card>\n </v-col>\n </v-row>\n </v-sheet>\n <v-alert\n :value=\"showAlert\"\n :type=\"barType\"\n colored-border\n border=\"top\"\n elevation=\"2\"\n >\n {{ message }}</v-alert\n >\n </v-container>\n</template>\n<script>\nimport axios from \"axios\";\n\nexport default {\n name: \"ASRDemoSheet\",\n data: () => ({\n model: \"\",\n models: [\"pyf98/librispeech_conformer_hop_length160\"],\n modelInfo: {\n \"pyf98/librispeech_conformer_hop_length160\": [\n {\n name: \"url\",\n value:\n \"https://huggingface.co/pyf98/librispeech_conformer_hop_length160\",\n },\n {\n name: \"encoder\",\n value: \"Conformer\",\n },\n {\n name: \"decoder\",\n value: \"Transformer\",\n },\n ],\n },\n loadingFlag: false,\n text: \"\",\n ASRLoadingFlag: false,\n showAlert: false,\n message: \"\",\n barType: \"success\",\n selectError: false,\n audioFile: \"\",\n audioError: false,\n soundSrc: [],\n record: null,\n }),\n methods: {\n hide_alert: function () {\n // `event` is the native DOM event\n window.setInterval(() => {\n this.showAlert = false;\n }, 3000);\n },\n loadModel() {\n this.loadingFlag = true;\n if (this.model === \"\") {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please select a model\";\n this.loadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .get(\"/api/asr/load_model\", {\n params: {\n model_name: this.model,\n },\n })\n .then(() => {\n this.message = \"Successfully loaded model\";\n this.barType = \"success\";\n this.loadingFlag = false;\n this.alert = true;\n this.modelLoaded = true;\n this.showAlert = true;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.loadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.showAlert = true;\n this.hide_alert();\n console.log(error);\n });\n },\n runModel() {\n this.ASRLoadingFlag = true;\n // if (!this.modelLoaded) {\n // this.showAlert = true;\n // this.selectError = true;\n // this.message = \"Please load a model before generating audio.\";\n // this.ASRLoadingFlag = false;\n // this.barType = \"error\";\n // this.hide_alert();\n // return;\n // }\n if (!this.record) {\n this.showAlert = true;\n this.audioError = true;\n this.message = \"Please record at least one audio.\";\n this.ASRLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n\n let formData = new FormData();\n formData.append(\"audio\", this.record.blob, `${this.record.filename}.mp3`);\n\n axios\n .post(\"/api/asr/recognize\", formData, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n })\n .then((res) => {\n this.message = \"Recognition finished.\";\n this.barType = \"success\";\n this.ASRLoadingFlag = false;\n this.alert = true;\n this.text = res.data.text;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while executing model\";\n this.ASRLoadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.hide_alert();\n console.log(error);\n });\n },\n selectRecord(r) {\n this.record = r;\n },\n afterRecord(r) {\n this.record = r;\n },\n },\n};\n</script>\n<style>\n.ar-records {\n height: auto !important;\n}\n\n.ar-records__record--selected {\n border: 1px solid #1f1e33 !important;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ASRDemoSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ASRDemoSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ASRDemoSheet.vue?vue&type=template&id=5002468c&\"\nimport script from \"./ASRDemoSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./ASRDemoSheet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ASRDemoSheet.vue?vue&type=style&index=0&id=5002468c&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',[_c('v-sheet',{staticClass:\"mt-6 mx-3\"},[_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Select model \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-select',{attrs:{\"items\":_vm.models,\"dense\":\"\",\"error\":_vm.selectError},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.loadingFlag},on:{\"click\":_vm.loadModel}},[_vm._v(\" Load \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Write text \")])]),_c('v-col',{attrs:{\"cols\":\"7\"}},[_c('v-textarea',{attrs:{\"dense\":\"\",\"clearable\":\"\",\"rows\":\"2\",\"counter\":\"\",\"error\":_vm.textError,\"rules\":_vm.textLengthRules},model:{value:(_vm.text),callback:function ($$v) {_vm.text=$$v},expression:\"text\"}})],1),_c('v-col',{attrs:{\"cols\":\"2\"}},[_c('v-btn',{attrs:{\"outlined\":\"\",\"width\":\"100%\",\"loading\":_vm.TTSLoadingFlag},on:{\"click\":_vm.runModel}},[_vm._v(\" Generate \")])],1)],1),_c('v-row',[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Generated audio \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('AudioPlayer',{ref:\"audioPlayer\",attrs:{\"audioPath\":_vm.audioPath}})],1)],1),_c('v-row',{staticClass:\"mt-6\"},[_c('v-col',{staticClass:\"py-auto\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"3\",\"height\":\"100%\"}},[_c('span',{staticClass:\"text-h6\"},[_vm._v(\" Model Detail \")])]),_c('v-col',{attrs:{\"cols\":\"9\"}},[_c('v-card',{attrs:{\"flat\":\"\"}},[_c('v-simple-table',[_c('tbody',_vm._l((_vm.modelInfo[_vm.model]),function(item){return _c('tr',{key:item.name},[_c('td',[_vm._v(_vm._s(item.name))]),_c('td',[_vm._v(_vm._s(item.value))])])}),0)])],1)],1)],1)],1),_c('v-alert',{attrs:{\"value\":_vm.showAlert,\"type\":_vm.barType,\"colored-border\":\"\",\"border\":\"top\",\"elevation\":\"2\"}},[_vm._v(\" \"+_vm._s(_vm.message))])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"player\"},[_c('v-row',{staticClass:\"player-controls ma-0\"},[_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"1\",\"title\":\"Stop\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":_vm.stop}},[_c('v-icon',[_vm._v(\"mdi-stop\")])],1)],1),_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"1\",\"title\":\"Play/Pause\"}},[_c('v-btn',{attrs:{\"icon\":\"\"},on:{\"click\":function($event){_vm.playing = !_vm.playing}}},[_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.playing),expression:\"!playing\"}]},[_vm._v(\"mdi-play\")]),_c('v-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.playing),expression:\"playing\"}]},[_vm._v(\"mdi-pause\")])],1)],1),_c('v-col',{staticClass:\"pa-0\",attrs:{\"cols\":\"6\"}},[_c('div',{staticClass:\"player-progress\",attrs:{\"title\":\"Time played : Total time\"},on:{\"click\":_vm.seek}},[_c('div',{staticClass:\"player-seeker\",style:({ width: this.percentComplete + '%' })})]),_c('div',{staticClass:\"player-time\"},[_c('div',{staticClass:\"player-time-current\"},[_vm._v(_vm._s(_vm.currentTime))]),_c('div',{staticClass:\"player-time-total\"},[_vm._v(_vm._s(_vm.durationTime))])])]),_c('v-col',{staticClass:\"pa-2\",staticStyle:{\"text-align\":\"center\"},attrs:{\"cols\":\"4\"}},[_c('v-slider',{attrs:{\"prepend-icon\":\"mdi-volume-high\",\"max\":\"100\",\"width\":\"100%\",\"dense\":\"\",\"hide-details\":\"auto\"},model:{value:(_vm.volume),callback:function ($$v) {_vm.volume=$$v},expression:\"volume\"}})],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"player\">\n <v-row class=\"player-controls ma-0\">\n <v-col cols=\"1\" class=\"pa-2\" style=\"text-align: center;\" title=\"Stop\">\n <v-btn icon @click=\"stop\">\n <v-icon>mdi-stop</v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"1\" class=\"pa-2\" style=\"text-align: center;\" title=\"Play/Pause\">\n <v-btn icon @click=\"playing = !playing\" >\n <v-icon v-show=\"!playing\">mdi-play</v-icon>\n <v-icon v-show=\"playing\">mdi-pause</v-icon>\n </v-btn>\n </v-col>\n <v-col cols=\"6\" class=\"pa-0\" >\n <div\n v-on:click=\"seek\"\n class=\"player-progress\"\n title=\"Time played : Total time\"\n >\n <div\n :style=\"{ width: this.percentComplete + '%' }\"\n class=\"player-seeker\"\n ></div>\n </div>\n <div class=\"player-time\">\n <div class=\"player-time-current\">{{ currentTime }}</div>\n <div class=\"player-time-total\">{{ durationTime }}</div>\n </div>\n </v-col>\n <v-col cols=\"4\" style=\"text-align: center;\" class=\"pa-2\" >\n <v-slider\n v-model=\"volume\"\n prepend-icon=\"mdi-volume-high\"\n max=\"100\"\n width=\"100%\"\n dense\n hide-details=\"auto\"\n ></v-slider>\n </v-col>\n </v-row>\n <!-- <audio\n :loop=\"innerLoop\"\n :ref=\"audioPath\"\n :src=\"file\"\n preload=\"auto\"\n style=\"display: none\"\n ></audio> -->\n </div>\n</template>\n<script>\nconst convertTimeHHMMSS = (val) => {\n\tlet hhmmss = new Date(val * 1000).toISOString().substr(11, 8);\n\n\treturn hhmmss.indexOf(\"00:\") === 0 ? hhmmss.substr(3) : hhmmss;\n};\n\nexport default {\n name: \"ASRDemoSheet\",\n props: {\n file: {\n type: String,\n default: null,\n },\n autoPlay: {\n type: Boolean,\n default: false,\n },\n loop: {\n type: Boolean,\n default: false,\n },\n audioPath: {\n type: String,\n default: null,\n }\n },\n data: () => ({\n audio: undefined,\n currentSeconds: 0,\n durationSeconds: 0,\n innerLoop: false,\n loaded: false,\n playing: false,\n previousVolume: 35,\n showVolume: false,\n volume: 100,\n }),\n computed: {\n currentTime() {\n return convertTimeHHMMSS(this.currentSeconds);\n },\n durationTime() {\n return convertTimeHHMMSS(this.durationSeconds);\n },\n percentComplete() {\n return parseInt((this.currentSeconds / this.durationSeconds) * 100);\n },\n muted() {\n return this.volume / 100 === 0;\n },\n },\n watch: {\n playing(value) {\n if (value) {\n return this.audio.play();\n }\n this.audio.pause();\n },\n volume() {\n this.showVolume = false;\n this.audio.volume = this.volume / 100;\n },\n },\n methods: {\n download() {\n this.stop();\n window.open(this.file, \"download\");\n },\n load() {\n if (this.audio.readyState >= 2) {\n this.loaded = true;\n this.durationSeconds = parseInt(this.audio.duration);\n return (this.playing = this.autoPlay);\n }\n\n throw new Error(\"Failed to load sound file.\");\n },\n mute() {\n if (this.muted) {\n return (this.volume = this.previousVolume);\n }\n\n this.previousVolume = this.volume;\n this.volume = 0;\n },\n seek(e) {\n if (!this.playing || e.target.tagName === \"SPAN\") {\n return;\n }\n\n const el = e.target.getBoundingClientRect();\n const seekPos = (e.clientX - el.left) / el.width;\n\n this.audio.currentTime = parseInt(this.audio.duration * seekPos);\n },\n stop() {\n this.playing = false;\n this.audio.currentTime = 0;\n },\n update() {\n this.currentSeconds = parseInt(this.audio.currentTime);\n },\n reload() {\n this.audio = new Audio(\"/demo/sample.wav\");\n this.audio.addEventListener(\"timeupdate\", this.update);\n this.audio.addEventListener(\"loadeddata\", this.load);\n this.audio.addEventListener(\"pause\", () => {\n this.playing = false;\n });\n this.audio.addEventListener(\"play\", () => {\n this.playing = true;\n });\n this.playing = false;\n this.durationSeconds = parseInt(this.audio.duration);\n }\n },\n created() {\n this.innerLoop = this.loop;\n },\n};\n</script>\n<style lang=\"scss\">\n@import url(\"https://fonts.googleapis.com/css?family=Nunito:400,700\");\n\nbody {\n font-family: \"Nunito\", sans-serif;\n}\n\n$player-bg: #fff;\n$player-border-color: darken($player-bg, 12%);\n$player-link-color: darken($player-bg, 75%);\n$player-progress-color: $player-border-color;\n$player-seeker-color: $player-link-color;\n$player-text-color: $player-link-color;\n\n.player-wrapper {\n align-items: center;\n background-color: $player-bg;\n background-image: linear-gradient(90deg, #fff 0, darken(#fff, 12%));\n display: flex;\n justify-content: center;\n // height: 100vh;\n}\n\n.player {\n background-color: $player-bg;\n border: 1px solid $player-border-color;\n border-radius: 5px;\n // box-shadow: 0 5px 8px rgba(0, 0, 0, 0.15);\n color: $player-text-color;\n display: inline-block;\n // line-height: 1.5625;\n width:100%;\n}\n\n.player-controls {\n display: flex;\n\n > div {\n border-right: 1px solid $player-border-color;\n\n &:last-child {\n border-right: none;\n }\n\n a {\n color: $player-link-color;\n display: block;\n // line-height: 0;\n // padding: 1em;\n text-decoration: none;\n }\n }\n}\n\n.player-progress {\n background-color: $player-progress-color;\n cursor: pointer;\n height: 50%;\n min-width: 200px;\n position: relative;\n\n .player-seeker {\n background-color: $player-seeker-color;\n bottom: 0;\n left: 0;\n position: absolute;\n top: 0;\n }\n}\n\n.player-time {\n display: flex;\n // font-size: 18px;\n justify-content: space-between;\n\n .player-time-current {\n font-weight: 700;\n padding-left: 5px;\n }\n\n .player-time-total {\n opacity: 0.5;\n padding-right: 5px;\n }\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioPalyer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AudioPalyer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./AudioPalyer.vue?vue&type=template&id=344df4cf&\"\nimport script from \"./AudioPalyer.vue?vue&type=script&lang=js&\"\nexport * from \"./AudioPalyer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AudioPalyer.vue?vue&type=style&index=0&id=344df4cf&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-container>\n <v-sheet class=\"mt-6 mx-3\">\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Select model </span>\n </v-col>\n <v-col cols=\"7\">\n <v-select\n v-model=\"model\"\n :items=\"models\"\n dense\n :error=\"selectError\"\n ></v-select>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"loadModel\"\n outlined\n width=\"100%\"\n :loading=\"loadingFlag\"\n >\n Load\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Write text </span></v-col\n >\n <v-col cols=\"7\">\n <v-textarea\n v-model=\"text\"\n dense\n clearable\n rows=\"2\"\n counter\n :error=\"textError\"\n v-bind:rules=\"textLengthRules\"\n >\n </v-textarea>\n </v-col>\n <v-col cols=\"2\">\n <v-btn\n @click=\"runModel\"\n outlined\n width=\"100%\"\n :loading=\"TTSLoadingFlag\"\n >\n Generate\n </v-btn>\n </v-col>\n </v-row>\n <v-row>\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Generated audio </span></v-col\n >\n <v-col cols=\"9\">\n <AudioPlayer :audioPath=\"audioPath\" ref=\"audioPlayer\"></AudioPlayer>\n </v-col>\n </v-row>\n <v-row class=\"mt-6\">\n <v-col\n cols=\"3\"\n style=\"text-align: center\"\n class=\"py-auto\"\n height=\"100%\"\n >\n <span class=\"text-h6\"> Model Detail </span>\n <!-- <v-spacer></v-spacer> -->\n </v-col>\n <v-col cols=\"9\">\n <v-card flat>\n <v-simple-table>\n <tbody>\n <tr v-for=\"item in modelInfo[model]\" :key=\"item.name\">\n <td>{{ item.name }}</td>\n <td>{{ item.value }}</td>\n </tr>\n </tbody>\n </v-simple-table>\n </v-card>\n </v-col>\n </v-row>\n </v-sheet>\n <v-alert\n :value=\"showAlert\"\n :type=\"barType\"\n colored-border\n border=\"top\"\n elevation=\"2\"\n >\n {{ message }}</v-alert\n >\n </v-container>\n</template>\n<script>\nimport AudioPlayer from \"./AudioPalyer.vue\";\nimport axios from \"axios\";\n\nexport default {\n name: \"ASRDemoSheet\",\n components: {\n AudioPlayer,\n },\n data: () => ({\n model: \"\",\n models: [\"kan-bayashi/ljspeech_vits\"],\n modelInfo: {\n \"kan-bayashi/ljspeech_vits\": [\n {\n name: \"url\",\n value: \"https://huggingface.co/espnet/kan-bayashi_ljspeech_vits\",\n },\n {\n name: \"model\",\n value: \"VITS\",\n },\n ],\n },\n counter: {\n max: 20,\n },\n loadingFlag: false,\n text: \"\",\n TTSLoadingFlag: false,\n textLengthRules: [\n (text) => text.length <= 100 || \"Maximum 100 characters allowed\",\n ],\n showAlert: false,\n message: \"\",\n modelLoaded: false,\n audioPath: \"\",\n textError: false,\n barType: \"success\",\n selectError: false,\n }),\n methods: {\n hide_alert: function () {\n // `event` is the native DOM event\n window.setInterval(() => {\n this.showAlert = false;\n }, 3000);\n },\n loadModel: function () {\n this.loadingFlag = true;\n if (this.model === \"\") {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please select a model\";\n this.loadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .get(\"/api/tts/load_model\", {\n params: {\n model_name: this.model,\n },\n })\n .then(() => {\n this.message = \"Successfully loaded model\";\n this.barType = \"success\";\n this.loadingFlag = false;\n this.alert = true;\n this.modelLoaded = true;\n this.showAlert = true;\n this.hide_alert();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.loadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.showAlert = true;\n this.hide_alert();\n console.log(error);\n });\n },\n runModel: function () {\n this.TTSLoadingFlag = true;\n if (!this.modelLoaded) {\n this.showAlert = true;\n this.selectError = true;\n this.message = \"Please load a model before generating audio.\";\n this.TTSLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n if (!this.text) {\n this.showAlert = true;\n this.textError = true;\n this.message = \"Please write text.\";\n this.TTSLoadingFlag = false;\n this.barType = \"error\";\n this.hide_alert();\n return;\n }\n this.selectError = false;\n axios\n .post(\"/api/tts/generate\", {\n text: this.text,\n })\n .then((res) => {\n this.message = \"Successfully generated audio\";\n this.barType = \"success\";\n this.TTSLoadingFlag = false;\n this.alert = true;\n this.audioPath = res.data.audio_path;\n this.hide_alert();\n this.$refs.audioPlayer.reload();\n })\n .catch((error) => {\n this.message = \"Error happened while loading model\";\n this.TTSLoadingFlag = false;\n this.alert = true;\n this.barType = \"error\";\n this.hide_alert();\n console.log(error);\n });\n },\n },\n};\n</script>\n<style>\n.v-alert {\n position: fixed;\n left: 50%;\n bottom: 50px;\n transform: translate(-50%, -50%);\n margin: 0 auto;\n}\n</style>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TTSDemoSheet.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TTSDemoSheet.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TTSDemoSheet.vue?vue&type=template&id=3226322a&\"\nimport script from \"./TTSDemoSheet.vue?vue&type=script&lang=js&\"\nexport * from \"./TTSDemoSheet.vue?vue&type=script&lang=js&\"\nimport style0 from \"./TTSDemoSheet.vue?vue&type=style&index=0&id=3226322a&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-container>\n <v-card flat>\n <v-card-title>\n <span class=\"text-h3\">ESPnet-ONNX demo</span>\n </v-card-title>\n <v-card-text class=\"body-1\">\n This is a demonstration space of ESPnet-ONNX project. Please select ASR\n or TTS to play!\n </v-card-text>\n </v-card>\n\n <MenuBar\n :options=\"options\"\n v-model=\"selected\"\n v-on:select=\"menuChanged\"\n class=\"mt-6 mx-auto\"\n />\n <v-sheet class=\"mb-10\">\n <div v-show=\"menuSelected == 'ASR'\">\n <ASRDemoSheet class=\"mt-3\"></ASRDemoSheet>\n </div>\n <div v-show=\"menuSelected == 'TTS'\">\n <TTSDemoSheet class=\"mt-3\"></TTSDemoSheet>\n </div>\n </v-sheet>\n </v-container>\n</template>\n<script>\nimport MenuBar from \"./MenuBar.vue\";\nimport ASRDemoSheet from \"./ASRDemoSheet.vue\";\nimport TTSDemoSheet from \"./TTSDemoSheet.vue\";\n\nexport default {\n name: \"EspnetOnnxDemo\",\n components: {\n MenuBar,\n ASRDemoSheet,\n TTSDemoSheet,\n },\n data: () => ({\n selected: 1,\n options: [\n { id: 1, icon: \"mdi-microphone-message\", title: \"ASR\" },\n { id: 2, icon: \"mdi-speaker-message\", title: \"TTS\" },\n ],\n menuSelected: \"ASR\",\n }),\n methods: {\n menuChanged: function (e) {\n if (this.menuSelected != e) {\n this.menuSelected = e;\n }\n },\n },\n};\n</script>\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EspnetOnnxDemo.vue?vue&type=template&id=b4c0ed34&\"\nimport script from \"./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"\nexport * from \"./EspnetOnnxDemo.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","<template>\n <v-app>\n <v-main>\n <DemoHeader></DemoHeader>\n <EspnetOnnxDemo></EspnetOnnxDemo>\n <DemoFooter></DemoFooter>\n </v-main>\n </v-app>\n</template>\n\n<script>\nimport DemoHeader from './components/DemoHeader.vue'\nimport DemoFooter from './components/DemoFooter.vue'\nimport EspnetOnnxDemo from './components/EspnetOnnxDemo.vue'\n\nexport default {\n name: 'App',\n\n components: {\n DemoHeader,\n DemoFooter,\n EspnetOnnxDemo\n },\n\n};\n</script>\n<style lang=\"scss\">\n.body {\n color: #1f1e33\n}\n</style>","import mod from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[1]!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6688c852&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=6688c852&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\nimport Vuetify from 'vuetify/lib/framework';\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n // theme: { dark: true },\n});\n","import Vue from 'vue'\nimport App from './App.vue'\nimport vuetify from './plugins/vuetify'\nimport AudioRecorder from 'vue-audio-recorder'\n\nVue.use(AudioRecorder)\nVue.config.productionTip = false\n\nnew Vue({\n vuetify,\n render: h => h(App)\n}).$mount('#app')\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkespnet_onnx_demo\"] = self[\"webpackChunkespnet_onnx_demo\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(7264); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["staticRenderFns","render","_c","staticStyle","attrs","name","data","hoverFlag","methods","hover","out","component","staticClass","_vm","on","menuChanged","model","value","selected","directives","menuSelected","_self","cssVariables","_l","localOptions","index","isActive","button","badge","_s","_v","icon","hasSlot","title","prop","event","props","default","options","type","Array","badgeColor","String","showable","created","map","option","computed","hasActiveClass","some","handleLabelClick","toggleClass","updateValue","id","$emit","forEach","childs","find","child","slotName","$slots","$scopedSlots","callback","selectRecord","ASRLoadingFlag","text","expression","key","message","models","modelInfo","loadingFlag","showAlert","barType","selectError","audioFile","audioError","soundSrc","record","hide_alert","window","setInterval","loadModel","axios","params","model_name","then","alert","modelLoaded","catch","error","console","log","runModel","formData","FormData","append","blob","filename","headers","res","r","afterRecord","textLengthRules","ref","playing","rawName","width","volume","convertTimeHHMMSS","val","hhmmss","Date","toISOString","substr","indexOf","file","autoPlay","Boolean","loop","audioPath","audio","undefined","currentSeconds","durationSeconds","innerLoop","loaded","previousVolume","showVolume","currentTime","durationTime","percentComplete","parseInt","muted","watch","play","pause","download","stop","open","load","readyState","duration","Error","mute","seek","e","target","tagName","el","getBoundingClientRect","seekPos","clientX","left","update","reload","Audio","addEventListener","components","AudioPlayer","counter","max","TTSLoadingFlag","length","textError","audio_path","$refs","audioPlayer","MenuBar","ASRDemoSheet","TTSDemoSheet","DemoHeader","DemoFooter","EspnetOnnxDemo","Vue","Vuetify","AudioRecorder","vuetify","h","App","$mount","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","m","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","Object","keys","every","splice","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","this","Function","obj","prototype","hasOwnProperty","call","Symbol","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","bind","push","__webpack_exports__"],"sourceRoot":""}
 
 
static/js/{chunk-vendors.2d882395.js β†’ chunk-vendors.6b5e5369.js} RENAMED
The diff for this file is too large to render. See raw diff
 
static/js/{chunk-vendors.2d882395.js.map β†’ chunk-vendors.6b5e5369.js.map} RENAMED
The diff for this file is too large to render. See raw diff
 
template/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/static/favicon.ico"><title>espnet_onnx_demo</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><script defer="defer" src="/static/js/chunk-vendors.2d882395.js"></script><script defer="defer" src="/static/js/app.2c53b14e.js"></script><link href="/static/css/chunk-vendors.40e25f02.css" rel="stylesheet"><link href="/static/css/app.6300f8e8.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but espnet_onnx_demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
 
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/static/favicon.ico"><title>espnet_onnx_demo</title><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@mdi/font@latest/css/materialdesignicons.min.css"><script defer="defer" src="/static/js/chunk-vendors.6b5e5369.js"></script><script defer="defer" src="/static/js/app.025f3c10.js"></script><link href="/static/css/chunk-vendors.40e25f02.css" rel="stylesheet"><link href="/static/css/app.234bfaaa.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but espnet_onnx_demo doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>