update:修改sql文件,删去测试文件

This commit is contained in:
3030332422
2026-07-01 15:02:26 +08:00
parent e6c2fac7ec
commit bc0ffd1bd3
4 changed files with 21 additions and 98 deletions
@@ -1,9 +0,0 @@
-- Add language configuration for local FunASR ASR.
UPDATE `ai_model_provider`
SET `fields` = '[{"key":"model_dir","label":"模型目录","type":"string"},{"key":"output_dir","label":"输出目录","type":"string"},{"key":"language","label":"识别语言","type":"string","default":"auto"}]'
WHERE `id` = 'SYSTEM_ASR_FunASR';
UPDATE `ai_model_config`
SET `config_json` = JSON_SET(`config_json`, '$.language', 'auto')
WHERE `id` = 'ASR_FunASR'
AND JSON_EXTRACT(`config_json`, '$.language') IS NULL;
@@ -0,0 +1,19 @@
-- Add language configuration for local FunASR ASR.
UPDATE `ai_model_provider`
SET `fields` = '[{"key":"model_dir","label":"模型目录","type":"string"},{"key":"output_dir","label":"输出目录","type":"string"},{"key":"language","label":"识别语言","type":"string","default":"auto"}]'
WHERE `id` = 'SYSTEM_ASR_FunASR';
UPDATE `ai_model_config`
SET `config_json` = JSON_SET(`config_json`, '$.language', 'auto')
WHERE `id` = 'ASR_FunASR'
AND JSON_EXTRACT(`config_json`, '$.language') IS NULL;
-- Update the FunASR local model configuration description to mention the language option.
UPDATE `ai_model_config`
SET `remark` = 'FunASR本地模型配置说明:
1. 需要下载模型文件到xiaozhi-server/models/SenseVoiceSmall目录
2. 支持中日韩粤语音识别
3. 本地推理,无需网络连接
4. 待识别文件保存在tmp/目录
5. “识别语言”字段控制识别语种:auto = 自动检测;如需限定只识别中文可设为 zh(en=英语、ja=日语、ko=韩语、yue=粤语)。'
WHERE `id` = 'ASR_FunASR';
@@ -691,9 +691,9 @@ databaseChangeLog:
encoding: utf8
path: classpath:db/changelog/202606261131.sql
- changeSet:
id: 202606301405
id: 202607011405
author: LauraGPT
changes:
- sqlFile:
encoding: utf8
path: classpath:db/changelog/202606301405.sql
path: classpath:db/changelog/202607011405.sql
@@ -1,87 +0,0 @@
import asyncio
import importlib
import sys
import types
from pathlib import Path
def install_fakes(monkeypatch):
class Logger:
def bind(self, **_kwargs):
return self
def debug(self, *_args, **_kwargs):
pass
def error(self, *_args, **_kwargs):
pass
def info(self, *_args, **_kwargs):
pass
def warning(self, *_args, **_kwargs):
pass
logger_module = types.ModuleType("config.logger")
logger_module.setup_logging = lambda: Logger()
config_module = types.ModuleType("config")
config_module.__path__ = []
monkeypatch.setitem(sys.modules, "config", config_module)
monkeypatch.setitem(sys.modules, "config.logger", logger_module)
psutil_module = types.ModuleType("psutil")
psutil_module.virtual_memory = lambda: types.SimpleNamespace(total=4 * 1024 * 1024 * 1024)
monkeypatch.setitem(sys.modules, "psutil", psutil_module)
class Base:
pass
base_module = types.ModuleType("core.providers.asr.base")
base_module.ASRProviderBase = Base
monkeypatch.setitem(sys.modules, "core.providers.asr.base", base_module)
dto_module = types.ModuleType("core.providers.asr.dto.dto")
dto_module.InterfaceType = types.SimpleNamespace(LOCAL="local")
monkeypatch.setitem(sys.modules, "core.providers.asr.dto.dto", dto_module)
utils_module = types.ModuleType("core.providers.asr.utils")
utils_module.lang_tag_filter = lambda text: {"content": text}
monkeypatch.setitem(sys.modules, "core.providers.asr.utils", utils_module)
class FakeAutoModel:
last_instance = None
def __init__(self, **_kwargs):
self.generate_kwargs = None
FakeAutoModel.last_instance = self
def generate(self, **kwargs):
self.generate_kwargs = kwargs
return [{"text": "你好"}]
funasr_module = types.ModuleType("funasr")
funasr_module.AutoModel = FakeAutoModel
monkeypatch.setitem(sys.modules, "funasr", funasr_module)
return FakeAutoModel
def test_fun_local_passes_configured_language_to_funasr_generate(tmp_path, monkeypatch):
server_root = Path(__file__).resolve().parents[1]
monkeypatch.syspath_prepend(str(server_root))
fake_model = install_fakes(monkeypatch)
monkeypatch.delitem(sys.modules, "core.providers.asr.fun_local", raising=False)
module = importlib.import_module("core.providers.asr.fun_local")
provider = module.ASRProvider(
{"model_dir": "models/SenseVoiceSmall", "output_dir": str(tmp_path), "language": "zh"},
delete_audio_file=False,
)
artifacts = types.SimpleNamespace(pcm_bytes=b"\0\0", file_path=str(tmp_path / "audio.wav"))
text, audio_path = asyncio.run(
provider.speech_to_text([], "session-1", audio_format="pcm", artifacts=artifacts)
)
assert text == {"content": "你好"}
assert audio_path == artifacts.file_path
assert fake_model.last_instance.generate_kwargs["language"] == "zh"