myagent-ai 1.16.9 → 1.16.11
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/package.json +1 -1
- package/web/api_server.py +38 -13
package/package.json
CHANGED
package/web/api_server.py
CHANGED
|
@@ -1093,21 +1093,18 @@ class ApiServer:
|
|
|
1093
1093
|
|
|
1094
1094
|
# ── 尝试 faster-whisper ──
|
|
1095
1095
|
try:
|
|
1096
|
-
|
|
1097
|
-
import warnings
|
|
1098
|
-
warnings.filterwarnings("ignore", message=".*HF_TOKEN.*", category=UserWarning)
|
|
1099
|
-
warnings.filterwarnings("ignore", message=".*huggingface_hub.*token.*", category=UserWarning)
|
|
1100
|
-
warnings.filterwarnings("ignore", message=".*ffmpeg or avconv.*", category=RuntimeWarning)
|
|
1101
|
-
# 抑制 HF Hub telemetry 和进度条
|
|
1102
|
-
os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
|
|
1103
|
-
os.environ.setdefault("HF_HUB_DISABLE_PROGRESS_BARS", "1")
|
|
1104
|
-
os.environ.setdefault("TRANSFORMERS_VERBOSITY", "error")
|
|
1105
|
-
|
|
1106
|
-
from faster_whisper import WhisperModel
|
|
1107
|
-
whisper_model = getattr(self, '_whisper_model', None)
|
|
1096
|
+
whisper_model = self._whisper_model
|
|
1108
1097
|
if whisper_model is None:
|
|
1098
|
+
# 预加载未完成或未安装,尝试懒加载
|
|
1099
|
+
import warnings as _w
|
|
1100
|
+
_w.filterwarnings("ignore", message=".*HF_TOKEN.*", category=UserWarning)
|
|
1101
|
+
_w.filterwarnings("ignore", message=".*huggingface_hub.*token.*", category=UserWarning)
|
|
1102
|
+
_w.filterwarnings("ignore", message=".*ffmpeg or avconv.*", category=RuntimeWarning)
|
|
1103
|
+
os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
|
|
1104
|
+
os.environ.setdefault("HF_HUB_DISABLE_PROGRESS_BARS", "1")
|
|
1105
|
+
os.environ.setdefault("TRANSFORMERS_VERBOSITY", "error")
|
|
1106
|
+
from faster_whisper import WhisperModel
|
|
1109
1107
|
model_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'models', 'whisper')
|
|
1110
|
-
# 使用 tiny 模型(最轻量,~39MB),CPU int8 量化
|
|
1111
1108
|
self._whisper_model = WhisperModel("tiny", device="cpu", compute_type="int8",
|
|
1112
1109
|
download_root=model_dir)
|
|
1113
1110
|
whisper_model = self._whisper_model
|
|
@@ -1143,6 +1140,8 @@ class ApiServer:
|
|
|
1143
1140
|
|
|
1144
1141
|
wav_buf.seek(0)
|
|
1145
1142
|
segments, info = whisper_model.transcribe(wav_buf, beam_size=1,
|
|
1143
|
+
language="zh",
|
|
1144
|
+
initial_prompt="以下是普通话的句子",
|
|
1146
1145
|
vad_filter=True, vad_parameters=dict(
|
|
1147
1146
|
min_silence_duration_ms=300))
|
|
1148
1147
|
text = "".join(seg.text for seg in segments).strip()
|
|
@@ -1191,6 +1190,8 @@ class ApiServer:
|
|
|
1191
1190
|
return web.json_response({"error": "音频格式不支持"}, status=400)
|
|
1192
1191
|
wav_buf.seek(0)
|
|
1193
1192
|
segments, info = whisper_model.transcribe(wav_buf, beam_size=1,
|
|
1193
|
+
language="zh",
|
|
1194
|
+
initial_prompt="以下是普通话的句子",
|
|
1194
1195
|
vad_filter=True, vad_parameters=dict(
|
|
1195
1196
|
min_silence_duration_ms=300))
|
|
1196
1197
|
text = "".join(seg.text for seg in segments).strip()
|
|
@@ -5710,6 +5711,30 @@ class ApiServer:
|
|
|
5710
5711
|
# 加载禁用技能列表
|
|
5711
5712
|
self._load_disabled_skills()
|
|
5712
5713
|
|
|
5714
|
+
# [v1.16.10] 后台预加载 STT 模型,避免首次语音识别时等待数秒
|
|
5715
|
+
# 在后台线程中加载,不阻塞服务启动
|
|
5716
|
+
try:
|
|
5717
|
+
import threading
|
|
5718
|
+
def _preload_stt():
|
|
5719
|
+
try:
|
|
5720
|
+
import warnings
|
|
5721
|
+
warnings.filterwarnings("ignore")
|
|
5722
|
+
os.environ.setdefault("HF_HUB_DISABLE_TELEMETRY", "1")
|
|
5723
|
+
os.environ.setdefault("HF_HUB_DISABLE_PROGRESS_BARS", "1")
|
|
5724
|
+
os.environ.setdefault("TRANSFORMERS_VERBOSITY", "error")
|
|
5725
|
+
from faster_whisper import WhisperModel
|
|
5726
|
+
model_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), 'models', 'whisper')
|
|
5727
|
+
self._whisper_model = WhisperModel("tiny", device="cpu", compute_type="int8",
|
|
5728
|
+
download_root=model_dir)
|
|
5729
|
+
logger.info("STT faster-whisper 模型预加载完成")
|
|
5730
|
+
except ImportError:
|
|
5731
|
+
logger.debug("faster-whisper 未安装,跳过 STT 预加载")
|
|
5732
|
+
except Exception as e:
|
|
5733
|
+
logger.debug(f"STT 模型预加载失败(不影响使用): {e}")
|
|
5734
|
+
threading.Thread(target=_preload_stt, daemon=True).start()
|
|
5735
|
+
except Exception:
|
|
5736
|
+
pass
|
|
5737
|
+
|
|
5713
5738
|
# 恢复被中断的任务:自动重新投递群聊任务
|
|
5714
5739
|
try:
|
|
5715
5740
|
tp = self._get_task_persistence()
|