From e4110162bf3c6f6f77c4e53d451203fc6dd1ee36 Mon Sep 17 00:00:00 2001 From: ikaros <327209194@qq.com> Date: Thu, 28 Mar 2024 00:15:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=84=9A=E6=9C=AC=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...345\234\260WS\346\234\215\345\212\241\347\253\257.js" | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git "a/Scripts/\347\233\264\346\222\255ws\350\204\232\346\234\254/\347\233\264\346\222\255\345\274\271\345\271\225\347\233\221\345\220\254 \350\275\254\345\217\221\350\207\263\346\234\254\345\234\260WS\346\234\215\345\212\241\347\253\257.js" "b/Scripts/\347\233\264\346\222\255ws\350\204\232\346\234\254/\347\233\264\346\222\255\345\274\271\345\271\225\347\233\221\345\220\254 \350\275\254\345\217\221\350\207\263\346\234\254\345\234\260WS\346\234\215\345\212\241\347\253\257.js" index 60035806..49ba4fac 100644 --- "a/Scripts/\347\233\264\346\222\255ws\350\204\232\346\234\254/\347\233\264\346\222\255\345\274\271\345\271\225\347\233\221\345\220\254 \350\275\254\345\217\221\350\207\263\346\234\254\345\234\260WS\346\234\215\345\212\241\347\253\257.js" +++ "b/Scripts/\347\233\264\346\222\255ws\350\204\232\346\234\254/\347\233\264\346\222\255\345\274\271\345\271\225\347\233\221\345\220\254 \350\275\254\345\217\221\350\207\263\346\234\254\345\234\260WS\346\234\215\345\212\241\347\253\257.js" @@ -1,7 +1,7 @@ // ==UserScript== // @name 直播弹幕监听 转发至本地WS服务端 // @namespace http://tampermonkey.net/ -// @version 0.1 +// @version 0.5 // @description 观察指定 DOM 节点的变化以将数据发送到连接的WebSocket服务端 // @description Github:https://github.com/Ikaros-521/AI-Vtuber/tree/main/Scripts/%E7%9B%B4%E6%92%ADws%E8%84%9A%E6%9C%AC // @author Ikaros @@ -37,7 +37,12 @@ console.log("ws连接打开"); // 向服务器发送一条消息 - socket.send("ws连接成功"); + const data = { + type: "info", + content: "ws连接成功", + }; + console.log(data); + socket.send(JSON.stringify(data)); }); // 当收到消息时触发 From e95fb63402a8e0a406bea6202ddfbf0c31d44452 Mon Sep 17 00:00:00 2001 From: ikaros <327209194@qq.com> Date: Thu, 28 Mar 2024 00:16:42 +0800 Subject: [PATCH 2/2] =?UTF-8?q?pygame=E9=9F=B3=E9=A2=91=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=A2=9E=E5=8A=A0=E5=BC=82=E5=B8=B8=E6=8D=95?= =?UTF-8?q?=E8=8E=B7=EF=BC=8C=E7=BB=99=E4=BA=88=E7=94=A8=E6=88=B7=E4=B8=80?= =?UTF-8?q?=E5=AE=9A=E6=8A=A5=E9=94=99=E9=97=AE=E9=A2=98=E7=9A=84=E5=8E=9F?= =?UTF-8?q?=E5=9B=A0=E7=8C=9C=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/audio.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/utils/audio.py b/utils/audio.py index ca4b5397..6fc2bc4a 100644 --- a/utils/audio.py +++ b/utils/audio.py @@ -1036,12 +1036,17 @@ async def only_play_audio(self): Audio.audio_player.play(data_json) else: logging.debug(f"voice_tmp_path={voice_tmp_path}") - # 使用pygame播放音频 - Audio.mixer_normal.music.load(voice_tmp_path) - Audio.mixer_normal.music.play() - while Audio.mixer_normal.music.get_busy(): - pygame.time.Clock().tick(10) - Audio.mixer_normal.music.stop() + try: + # 使用pygame播放音频 + Audio.mixer_normal.music.load(voice_tmp_path) + Audio.mixer_normal.music.play() + while Audio.mixer_normal.music.get_busy(): + pygame.time.Clock().tick(10) + Audio.mixer_normal.music.stop() + except pygame.error as e: + logging.error(traceback.format_exc()) + # 如果发生 pygame.error 异常,则捕获并处理它 + logging.error(f"无法加载音频文件:{voice_tmp_path}。请确保文件格式正确且文件未损坏。可能原因是TTS配置有误或者TTS服务端有问题,可以去服务端排查一下问题") # 是否启用字幕输出 #if captions_config["enable"]: @@ -1139,12 +1144,18 @@ async def random_speed_and_play(audio_path): } Audio.audio_player.play(data_json) else: - # 使用pygame播放音频 - Audio.mixer_copywriting.music.load(audio_path) - Audio.mixer_copywriting.music.play() - while Audio.mixer_copywriting.music.get_busy(): - pygame.time.Clock().tick(10) - Audio.mixer_copywriting.music.stop() + try: + # 使用pygame播放音频 + Audio.mixer_copywriting.music.load(audio_path) + Audio.mixer_copywriting.music.play() + while Audio.mixer_copywriting.music.get_busy(): + pygame.time.Clock().tick(10) + Audio.mixer_copywriting.music.stop() + except pygame.error as e: + logging.error(traceback.format_exc()) + # 如果发生 pygame.error 异常,则捕获并处理它 + logging.error(f"无法加载音频文件:{voice_tmp_path}。请确保文件格式正确且文件未损坏。可能原因是TTS配置有误或者TTS服务端有问题,可以去服务端排查一下问题") + # 添加延时,暂停执行n秒钟 await asyncio.sleep(float(self.config.get("copywriting", "audio_interval")))