From 2cc1eb1abc116cae9018669aa4e5abc8f09b8aa8 Mon Sep 17 00:00:00 2001 From: Ruochen <1051989940@qq.com> Date: Tue, 8 Jul 2025 21:55:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=AE=9E=E7=8E=B0=E4=BA=86speech=5Fto=5Ft?= =?UTF-8?q?ext=E7=B1=BB=E5=9E=8B=E7=9A=84=E4=BE=9B=E5=BA=94=E5=95=86?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E6=80=A7=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- astrbot/dashboard/routes/config.py | 24 ++++++++++++++++++++++++ samples/stt_health_check.wav | Bin 0 -> 153678 bytes 2 files changed, 24 insertions(+) create mode 100644 samples/stt_health_check.wav diff --git a/astrbot/dashboard/routes/config.py b/astrbot/dashboard/routes/config.py index 46127a87..55a0cf96 100644 --- a/astrbot/dashboard/routes/config.py +++ b/astrbot/dashboard/routes/config.py @@ -1,9 +1,11 @@ import typing import traceback +import os from .route import Route, Response, RouteContext from astrbot.core.provider.entities import ProviderType from quart import request from astrbot.core.config.default import CONFIG_METADATA_2, DEFAULT_VALUE_MAP +from astrbot.core.utils.astrbot_path import get_astrbot_path from astrbot.core.config.astrbot_config import AstrBotConfig from astrbot.core.core_lifecycle import AstrBotCoreLifecycle from astrbot.core.platform.register import platform_registry @@ -270,6 +272,28 @@ class ConfigRoute(Route): logger.error(f"Error testing TTS provider {provider_name}: {e}", exc_info=True) status_info["status"] = "unavailable" status_info["error"] = f"TTS test failed: {str(e)}" + elif provider_capability_type == ProviderType.SPEECH_TO_TEXT: + try: + logger.debug(f"Sending health check audio to provider: {status_info['name']}") + sample_audio_path = os.path.join(get_astrbot_path(), "samples", "stt_health_check.wav") + if not os.path.exists(sample_audio_path): + status_info["status"] = "unavailable" + status_info["error"] = "STT test failed: sample audio file not found." + logger.warning(f"STT test for {status_info['name']} failed: sample audio file not found at {sample_audio_path}") + else: + text_result = await provider.get_text(sample_audio_path) + if isinstance(text_result, str) and text_result: + status_info["status"] = "available" + snippet = text_result[:70] + "..." if len(text_result) > 70 else text_result + logger.info(f"Provider {status_info['name']} (ID: {status_info['id']}) is available. Response snippet: '{snippet}'") + else: + status_info["status"] = "unavailable" + status_info["error"] = f"STT test failed: unexpected result type {type(text_result)}" + logger.warning(f"STT test for {status_info['name']} failed: unexpected result type {type(text_result)}") + except Exception as e: + logger.error(f"Error testing STT provider {provider_name}: {e}", exc_info=True) + status_info["status"] = "unavailable" + status_info["error"] = f"STT test failed: {str(e)}" else: logger.debug(f"Provider {provider_name} is not a Chat Completion or Embedding provider. Marking as available without test. Meta: {meta}") status_info["status"] = "available" diff --git a/samples/stt_health_check.wav b/samples/stt_health_check.wav new file mode 100644 index 0000000000000000000000000000000000000000..2c6182c79ca4d0ccaf3cea98d051687ff1381d9c GIT binary patch literal 153678 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 z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOb{y z2oM1xKm>>Y5g-CYfCvx)B0vO)01+SpM1Tko0U|&IhyW2F0z`la5CI}U1c(3;AOipY G68K-llRu{b literal 0 HcmV?d00001