@wendongfly/myhi 1.3.71 → 1.3.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat.html +40 -0
- package/dist/index.js +1 -1
- package/dist/index.min.js +7 -8
- package/package.json +1 -1
package/dist/chat.html
CHANGED
|
@@ -604,6 +604,13 @@
|
|
|
604
604
|
style="background:#1f6feb;color:#fff;font-size:1.1rem;font-weight:700;padding:1.1rem;margin:0 0.2rem 0.3rem;border:none;border-radius:12px;cursor:pointer;touch-action:none;user-select:none;-webkit-user-select:none">
|
|
605
605
|
按住说话
|
|
606
606
|
</button>
|
|
607
|
+
<div style="text-align:center;margin:0 0.2rem 0.3rem">
|
|
608
|
+
<input id="va-file-input" type="file" accept="audio/*,video/webm,video/mp4" style="display:none">
|
|
609
|
+
<button id="va-upload-btn" onclick="vaUploadAudio()"
|
|
610
|
+
style="background:#21262d;color:#8b949e;border:1px solid #30363d;border-radius:8px;font-size:0.8rem;padding:0.4rem 1rem;cursor:pointer;width:100%">
|
|
611
|
+
📎 上传音频文件识别 (mp3 / wav / m4a / webm,最大 200MB)
|
|
612
|
+
</button>
|
|
613
|
+
</div>
|
|
607
614
|
<div id="va-status" style="text-align:center;font-size:0.78rem;color:#8b949e;min-height:1.3em;margin-bottom:0.2rem"></div>
|
|
608
615
|
<div style="display:flex;gap:0.4rem;padding:0 0.2rem">
|
|
609
616
|
<button id="va-direct-btn" class="action-sheet-cancel" onclick="vaDirectSend()"
|
|
@@ -3273,6 +3280,39 @@
|
|
|
3273
3280
|
window.closeVaSheet();
|
|
3274
3281
|
if (!_isTouchDevice()) cmdInput.focus();
|
|
3275
3282
|
};
|
|
3283
|
+
window.vaUploadAudio = function() {
|
|
3284
|
+
const fi = document.getElementById('va-file-input');
|
|
3285
|
+
fi.onchange = async () => {
|
|
3286
|
+
const file = fi.files[0];
|
|
3287
|
+
if (!file) return;
|
|
3288
|
+
fi.value = '';
|
|
3289
|
+
const uploadBtn = document.getElementById('va-upload-btn');
|
|
3290
|
+
uploadBtn.disabled = true;
|
|
3291
|
+
_vaSetStatus(`上传中: ${file.name} (${(file.size/1024/1024).toFixed(1)}MB)`, '#d29922');
|
|
3292
|
+
try {
|
|
3293
|
+
const fd = new FormData();
|
|
3294
|
+
fd.append('audio', file, file.name);
|
|
3295
|
+
const resp = await fetch('/api/voice-transcribe', { method: 'POST', body: fd });
|
|
3296
|
+
if (resp.status === 503) {
|
|
3297
|
+
_vaSetStatus('ASR 服务未配置,请在设置中填写语音识别地址', '#f85149');
|
|
3298
|
+
return;
|
|
3299
|
+
}
|
|
3300
|
+
const data = await resp.json();
|
|
3301
|
+
if (data.text?.trim()) {
|
|
3302
|
+
_vaLines.push(data.text.trim());
|
|
3303
|
+
_vaRender();
|
|
3304
|
+
_vaSetStatus(`✓ 文件已识别,共 ${_vaLines.length} 段`, '#3fb950');
|
|
3305
|
+
} else {
|
|
3306
|
+
_vaSetStatus('识别失败: ' + (data.error || '空结果'), '#f85149');
|
|
3307
|
+
}
|
|
3308
|
+
} catch (e) {
|
|
3309
|
+
_vaSetStatus('上传失败: ' + e.message, '#f85149');
|
|
3310
|
+
} finally {
|
|
3311
|
+
uploadBtn.disabled = false;
|
|
3312
|
+
}
|
|
3313
|
+
};
|
|
3314
|
+
fi.click();
|
|
3315
|
+
};
|
|
3276
3316
|
|
|
3277
3317
|
// 大录音按钮:手机长按、桌面单击切换
|
|
3278
3318
|
_vaBtn.addEventListener('pointerdown', (e) => {
|