diff --git a/resources/assets/js/pages/manage/components/ChatInput/index.vue b/resources/assets/js/pages/manage/components/ChatInput/index.vue index dde88e79c..973c0ef92 100755 --- a/resources/assets/js/pages/manage/components/ChatInput/index.vue +++ b/resources/assets/js/pages/manage/components/ChatInput/index.vue @@ -827,6 +827,8 @@ export default { type: "mp3", bitRate: 64, sampleRate: 32000, + audioTrackSet: null, + disableEnvInFix: false, onProcess: (buffers, powerLevel, duration, sampleRate, newBufferIdx, asyncEnd) => { this.recordWave?.input(buffers[buffers.length - 1], powerLevel, sampleRate); this.recordDuration = duration; diff --git a/resources/assets/statics/public/js/recorder/frequency.histogram.view.js b/resources/assets/statics/public/js/recorder/frequency.histogram.view.js index faf4061cd..96e877363 100644 --- a/resources/assets/statics/public/js/recorder/frequency.histogram.view.js +++ b/resources/assets/statics/public/js/recorder/frequency.histogram.view.js @@ -1,6 +1,366 @@ /* -录音 +录音 Recorder扩展,频率直方图显示 +使用本扩展需要引入src/extensions/lib.fft.js支持,直方图特意优化主要显示0-5khz语音部分(线性),其他高频显示区域较小,不适合用来展示音乐频谱,可自行修改源码恢复成完整的线性频谱,或修改成倍频程频谱(伯德图、对数频谱);本可视化插件可以移植到其他语言环境,如需定制可联系作者 + https://github.com/xiangyuecn/Recorder -src: extensions/frequency.histogram.view.js + +本扩展核心算法主要参考了Java开源库jmp123 版本0.3 的代码: +https://www.iteye.com/topic/851459 +https://sourceforge.net/projects/jmp123/files/ */ -!function(){"use strict";var t=function(t){return new e(t)},d="FrequencyHistogramView",e=function(t){var e=this,r={scale:2,fps:20,lineCount:30,widthRatio:.6,spaceWidth:0,minHeight:0,position:-1,mirrorEnable:!1,stripeEnable:!0,stripeHeight:3,stripeMargin:6,fallDuration:1e3,stripeFallDuration:3500,linear:[0,"rgba(0,187,17,1)",.5,"rgba(255,215,0,1)",1,"rgba(255,102,0,1)"],stripeLinear:null,shadowBlur:0,shadowColor:"#bbb",stripeShadowBlur:-1,stripeShadowColor:"",onDraw:function(t,e){}};for(var a in t)r[a]=t[a];e.set=t=r;var i=t.elem;i&&("string"==typeof i?i=document.querySelector(i):i.length&&(i=i[0])),i&&(t.width=i.offsetWidth,t.height=i.offsetHeight);var o=t.scale,n=t.width*o,l=t.height*o;if(!n||!l)throw new Error(d+"无宽高");var h=e.elem=document.createElement("div"),s=["","transform-origin:0 0;","transform:scale("+1/o+");"];h.innerHTML='
B&&(_[m][b/3]=b%3+1);for(b=1;b<4;b++){var H=w[b-1],C=w[b];Math.max(H,C)<4e4&&H<1.7*C&&C<1.7*H&&(1==b&&_[m][0]<=_[m][b]&&(_[m][0]=0),_[m][b]=0)}_[m][0]<=c.nsPsy.lastAttacks[m]&&(_[m][0]=0),3!=c.nsPsy.lastAttacks[m]&&_[m][0]+_[m][1]+_[m][2]+_[m][3]==0||((k=0)!=_[m][1]&&0!=_[m][0]&&(_[m][1]=0),0!=_[m][2]&&0!=_[m][1]&&(_[m][2]=0),0!=_[m][3]&&0!=_[m][2]&&(_[m][3]=0)),m<2?l[m]=k:0==k&&(l[0]=l[1]=0),i[m]=c.tot_ener[m]}}(e,t,a,s,n,r,_,w,R,A),function(e,t){var a=e.internal_flags;e.short_blocks!=Te.short_block_coupled||0!=t[0]&&0!=t[1]||(t[0]=t[1]=0);for(var s=0;s=t.lowpass2&&(a=Math.min(a,r)),t.lowpass1n.length)&&(e="{?}",O("i18n["+s+"] no {"+t+"}: "+r,3)),a?"":e})):"en"==e?X.v_G(s,n,"zh"):X.v_G(s,n,"en")},$T:function(){return X.v_T.apply(null,arguments)},v_T:function(){for(var e,t=arguments,a="",s=[],n=0,r=R+".i18n.$T:",i=/^([\w\-]*):/,o=0;o>8^o[255&(i^r)]);var r,i}}function N(){var i=this,r=null,o=null;this.setModules=function(e,t,a,s){r=a,o=s};var _=null,l=0,f=0,c=0;function v(e,t,a){for(;0>a<>1;S=g/v,M=T;do{var k,R;k=f[o]*f[o],y+=k,M+=ks[r-3+1]&&(s[r-3+1]+=(s[r-3]-s[r-3+1])*i.decay),s[r-3+1]>s[r-3+2]&&(s[r-3+2]+=(s[r-3+1]-s[r-3+2])*i.decay))}return _},this.calc_noise_core=function(e,t,a,s){var n=0,r=t.s,i=e.l3_enc;if(r>e.count1)for(;0!=a--;)_=e.xr[r],r++,n+=_*_,_=e.xr[r],r++,n+=_*_;else if(r>e.big_values){var o=de(2);for(o[0]=0,o[1]=s;0!=a--;)_=Math.abs(e.xr[r])-o[i[r]],r++,n+=_*_,_=Math.abs(e.xr[r])-o[i[r]],r++,n+=_*_}else for(;0!=a--;){var _;_=Math.abs(e.xr[r])-p[i[r]]*s,r++,n+=_*_,_=Math.abs(e.xr[r])-p[i[r]]*s,r++,n+=_*_}return t.s=r,n},this.calc_noise=function(e,t,a,s,n){var r,i,o=0,_=0,l=0,f=0,c=0,u=-20,h=0,b=e.scalefac,p=0;for(s.over_SSD=0,r=0;r=s?e.ATH.adjust=s:e.ATH.adjust