林旭祥 před 1 měsícem
rodič
revize
234537f569
2 změnil soubory, kde provedl 67 přidání a 5 odebrání
  1. 7 5
      src/App.vue
  2. 60 0
      src/views/set/index.vue

+ 7 - 5
src/App.vue

@@ -6,14 +6,16 @@
 import Speech from 'speak-tts';
 const { proxy } = getCurrentInstance() as any;
 let speech = new Speech();
+let state = localStorage.getItem('ttsState');
 if (!speech.hasBrowserSupport()) {
     proxy?.$modal.msgWarning(`不支持TTS`);
-    proxy?.$http.common.baiduToken({}).then((res: any) => {
-        let tok = res.token;
-        localStorage.setItem('tok', tok);
-    });
+    if (state != "1") {
+        proxy?.$http.common.baiduToken({}).then((res: any) => {
+            let tok = res.token;
+            localStorage.setItem('tok', tok);
+        });
+    }
 }
-let state = localStorage.getItem('ttsState');
 if (state == "1") {
     proxy?.$http.common.baiduToken({}).then((res: any) => {
         let tok = res.token;

+ 60 - 0
src/views/set/index.vue

@@ -34,6 +34,19 @@
           </div>
         </div>
       </div>
+      <div class="li">
+        <div class="liBox">
+          <div class="pic">
+            <div style="color: #ffffff;">
+              <div @click="getText(1)" style="margin-bottom: 15px;">系统TTS</div>
+              <div @click="getText(2)">百度TTS</div>
+            </div>
+          </div>
+          <div class="name">
+            测试音频
+          </div>
+        </div>
+      </div>
       <div class="li" @click="getLogout">
         <div class="liBox">
           <div class="pic"><img src="@/assets/images/common/set2.png"></div>
@@ -158,6 +171,53 @@ const getTTS = () => {
   }, 1000)
 };
 
+/**
+ * 测试音频
+*/
+const getText = (type: any) => {
+  if (type == 1) {
+    let speech = new Speech();
+    if (speech.hasBrowserSupport()) {
+      speech
+        .init({
+          volume: 1, // 音量
+          lang: 'zh-CN', // 语言
+          rate: 1.5, // 语速
+          pitch: 1.0, // 音调
+          splitSentences: true, // 在句子结束时暂停
+          listeners: {
+            // 事件
+            onvoiceschanged: (voices: any) => {
+              // console.log('事件声音已更改', voices);
+            }
+          }
+        })
+        .then(() => {
+          speech.speak({ text: "测试系统TTS" }).then(() => {
+            speech.cancel(); //播放结束后调用
+          });
+        });
+    } else {
+      proxy?.$modal.msgWarning(`不支持TTS`);
+    }
+  }
+  if (type == 2) {
+    let baiduTok = localStorage.getItem('tok');
+    if (!baiduTok) {
+      proxy?.$http.common.baiduToken({}).then((res: any) => {
+        let tok = res.token;
+        localStorage.setItem('tok', tok);
+        let url = `https://tsn.baidu.com/text2audio?tex=${encodeURI('测试百度TTS')}&tok=${tok}&cuid=baike&lan=ZH&ctp=1&vol=15&rate=32&per=0&spd=7&pit=4`;
+        let myAudio = new Audio(url);
+        myAudio.play();
+      });
+    } else {
+      let url = `https://tsn.baidu.com/text2audio?tex=${encodeURI('测试百度TTS')}&tok=${baiduTok}&cuid=baike&lan=ZH&ctp=1&vol=15&rate=32&per=0&spd=7&pit=4`;
+      let myAudio = new Audio(url);
+      myAudio.play();
+    }
+  }
+};
 
 
 /**