mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-12 23:36:15 -08:00
Refactor ASR plugin options and improve audio processing
- Renamed `hideTimeout` to `autoHideTimeout` for clarity. - Updated the default options destructuring for better readability. - Removed unnecessary comments and cleaned up the audio processing logic. - Ensured that the audio buffer is processed correctly before sending to the `onAudioChunk` callback.
This commit is contained in:
1 parent
1ece90c582
commit
3f0a1bd433
12 files changed
+41
-45
No files matched your search
+16
-17
@@ -11,16 +11,25 @@ var art = new Artplayer({
|
||||
sampleRate: 16000,
|
||||
autoHideTimeout: 10000,
|
||||
// Use your AI tool to convert buffer into subtitles
|
||||
onAudioChunk: (buffer) => tencentASR(buffer),
|
||||
onAudioChunk: (buffer) => startAsr(buffer),
|
||||
}),
|
||||
]
|
||||
});
|
||||
|
||||
var ws = null;
|
||||
var loading = false;
|
||||
async function tencentASR(buffer) {
|
||||
if (loading) return;
|
||||
|
||||
function stopAsr() {
|
||||
try {
|
||||
ws.send(JSON.stringify({ type: 'end' }));
|
||||
ws.close();
|
||||
} catch {}
|
||||
ws = null;
|
||||
loading = false;
|
||||
}
|
||||
|
||||
async function startAsr(buffer) {
|
||||
if (loading) return;
|
||||
if (!ws) {
|
||||
loading = true;
|
||||
const api = 'https://api.aimu.app/asr/tencent?engine_model_type=16k_en';
|
||||
@@ -30,26 +39,16 @@ async function tencentASR(buffer) {
|
||||
ws.onmessage = (event) => {
|
||||
const { code, result } = JSON.parse(event.data);
|
||||
if (code === 0) {
|
||||
const subtitle = result?.voice_text_str;
|
||||
art.plugins.artplayerPluginAsr.append(subtitle);
|
||||
art.plugins.artplayerPluginAsr.append(result.voice_text_str);
|
||||
} else {
|
||||
ws.close();
|
||||
ws = null;
|
||||
stopAsr();
|
||||
}
|
||||
|
||||
};
|
||||
loading = false;
|
||||
}
|
||||
|
||||
if (ws.readyState === WebSocket.OPEN) {
|
||||
if (ws?.readyState === WebSocket.OPEN) {
|
||||
ws.send(buffer);
|
||||
}
|
||||
}
|
||||
|
||||
art.on('destroy', () => {
|
||||
try {
|
||||
ws.send(JSON.stringify({ type: 'end' }));
|
||||
ws.close();
|
||||
} catch {}
|
||||
ws = null;
|
||||
});
|
||||
art.on('destroy', stopAsr);
|
||||
@@ -5,5 +5,5 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,a,l,i){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var i=d[t]=new f.Module(t);e[t][0].call(i.exports,c,i,i.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>i);var a=e("bundle-text:./style.less"),l=o.interopDefault(a);function i(e={}){let{hideTimeout:t=1e4,length:r=3,interval:n=100,sampleRate:o=16e3,onAudioChunk:a=()=>null}=e;return e=>{let l=!1,i=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function x(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,t),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-r).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function P(){return i||"suspended"===(i=new(window.AudioContext||window.webkitAudioContext)({sampleRate:o})).state&&await i.resume(),i}async function j(){if(!u&&e.video)try{return u=i.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(m||(m=await A(e.video)),m)return b=i.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function A(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!l)try{await P();let e=await j();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await i.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=i.createGain()).gain.value=1,(s=new AudioWorkletNode(i,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(i.destination);let t=n/1e3*o;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);x(o)},n),l=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await C()}}async function C(){l&&(l=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await C(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),i&&(await i.close(),i=null),f=!1}return e.on("play",M),e.on("pause",C),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:x}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=i)},{"bundle-text:./style.less":"dKHY3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dKHY3:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-duratLine truncated
|
||||
!function(e,t,r,n,o,a,l,i){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var i=d[t]=new f.Module(t);e[t][0].call(i.exports,c,i,i.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>i);var a=e("bundle-text:./style.less"),l=o.interopDefault(a);function i(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let l=!1,i=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function x(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function P(){return i||"suspended"===(i=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await i.resume(),i}async function j(){if(!u&&e.video)try{return u=i.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(m||(m=await A(e.video)),m)return b=i.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function A(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!l)try{await P();let e=await j();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await i.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=i.createGain()).gain.value=1,(s=new AudioWorkletNode(i,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(i.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);x(o)},r),l=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await C()}}async function C(){l&&(l=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await C(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),i&&(await i.close(),i=null),f=!1}return e.on("play",M),e.on("pause",C),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:x}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=i)},{"bundle-text:./style.less":"dKHY3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dKHY3:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-dLine truncated
|
||||
//# sourceMappingURL=artplayer-plugin-asr.esm.js.map
|
||||
@@ -1 +1 @@
|
||||
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EAClD,GAAM,CAAE,YAAA,EAAc,GAAK,CAAE,OAAA,EAAS,CAAC,CAAE,SAAA,EAAW,GAAG,CAAE,WAAA,EAAa,IAAK,CAAE,aAAA,EAAe,IAAM,IAAI,CAAE,CAAG,EAE3G,OAAO,AAAC,IACJ,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EAAgB,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 truncated
|
||||
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EAClD,GAAM,CACF,OAAA,EAAS,CAAC,CACV,SAAA,EAAW,GAAG,CACd,WAAA,EAAa,IAAK,CAClB,gBAAA,EAAkB,GAAK,CACvB,aAAA,EAAe,IAAM,IAAI,CAC5B,CAAG,EAEJ,OAAO,AAAC,IACJ,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EA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 truncated
|
||||
@@ -5,4 +5,4 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var b=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=b:"function"==typeof define&&define.amd&&define(function(){return b})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{hideTimeout:t=1e4,length:r=3,interval:n=100,sampleRate:o=16e3,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,b=null,m=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,t),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-r).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let x=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([x],{type:"application/javascript"});return URL.createObjectURL(e)};async function M(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:o})).state&&await l.resume(),l}async function P(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(b||(b=await j(e.video)),b)return m=l.createMediaStreamSource(b)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function j(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function A(){if(!i)try{await M();let e=await P();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=n/1e3*o;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);h(o)},n),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await O()}}async function O(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function k(){await O(),m&&(m.disconnect(),m=null),u&&(u.disconnect(),u=null),b&&(b.getTracks().forEach(e=>e.stop()),b=null),l&&(await l.close(),l=null),f=!1}return e.on("play",A),e.on("pause",O),e.on("destroy",k),{name:"artplayerPluginAsr",stop:k,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=i.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=l)},{"bundle-text:./style.less":"bqyvG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bqyvG:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-duratLine truncated
|
||||
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var b=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=b:"function"==typeof define&&define.amd&&define(function(){return b})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,b=null,m=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let x=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([x],{type:"application/javascript"});return URL.createObjectURL(e)};async function M(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function P(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(b||(b=await j(e.video)),b)return m=l.createMediaStreamSource(b)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function j(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function A(){if(!i)try{await M();let e=await P();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);h(o)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await O()}}async function O(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function k(){await O(),m&&(m.disconnect(),m=null),u&&(u.disconnect(),u=null),b&&(b.getTracks().forEach(e=>e.stop()),b=null),l&&(await l.close(),l=null),f=!1}return e.on("play",A),e.on("pause",O),e.on("destroy",k),{name:"artplayerPluginAsr",stop:k,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=i.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=l)},{"bundle-text:./style.less":"bqyvG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bqyvG:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-dLine truncated
|
||||
@@ -5,4 +5,4 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var h=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hideTimeout,r=void 0===t?1e4:t,n=e.length,o=void 0===n?3:n,u=e.interval,c=void 0===u?100:u,s=e.sampleRate,l=void 0===s?16e3:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,h=!1,_=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(_),_=setTimeout(w,r),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?\\.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-o).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(j=(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:l})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})).apply(this,arguments)}function O(){return(O=(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}t.label=1;case 1:if(t.trys.push([1,4,,5]),v)return[3,3];return[4,function(e){return P.apply(this,arguments)}(e.video)];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})).apply(this,arguments)}function P(){return(P=(0,i._)(function(e){return(0,a._)(this,function(t){try{if(e.captureStream)return[2,e.captureStream()];if(e.mozCaptureStream)return[2,e.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})).apply(this,arguments)}function S(){return(S=(0,i._)(function(){var e,r,o;return(0,a._)(this,function(u){switch(u.label){case 0:if(t)return[2];u.label=1;case 1:return u.trys.push([1,6,,8]),[4,function(){return j.apply(this,arguments)}()];case 2:return u.sent(),[4,function(){return O.apply(this,arguments)}()];case 3:if(!(e=u.sent()))throw Error("Could not establish audio source");if(h)return[3,5];return r=x(),[4,n.audioWorklet.addModule(r)];case 4:u.sent(),URL.revokeObjectURL(r),h=!0,u.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},e.connect(s),e.connect(f),f.connect(n.destination),o=c/1e3*l,y=setInterval((0,i._)(function(){var e,t,r;return(0,a._)(this,function(n){switch(n.label){case 0:if(0===d.length)return[2];for(e=new Float32Array(0);e.length<o&&d.length;)t=d.shift(),(r=new Float32Array(e.length+t.length)).set(e,0),r.set(t,e.length),e=r;if(e.length<o)return[2];return[4,p(function(e){for(var t=e.length,Line truncated
|
||||
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.length,r=void 0===t?3:t,n=e.interval,o=void 0===n?100:n,u=e.sampleRate,c=void 0===u?16e3:u,s=e.autoHideTimeout,l=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,_=!1,h=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(h),h=setTimeout(w,l),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?\\.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-r).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(j=(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:c})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})).apply(this,arguments)}function O(){return(O=(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}t.label=1;case 1:if(t.trys.push([1,4,,5]),v)return[3,3];return[4,function(e){return P.apply(this,arguments)}(e.video)];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})).apply(this,arguments)}function P(){return(P=(0,i._)(function(e){return(0,a._)(this,function(t){try{if(e.captureStream)return[2,e.captureStream()];if(e.mozCaptureStream)return[2,e.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})).apply(this,arguments)}function S(){return(S=(0,i._)(function(){var e,r,u;return(0,a._)(this,function(l){switch(l.label){case 0:if(t)return[2];l.label=1;case 1:return l.trys.push([1,6,,8]),[4,function(){return j.apply(this,arguments)}()];case 2:return l.sent(),[4,function(){return O.apply(this,arguments)}()];case 3:if(!(e=l.sent()))throw Error("Could not establish audio source");if(_)return[3,5];return r=x(),[4,n.audioWorklet.addModule(r)];case 4:l.sent(),URL.revokeObjectURL(r),_=!0,l.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},e.connect(s),e.connect(f),f.connect(n.destination),u=o/1e3*c,y=setInterval((0,i._)(function(){var e,t,r;return(0,a._)(this,function(n){switch(n.label){case 0:if(0===d.length)return[2];for(e=new Float32Array(0);e.length<u&&d.length;)t=d.shift(),(r=new Float32Array(e.length+t.length)).set(e,0),r.set(t,e.length),e=r;if(e.length<u)return[2];return[4,p(function(e){for(var t=e.lenLine truncated
|
||||
@@ -167,7 +167,7 @@ parcelHelpers.export(exports, "default", ()=>artplayerPluginAsr);
|
||||
var _styleLess = require("bundle-text:./style.less");
|
||||
var _styleLessDefault = parcelHelpers.interopDefault(_styleLess);
|
||||
function artplayerPluginAsr(option = {}) {
|
||||
const { hideTimeout = 10000, length = 3, interval = 100, sampleRate = 16000, onAudioChunk = ()=>null } = option;
|
||||
const { length = 3, interval = 100, sampleRate = 16000, autoHideTimeout = 10000, onAudioChunk = ()=>null } = option;
|
||||
return (art)=>{
|
||||
let started = false;
|
||||
let audioCtx = null;
|
||||
@@ -194,7 +194,7 @@ function artplayerPluginAsr(option = {}) {
|
||||
function append(subtitle) {
|
||||
if (typeof subtitle !== 'string') return;
|
||||
clearTimeout(hideTimer);
|
||||
hideTimer = setTimeout(hide, hideTimeout);
|
||||
hideTimer = setTimeout(hide, autoHideTimeout);
|
||||
$asr.style.display = '';
|
||||
$asr.innerHTML = splitByPunctuation(subtitle).map((line)=>`<div class="art-asr-line">${line}</div>`).join('');
|
||||
}
|
||||
@@ -277,18 +277,15 @@ function artplayerPluginAsr(option = {}) {
|
||||
URL.revokeObjectURL(blobUrl);
|
||||
workletLoaded = true;
|
||||
}
|
||||
// 创建输出音频的 GainNode(正常播放)
|
||||
gainNode = audioCtx.createGain();
|
||||
gainNode.gain.value = 1;
|
||||
recorderNode = new AudioWorkletNode(audioCtx, 'recorder-processor');
|
||||
recorderNode.port.onmessage = (event)=>{
|
||||
bufferChunks.push(new Float32Array(event.data));
|
||||
};
|
||||
// 分流:识别和播放
|
||||
audioSource.connect(recorderNode);
|
||||
audioSource.connect(gainNode);
|
||||
gainNode.connect(audioCtx.destination); // 正常声音输出
|
||||
// recorderNode 不连接 destination,避免输出干扰
|
||||
gainNode.connect(audioCtx.destination);
|
||||
const CHUNK_SAMPLES = sampleRate * (interval / 1000);
|
||||
timer = setInterval(async ()=>{
|
||||
if (bufferChunks.length === 0) return;
|
||||
@@ -302,8 +299,8 @@ function artplayerPluginAsr(option = {}) {
|
||||
}
|
||||
if (accumulated.length < CHUNK_SAMPLES) return;
|
||||
const chunkToSend = accumulated.slice(0, CHUNK_SAMPLES);
|
||||
const pcm = floatTo16BitPCM(chunkToSend);
|
||||
const subtitle = await onAudioChunk(pcm);
|
||||
const buffer = floatTo16BitPCM(chunkToSend);
|
||||
const subtitle = await onAudioChunk(buffer);
|
||||
append(subtitle);
|
||||
}, interval);
|
||||
started = true;
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"mappings":"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","sources":["packages/artplayer-plugin-asr/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-54f3e2ccbee34ab4.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import style from 'bundle-text:./style.less';\n\nexport default function artplayerPluginAsr(option =Line truncated
|
||||
{"mappings":"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","sources":["packages/artplayer-plugin-asr/src/index.js","node_modules/@parcel/runtime-js/lib/bundles/runtime-54f3e2ccbee34ab4.js","node_modules/@parcel/transformer-js/src/esmodule-helpers.js"],"sourcesContent":["import style from 'bundle-text:./style.less';\n\nexport default function artplayerPluginAsr(option = {}) {\n const {\n length = 3,\n Line truncated
|
||||
@@ -5,5 +5,5 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,a,l,i){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var i=d[t]=new f.Module(t);e[t][0].call(i.exports,c,i,i.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>i);var a=e("bundle-text:./style.less"),l=o.interopDefault(a);function i(e={}){let{hideTimeout:t=1e4,length:r=3,interval:n=100,sampleRate:o=16e3,onAudioChunk:a=()=>null}=e;return e=>{let l=!1,i=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function x(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,t),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-r).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function P(){return i||"suspended"===(i=new(window.AudioContext||window.webkitAudioContext)({sampleRate:o})).state&&await i.resume(),i}async function j(){if(!u&&e.video)try{return u=i.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(m||(m=await A(e.video)),m)return b=i.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function A(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!l)try{await P();let e=await j();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await i.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=i.createGain()).gain.value=1,(s=new AudioWorkletNode(i,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(i.destination);let t=n/1e3*o;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);x(o)},n),l=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await C()}}async function C(){l&&(l=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await C(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),i&&(await i.close(),i=null),f=!1}return e.on("play",M),e.on("pause",C),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:x}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=i)},{"bundle-text:./style.less":"dKHY3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dKHY3:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-duratLine truncated
|
||||
!function(e,t,r,n,o,a,l,i){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var l=Error("Cannot find module '"+t+"'");throw l.code="MODULE_NOT_FOUND",l}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var i=d[t]=new f.Module(t);e[t][0].call(i.exports,c,i,i.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var m=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=m:"function"==typeof define&&define.amd&&define(function(){return m})}}({"40eeC":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>i);var a=e("bundle-text:./style.less"),l=o.interopDefault(a);function i(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let l=!1,i=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,m=null,b=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function x(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let h=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([h],{type:"application/javascript"});return URL.createObjectURL(e)};async function P(){return i||"suspended"===(i=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await i.resume(),i}async function j(){if(!u&&e.video)try{return u=i.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(m||(m=await A(e.video)),m)return b=i.createMediaStreamSource(m)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function A(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function M(){if(!l)try{await P();let e=await j();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await i.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=i.createGain()).gain.value=1,(s=new AudioWorkletNode(i,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(i.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);x(o)},r),l=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await C()}}async function C(){l&&(l=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function O(){await C(),b&&(b.disconnect(),b=null),u&&(u.disconnect(),u=null),m&&(m.getTracks().forEach(e=>e.stop()),m=null),i&&(await i.close(),i=null),f=!1}return e.on("play",M),e.on("pause",C),e.on("destroy",O),{name:"artplayerPluginAsr",stop:O,hide:v,append:x}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=l.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=i)},{"bundle-text:./style.less":"dKHY3","@parcel/transformer-js/src/esmodule-helpers.js":"5lQoW"}],dKHY3:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-dLine truncated
|
||||
//# sourceMappingURL=artplayer-plugin-asr.esm.js.map
|
||||
@@ -1 +1 @@
|
||||
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EAClD,GAAM,CAAE,YAAA,EAAc,GAAK,CAAE,OAAA,EAAS,CAAC,CAAE,SAAA,EAAW,GAAG,CAAE,WAAA,EAAa,IAAK,CAAE,aAAA,EAAe,IAAM,IAAI,CAAE,CAAG,EAE3G,OAAO,AAAC,IACJ,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EAAgB,CAAA,EAChB,EAAY,KACZ,EAAc,KACd,EAAoB,KAElB,EAAO,EAAI,MAAM,CAAC,GAAG,CAAC,CACxB,KAAM,MACN,KAAM,EACV,GAaA,SAAS,IACL,EAAK,KAAK,CAAC,OAAO,CAAG,MACzB,CAEA,SAAS,EAAO,CAAQ,EAChB,AAAoB,UAApB,OAAO,IACX,aAAa,GACb,EAAY,WAAW,EAAM,GAC7B,EAAK,KAAK,CAAC,OAAO,CAAG,GACrB,EAAK,SAAS,CAAG,AAlBb,AAkBgC,EAhB3B,KAAK,CAAC,uBACN,GAAG,CAAC,AAAC,GAAM,EAAE,IAAI,IACjB,MAAM,CAAC,SACP,KAAK,CAAC,CAAC,GAcX,GAAG,CAAC,AAAC,GAAS,CAAC,0BAA0B,EAAE,EAAK,MAAM,CAAC,EACvD,IAAI,CAAC,IACd,CAEA,IAAM,EAAwB;A;A;A;A;A;A;A;A;A;A;AAW9B,QAAA,CAAC,CAEK,EAAuB,KACzB,IAAM,EAAO,IAAI,KAAK,CAAC,EAAsB,CAAE,CAAE,KAAM,wBAAyB,GAChF,OAAO,IAAI,eAAe,CAAC,EAC/B,EAaA,eAAe,WACP,GAEA,AAAmB,cAAnB,AADJ,CAAA,EAAW,GAAK,CAAA,OAAO,YAAY,EAAI,OAAO,kBAAkB,AAAlB,EAAoB,CAAE,WAAA,CAAW,EAAA,EAClE,KAAK,EAAkB,MAAM,EAAS,MAAM,GAFpC,CAIzB,CAEA,eAAe,IACX,GAAI,CAAC,GAAc,EAAI,KAAK,CACxB,GAAI,CAEA,OADA,EAAa,EAAS,wBAAwB,CAAC,EAAI,KAAK,CAE5D,CAAE,MAAO,EAAK,CACV,QAAQ,IAAI,CAAC,oEAAqE,EACtF,CAGJ,GAAI,CAIA,GAHI,AAAC,GACD,CAAA,EAAc,MAAM,EAAsB,EAAI,KAAK,CAAA,EAEnD,EAEA,OADA,EAAoB,EAAS,uBAAuB,CAAC,EAG7D,CAAE,MAAO,EAAK,CACV,QAAQ,IAAI,CAAC,oDAAqD,EACtE,CAEA,OAAO,IACX,CAEA,eAAe,EAAsB,CAAY,EAC7C,GAAI,CACA,GAAI,EAAa,aAAa,CAAE,OAAO,EAAa,aAAa,GACjE,GAAI,EAAa,gBAAgB,CAAE,OAAO,EAAa,gBAAgB,GAEvE,OADA,QAAQ,IAAI,CAAC,oDACN,IACX,CAAE,MAAO,EAAK,CAEV,OADA,QAAQ,IAAI,CAAC,+CAAgD,GACtD,IACX,CACJ,CAEA,eAAe,IACX,IAAI,EAEJ,GAAI,CACA,MAAM,IACN,IAAM,EAAc,MAAM,IAC1B,GAAI,CAAC,EAAa,MAAM,AAAI,MAAM,oCAElC,GAAI,CAAC,EAAe,CAChB,IAAM,EAAU,GAChB,OAAM,EAAS,YAAY,CAAC,SAAS,CAAC,GACtC,IAAI,eAAe,CAAC,GACpB,EAAgB,CAAA,CACpB,CAIA,AADA,CAAA,EAAW,EAAS,UAAU,EAA9B,EACS,IAAI,CAAC,KAAK,CAAG,EAGtB,AADA,CAAA,EAAe,IAAI,iBAAiB,EAAU,qBAA9C,EACa,IAAI,CAAC,SAAS,CAAG,AAAC,IAC3B,EAAa,IAAI,CAAC,IAAI,aAAa,EAAM,IAAI,EACjD,EAGA,EAAY,OAAO,CAAC,GACpB,EAAY,OAAO,CAAC,GAEpB,EAAS,OAAO,CAAC,EAAS,WAAW,EAGrC,IAAM,EAAgB,AAAc,EAAW,IAAzB,EACtB,EAAQ,YAAY,UAChB,GAAI,AAAwB,IAAxB,EAAa,MAAM,CAAQ,OAE/B,IAAI,EAAc,IAAI,aAAa,GACnC,KAAO,EAAY,MAAM,CAAG,GAAiB,EAAa,MAAM,EAAE,CAC9D,IAAM,EAAO,EAAa,KAAK,GACzB,EAAM,IAAI,aAAa,EAAY,MAAM,CAAG,EAAK,MAAM,EAC7D,EAAI,GAAG,CAAC,EAAa,GACrB,EAAI,GAAG,CAAC,EAAM,EAAY,MAAM,EAChC,EAAc,CAClB,CAEA,GAAI,EAAY,MAAM,CAAG,EAAe,OAExC,IAAM,EAAc,EAAY,KAAK,CAAC,EAAG,GACnC,EAAM,AAtGxB,SAAyB,CAAY,EACjC,IAAM,EAAM,EAAa,MAAM,CACzB,EAAS,IAAI,YAAY,AAAM,EAAN,GACzB,EAAO,IAAI,SAAS,GAC1B,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,IAAK,CAC1B,IAAI,EAAI,KAAK,GAAG,CAAC,GAAI,KAAK,GAAG,CAAC,EAAG,CAAY,CAAC,EAAE,GAChD,EAAK,QAAQ,CAAC,AAAI,EAAJ,EAAO,EAAI,EAAI,AAAI,MAAJ,EAAa,AAAI,MAAJ,EAAY,CAAA,EAC1D,CACA,OAAO,CACX,EA6FwC,GACtB,EAAW,MAAM,EAAa,GACpC,EAAO,EACX,EAAG,GAEH,EAAU,CAAA,CACd,CAAE,MAAO,EAAK,CACV,QAAQ,KAAK,CAAC,8CAA+C,GAC7D,MAAM,GACV,CACJ,CAEA,eAAe,IACN,IACL,EAAU,CAAA,EAEV,cAAc,GACd,EAAQ,KAEJ,IACA,EAAa,UAAU,GACvB,EAAa,IAAI,CAAC,SAAS,CAAG,KAC9B,EAAe,MAGf,IACA,EAAS,UAAU,GACnB,EAAW,MAGf,EAAe,EAAE,CACrB,CAEA,eAAe,IACX,MAAM,IAEF,IACA,EAAkB,UAAU,GAC5B,EAAoB,MAGpB,IACA,EAAW,UAAU,GACrB,EAAa,MAGb,IACA,EAAY,SAAS,GAAG,OAAO,CAAC,AAAC,GAAU,EAAM,IAAI,IACrD,EAAc,MAGd,IACA,MAAM,EAAS,KAAK,GACpB,EAAW,MAGf,EAAgB,CAAA,CACpB,CAMA,OAJA,EAAI,EAAE,CAAC,OAAQ,GACf,EAAI,EAAE,CAAC,QAAS,GAChB,EAAI,EAAE,CAAC,UAAW,GAEX,CACH,KAAM,qBACN,KAAM,EACN,KAAA,EACA,OAAA,CACJ,CACJ,CACJ,CAEA,GAAI,AAAoB,aAApB,OAAO,UACH,CAAC,SAAS,cAAc,CAAC,wBAAyB,CAClD,IAAM,EAAS,SAAS,aAAa,CAAC,QACtC,CAAA,EAAO,EAAE,CAAG,uBACZ,EAAO,WAAW,CAAG,EAAA,OAAK,CAC1B,SAAS,IAAI,CAAC,WAAW,CAAC,EAC9B,CAGA,AAAkB,aAAlB,OAAO,QACP,CAAA,OAAO,kBAAqB,CAAG,CADnC,C,E,C,2B,Q,iD,O,E,C,M,C,S,C,C,C,C,C,C,C,ECzPA,EAAO,OAAO,CAAG,qvB,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,ECAjB,EAAQ,cAAc,CAAG,SAAU,CAAC,EAClC,OAAO,GAAK,EAAE,UAAU,CAAG,EAAI,CAAC,QAAS,CAAC,CAC5C,EAEA,EAAQ,iBAAiB,CAAG,SAAU,CAAC,EACrC,OAAO,cAAc,CAAC,EAAG,aAAc,CAAC,MAAO,CAAA,CAAI,EACrD,EAEA,EAAQ,SAAS,CAAG,SAAU,CAAM,CAAE,CAAI,EAkBxC,OAjBA,OAAO,IAAI,CAAC,GAAQ,OAAO,CAAC,SAAU,CAAG,EAE7B,YAAR,GACA,AAAQ,eAAR,GACA,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EALine truncated
|
||||
{"mappings":"C,A,S,C,C,C,C,C,C,C,C,C,C,C,C,C,C,C,E,I,E,A,a,O,W,W,A,a,O,K,K,A,a,O,O,O,A,a,O,O,O,C,E,E,A,Y,O,C,C,E,E,C,C,E,C,E,E,C,E,C,E,E,E,K,E,C,E,E,A,a,O,Q,A,Y,O,O,O,E,O,O,C,I,C,Q,S,E,C,C,C,E,G,C,C,C,E,C,C,G,C,C,C,E,C,C,G,C,C,E,C,O,C,C,E,C,I,E,A,Y,O,C,C,E,E,C,C,E,C,G,C,G,E,O,E,E,C,G,G,E,O,E,E,C,G,G,G,A,U,O,E,O,E,G,I,E,A,M,uB,E,I,O,E,I,C,mB,C,C,E,O,C,S,C,E,I,E,C,C,E,C,E,C,E,C,O,A,M,E,E,C,E,E,K,C,C,E,I,E,C,C,E,C,I,E,M,C,G,C,C,E,C,E,C,I,C,E,O,C,E,E,E,O,C,E,C,O,C,C,E,C,O,C,S,E,C,E,I,E,E,O,C,G,M,A,C,I,E,C,E,E,E,C,C,E,e,C,C,E,E,M,C,S,C,E,I,C,E,C,E,I,C,M,C,E,I,C,O,C,E,I,C,O,C,C,C,E,E,O,C,E,E,K,C,E,E,M,C,E,E,O,C,K,E,E,S,C,K,E,E,S,C,K,E,E,C,C,E,E,Q,C,S,C,C,C,E,C,C,E,C,C,S,C,C,C,E,E,O,C,C,E,C,E,A,E,O,c,C,E,O,C,I,W,O,C,C,E,A,C,G,C,C,E,C,E,I,I,E,E,E,E,M,C,I,E,C,C,E,E,G,E,C,I,E,E,E,A,C,U,O,S,A,a,O,O,O,O,C,E,A,Y,O,Q,O,G,E,O,W,O,C,E,C,E,C,Q,C,S,C,C,C,C,C,C,C,E,I,E,E,kD,E,iB,C,GCEwB,EAAA,MAAA,CAAA,EAAA,UAAA,IAAA,GAFxB,IAAA,EAAA,EAAA,4B,E,E,c,C,GAEe,SAAS,EAAmB,EAAS,CAAC,CAAC,EAClD,GAAM,CACF,OAAA,EAAS,CAAC,CACV,SAAA,EAAW,GAAG,CACd,WAAA,EAAa,IAAK,CAClB,gBAAA,EAAkB,GAAK,CACvB,aAAA,EAAe,IAAM,IAAI,CAC5B,CAAG,EAEJ,OAAO,AAAC,IACJ,IAAI,EAAU,CAAA,EACV,EAAW,KACX,EAAa,KACb,EAAe,KACf,EAAW,KACX,EAAe,EAAE,CACjB,EAAQ,KACR,EA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 truncated
|
||||
@@ -5,4 +5,4 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var b=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=b:"function"==typeof define&&define.amd&&define(function(){return b})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{hideTimeout:t=1e4,length:r=3,interval:n=100,sampleRate:o=16e3,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,b=null,m=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,t),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-r).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let x=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([x],{type:"application/javascript"});return URL.createObjectURL(e)};async function M(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:o})).state&&await l.resume(),l}async function P(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(b||(b=await j(e.video)),b)return m=l.createMediaStreamSource(b)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function j(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function A(){if(!i)try{await M();let e=await P();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=n/1e3*o;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);h(o)},n),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await O()}}async function O(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function k(){await O(),m&&(m.disconnect(),m=null),u&&(u.disconnect(),u=null),b&&(b.getTracks().forEach(e=>e.stop()),b=null),l&&(await l.close(),l=null),f=!1}return e.on("play",A),e.on("pause",O),e.on("destroy",k),{name:"artplayerPluginAsr",stop:k,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=i.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=l)},{"bundle-text:./style.less":"bqyvG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bqyvG:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-duratLine truncated
|
||||
!function(e,t,r,n,o,a,i,l){var u="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof u[n]&&u[n],c=s.i||{},d=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function f(t,r){if(!d[t]){if(!e[t]){if(o[t])return o[t];var a="function"==typeof u[n]&&u[n];if(!r&&a)return a(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var i=Error("Cannot find module '"+t+"'");throw i.code="MODULE_NOT_FOUND",i}c.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},c.cache={};var l=d[t]=new f.Module(t);e[t][0].call(l.exports,c,l,l.exports,u)}return d[t].exports;function c(e){var t=c.resolve(e);return!1===t?{}:f(t)}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.require=p,this.exports={}},f.modules=e,f.cache=d,f.parent=s,f.distDir=void 0,f.publicUrl=void 0,f.devServer=void 0,f.i=c,f.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(f,"root",{get:function(){return u[n]}}),u[n]=f;for(var y=0;y<t.length;y++)f(t[y]);if(r){var b=f(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=b:"function"==typeof define&&define.amd&&define(function(){return b})}}({"1gnQM":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",()=>l);var a=e("bundle-text:./style.less"),i=o.interopDefault(a);function l(e={}){let{length:t=3,interval:r=100,sampleRate:n=16e3,autoHideTimeout:o=1e4,onAudioChunk:a=()=>null}=e;return e=>{let i=!1,l=null,u=null,s=null,c=null,d=[],p=null,f=!1,y=null,b=null,m=null,g=e.layers.add({name:"asr",html:""});function v(){g.style.display="none"}function h(e){"string"==typeof e&&(clearTimeout(y),y=setTimeout(v,o),g.style.display="",g.innerHTML=e.split(/(?<=[、。!?!?\.])\s*/u).map(e=>e.trim()).filter(Boolean).slice(-t).map(e=>`<div class="art-asr-line">${e}</div>`).join(""))}let x=` class RecorderProcessor extends AudioWorkletProcessor { process(inputs) { const input = inputs[0]; if (input && input[0]) { this.port.postMessage(input[0]); } return true; } } registerProcessor('recorder-processor', RecorderProcessor); `,w=()=>{let e=new Blob([x],{type:"application/javascript"});return URL.createObjectURL(e)};async function M(){return l||"suspended"===(l=new(window.AudioContext||window.webkitAudioContext)({sampleRate:n})).state&&await l.resume(),l}async function P(){if(!u&&e.video)try{return u=l.createMediaElementSource(e.video)}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}try{if(b||(b=await j(e.video)),b)return m=l.createMediaStreamSource(b)}catch(e){console.warn("[artplayerPluginAsr] MediaStream fallback failed:",e)}return null}async function j(e){try{if(e.captureStream)return e.captureStream();if(e.mozCaptureStream)return e.mozCaptureStream();return console.warn("[artplayerPluginAsr] captureStream not supported"),null}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),null}}async function A(){if(!i)try{await M();let e=await P();if(!e)throw Error("Could not establish audio source");if(!f){let e=w();await l.audioWorklet.addModule(e),URL.revokeObjectURL(e),f=!0}(c=l.createGain()).gain.value=1,(s=new AudioWorkletNode(l,"recorder-processor")).port.onmessage=e=>{d.push(new Float32Array(e.data))},e.connect(s),e.connect(c),c.connect(l.destination);let t=r/1e3*n;p=setInterval(async()=>{if(0===d.length)return;let e=new Float32Array(0);for(;e.length<t&&d.length;){let t=d.shift(),r=new Float32Array(e.length+t.length);r.set(e,0),r.set(t,e.length),e=r}if(e.length<t)return;let r=e.slice(0,t),n=function(e){let t=e.length,r=new ArrayBuffer(2*t),n=new DataView(r);for(let r=0;r<t;r++){let t=Math.max(-1,Math.min(1,e[r]));n.setInt16(2*r,t<0?32768*t:32767*t,!0)}return r}(r),o=await a(n);h(o)},r),i=!0}catch(e){console.error("[artplayerPluginAsr] Initialization failed:",e),await O()}}async function O(){i&&(i=!1,clearInterval(p),p=null,s&&(s.disconnect(),s.port.onmessage=null,s=null),c&&(c.disconnect(),c=null),d=[])}async function k(){await O(),m&&(m.disconnect(),m=null),u&&(u.disconnect(),u=null),b&&(b.getTracks().forEach(e=>e.stop()),b=null),l&&(await l.close(),l=null),f=!1}return e.on("play",A),e.on("pause",O),e.on("destroy",k),{name:"artplayerPluginAsr",stop:k,hide:v,append:h}}}if("undefined"!=typeof document&&!document.getElementById("artplayer-plugin-asr")){let e=document.createElement("style");e.id="artplayer-plugin-asr",e.textContent=i.default,document.head.appendChild(e)}"undefined"!=typeof window&&(window.artplayerPluginAsr=l)},{"bundle-text:./style.less":"bqyvG","@parcel/transformer-js/src/esmodule-helpers.js":"6ykb1"}],bqyvG:[function(e,t,r,n){t.exports=".art-video-player .art-layer-asr{z-index:150;justify-content:end;gap:var(--art-subtitle-gap);padding:0 2%;padding-bottom:var(--art-subtitle-bottom);transition:padding-bottom var(--art-transition-dLine truncated
|
||||
@@ -5,4 +5,4 @@
|
||||
* (c) 2017-2025 Harvey Zack
|
||||
* Released under the MIT License.
|
||||
*/
|
||||
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var h=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=h:"function"==typeof define&&define.amd&&define(function(){return h})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.hideTimeout,r=void 0===t?1e4:t,n=e.length,o=void 0===n?3:n,u=e.interval,c=void 0===u?100:u,s=e.sampleRate,l=void 0===s?16e3:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,h=!1,_=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(_),_=setTimeout(w,r),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?\\.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-o).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(j=(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:l})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})).apply(this,arguments)}function O(){return(O=(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}t.label=1;case 1:if(t.trys.push([1,4,,5]),v)return[3,3];return[4,function(e){return P.apply(this,arguments)}(e.video)];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})).apply(this,arguments)}function P(){return(P=(0,i._)(function(e){return(0,a._)(this,function(t){try{if(e.captureStream)return[2,e.captureStream()];if(e.mozCaptureStream)return[2,e.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})).apply(this,arguments)}function S(){return(S=(0,i._)(function(){var e,r,o;return(0,a._)(this,function(u){switch(u.label){case 0:if(t)return[2];u.label=1;case 1:return u.trys.push([1,6,,8]),[4,function(){return j.apply(this,arguments)}()];case 2:return u.sent(),[4,function(){return O.apply(this,arguments)}()];case 3:if(!(e=u.sent()))throw Error("Could not establish audio source");if(h)return[3,5];return r=x(),[4,n.audioWorklet.addModule(r)];case 4:u.sent(),URL.revokeObjectURL(r),h=!0,u.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},e.connect(s),e.connect(f),f.connect(n.destination),o=c/1e3*l,y=setInterval((0,i._)(function(){var e,t,r;return(0,a._)(this,function(n){switch(n.label){case 0:if(0===d.length)return[2];for(e=new Float32Array(0);e.length<o&&d.length;)t=d.shift(),(r=new Float32Array(e.length+t.length)).set(e,0),r.set(t,e.length),e=r;if(e.length<o)return[2];return[4,p(function(e){for(var t=e.length,Line truncated
|
||||
!function(e,t,r,n,o,i,a,u){var c="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s="function"==typeof c[n]&&c[n],l=s.i||{},f=s.cache||{},p="undefined"!=typeof module&&"function"==typeof module.require&&module.require.bind(module);function d(t,r){if(!f[t]){if(!e[t]){if(o[t])return o[t];var i="function"==typeof c[n]&&c[n];if(!r&&i)return i(t,!0);if(s)return s(t,!0);if(p&&"string"==typeof t)return p(t);var a=Error("Cannot find module '"+t+"'");throw a.code="MODULE_NOT_FOUND",a}l.resolve=function(r){var n=e[t][1][r];return null!=n?n:r},l.cache={};var u=f[t]=new d.Module(t);e[t][0].call(u.exports,l,u,u.exports,c)}return f[t].exports;function l(e){var t=l.resolve(e);return!1===t?{}:d(t)}}d.isParcelRequire=!0,d.Module=function(e){this.id=e,this.bundle=d,this.require=p,this.exports={}},d.modules=e,d.cache=f,d.parent=s,d.distDir=void 0,d.publicUrl=void 0,d.devServer=void 0,d.i=l,d.register=function(t,r){e[t]=[function(e,t){t.exports=r},{}]},Object.defineProperty(d,"root",{get:function(){return c[n]}}),c[n]=d;for(var y=0;y<t.length;y++)d(t[y]);if(r){var _=d(r);"object"==typeof exports&&"undefined"!=typeof module?module.exports=_:"function"==typeof define&&define.amd&&define(function(){return _})}}({"98QZN":[function(e,t,r,n){var o=e("@parcel/transformer-js/src/esmodule-helpers.js");o.defineInteropFlag(r),o.export(r,"default",function(){return s});var i=e("@swc/helpers/cjs/_async_to_generator.cjs"),a=e("@swc/helpers/cjs/_ts_generator.cjs"),u=e("bundle-text:./style.less"),c=o.interopDefault(u);function s(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.length,r=void 0===t?3:t,n=e.interval,o=void 0===n?100:n,u=e.sampleRate,c=void 0===u?16e3:u,s=e.autoHideTimeout,l=void 0===s?1e4:s,f=e.onAudioChunk,p=void 0===f?function(){return null}:f;return function(e){var t=!1,n=null,u=null,s=null,f=null,d=[],y=null,_=!1,h=null,v=null,b=null,m=e.layers.add({name:"asr",html:""});function w(){m.style.display="none"}function g(e){"string"==typeof e&&(clearTimeout(h),h=setTimeout(w,l),m.style.display="",m.innerHTML=e.split(RegExp("(?<=[、。!?!?\\.])\\s*","u")).map(function(e){return e.trim()}).filter(Boolean).slice(-r).map(function(e){return'<div class="art-asr-line">'.concat(e,"</div>")}).join(""))}var x=function(){var e=new Blob(["\n class RecorderProcessor extends AudioWorkletProcessor {\n process(inputs) {\n const input = inputs[0];\n if (input && input[0]) {\n this.port.postMessage(input[0]);\n }\n return true;\n }\n }\n registerProcessor('recorder-processor', RecorderProcessor);\n "],{type:"application/javascript"});return URL.createObjectURL(e)};function j(){return(j=(0,i._)(function(){return(0,a._)(this,function(e){switch(e.label){case 0:if(n)return[2,n];if("suspended"!==(n=new(window.AudioContext||window.webkitAudioContext)({sampleRate:c})).state)return[3,2];return[4,n.resume()];case 1:e.sent(),e.label=2;case 2:return[2,n]}})})).apply(this,arguments)}function O(){return(O=(0,i._)(function(){return(0,a._)(this,function(t){switch(t.label){case 0:if(!u&&e.video)try{return u=n.createMediaElementSource(e.video),[2,u]}catch(e){console.warn("[artplayerPluginAsr] Direct connection failed, trying fallback...",e)}t.label=1;case 1:if(t.trys.push([1,4,,5]),v)return[3,3];return[4,function(e){return P.apply(this,arguments)}(e.video)];case 2:v=t.sent(),t.label=3;case 3:if(v)return[2,b=n.createMediaStreamSource(v)];return[3,5];case 4:return console.warn("[artplayerPluginAsr] MediaStream fallback failed:",t.sent()),[3,5];case 5:return[2,null]}})})).apply(this,arguments)}function P(){return(P=(0,i._)(function(e){return(0,a._)(this,function(t){try{if(e.captureStream)return[2,e.captureStream()];if(e.mozCaptureStream)return[2,e.mozCaptureStream()];return console.warn("[artplayerPluginAsr] captureStream not supported"),[2,null]}catch(e){return console.warn("[artplayerPluginAsr] Error capturing stream:",e),[2,null]}})})).apply(this,arguments)}function S(){return(S=(0,i._)(function(){var e,r,u;return(0,a._)(this,function(l){switch(l.label){case 0:if(t)return[2];l.label=1;case 1:return l.trys.push([1,6,,8]),[4,function(){return j.apply(this,arguments)}()];case 2:return l.sent(),[4,function(){return O.apply(this,arguments)}()];case 3:if(!(e=l.sent()))throw Error("Could not establish audio source");if(_)return[3,5];return r=x(),[4,n.audioWorklet.addModule(r)];case 4:l.sent(),URL.revokeObjectURL(r),_=!0,l.label=5;case 5:return(f=n.createGain()).gain.value=1,(s=new AudioWorkletNode(n,"recorder-processor")).port.onmessage=function(e){d.push(new Float32Array(e.data))},e.connect(s),e.connect(f),f.connect(n.destination),u=o/1e3*c,y=setInterval((0,i._)(function(){var e,t,r;return(0,a._)(this,function(n){switch(n.label){case 0:if(0===d.length)return[2];for(e=new Float32Array(0);e.length<u&&d.length;)t=d.shift(),(r=new Float32Array(e.length+t.length)).set(e,0),r.set(t,e.length),e=r;if(e.length<u)return[2];return[4,p(function(e){for(var t=e.lenLine truncated
|
||||
@@ -1,7 +1,13 @@
|
||||
import style from 'bundle-text:./style.less';
|
||||
|
||||
export default function artplayerPluginAsr(option = {}) {
|
||||
const { hideTimeout = 10000, length = 3, interval = 100, sampleRate = 16000, onAudioChunk = () => null } = option;
|
||||
const {
|
||||
length = 3,
|
||||
interval = 100,
|
||||
sampleRate = 16000,
|
||||
autoHideTimeout = 10000,
|
||||
onAudioChunk = () => null,
|
||||
} = option;
|
||||
|
||||
return (art) => {
|
||||
let started = false;
|
||||
@@ -39,7 +45,7 @@ export default function artplayerPluginAsr(option = {}) {
|
||||
function append(subtitle) {
|
||||
if (typeof subtitle !== 'string') return;
|
||||
clearTimeout(hideTimer);
|
||||
hideTimer = setTimeout(hide, hideTimeout);
|
||||
hideTimer = setTimeout(hide, autoHideTimeout);
|
||||
$asr.style.display = '';
|
||||
$asr.innerHTML = splitByPunctuation(subtitle)
|
||||
.map((line) => `<div class="art-asr-line">${line}</div>`)
|
||||
@@ -134,21 +140,15 @@ export default function artplayerPluginAsr(option = {}) {
|
||||
workletLoaded = true;
|
||||
}
|
||||
|
||||
// 创建输出音频的 GainNode(正常播放)
|
||||
gainNode = audioCtx.createGain();
|
||||
gainNode.gain.value = 1;
|
||||
|
||||
recorderNode = new AudioWorkletNode(audioCtx, 'recorder-processor');
|
||||
recorderNode.port.onmessage = (event) => {
|
||||
bufferChunks.push(new Float32Array(event.data));
|
||||
};
|
||||
|
||||
// 分流:识别和播放
|
||||
audioSource.connect(recorderNode);
|
||||
audioSource.connect(gainNode);
|
||||
|
||||
gainNode.connect(audioCtx.destination); // 正常声音输出
|
||||
// recorderNode 不连接 destination,避免输出干扰
|
||||
gainNode.connect(audioCtx.destination);
|
||||
|
||||
const CHUNK_SAMPLES = sampleRate * (interval / 1000);
|
||||
timer = setInterval(async () => {
|
||||
@@ -166,8 +166,8 @@ export default function artplayerPluginAsr(option = {}) {
|
||||
if (accumulated.length < CHUNK_SAMPLES) return;
|
||||
|
||||
const chunkToSend = accumulated.slice(0, CHUNK_SAMPLES);
|
||||
const pcm = floatTo16BitPCM(chunkToSend);
|
||||
const subtitle = await onAudioChunk(pcm);
|
||||
const buffer = floatTo16BitPCM(chunkToSend);
|
||||
const subtitle = await onAudioChunk(buffer);
|
||||
append(subtitle);
|
||||
}, interval);
|
||||
|
||||
|
||||
Reference in new issue
Block a user