Просмотр исходного кода

[feat][ai聊天][语音识别]

hizhangling 6 дней назад
Родитель
Сommit
5b548afdca

+ 1 - 0
package.json

@@ -21,6 +21,7 @@
     "@vueuse/core": "13.3.0",
     "axios": "1.9.0",
     "clipboard": "2.0.11",
+    "crypto-js": "^4.2.0",
     "echarts": "^5.6.0",
     "element-plus": "2.9.9",
     "fabric": "^6.7.0",

Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/utils/ai/iat/dist/index.cjs.js


+ 30 - 0
src/utils/ai/iat/dist/index.d.ts

@@ -0,0 +1,30 @@
+declare class RecorderManager {
+    /**
+     * 构造函数
+     * @param processorPath processor的文件路径,如果processor.worker.js的访问地址为`/a/b/processor.worker.js`,则processorPath 为`/a/b`
+     *
+     */
+    constructor(processorPath: string);
+    private audioBuffers;
+    private processorPath;
+    private audioContext?;
+    private audioTracks?;
+    private audioWorklet?;
+    onStop?: (audioBuffers: ArrayBuffer[]) => void;
+    onFrameRecorded?: (params: {
+        isLastFrame: boolean;
+        frameBuffer: ArrayBuffer;
+    }) => void;
+    /**
+     * 监听录音开始事件
+     */
+    onStart?: () => void;
+    start({ sampleRate, frameSize, arrayBufferType, }: {
+        sampleRate?: number;
+        frameSize?: number;
+        arrayBufferType?: "short16" | "float32";
+    }): Promise<void>;
+    stop(): void;
+}
+
+export { RecorderManager as default };

Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/utils/ai/iat/dist/index.esm.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/utils/ai/iat/dist/index.umd.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/utils/ai/iat/dist/processor.worker.js


Разница между файлами не показана из-за своего большого размера
+ 1 - 0
src/utils/ai/iat/dist/processor.worklet.js


+ 2 - 3
src/views/xjc-integratedmachine/common/ai/chat.vue

@@ -26,7 +26,7 @@
                             <img src="@/assets/images/common/ai/system.png" alt="icon"/>
                             <div v-show="!expandIndexList.includes(index)" class="bot-message-content" v-html="item.content.substring(0, 80)"></div>
                             <div v-show="expandIndexList.includes(index)" class="bot-message-content" v-html="item.content"></div>
-                            <el-button v-if="item.content.length>80" @click="foldOrExplandMessage(index, expandIndexList.includes(index))">{{expandIndexList.includes(index)?'折叠':'展开'}}</el-button>
+                            <el-button v-if="item.content.length>80" @click="foldOrExpandMessage(index, expandIndexList.includes(index))">{{expandIndexList.includes(index)?'折叠':'展开'}}</el-button>
                             <el-button>播放</el-button>
                         </div>
                     </div>
@@ -171,7 +171,6 @@
         } finally {
             streamHtmlData.value = marked(streamMarkdownData.value)
             isLoading.value = false;
-            console.log("==============");
         }
     }
 
@@ -189,7 +188,7 @@
         isLoading.value = false;
     }
 
-    function foldOrExplandMessage(index, flag){
+    function foldOrExpandMessage(index, flag){
         activeIndex.value = index;
         if(flag){
             expandIndexList.value = expandIndexList.value.filter((item)=>{