Files
xiaoxia-saas/packages/shared/config.py
T
用户CI Test 2cafaa9477
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 12s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1622h21m24s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1622h21m25s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1622h21m25s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1622h21m25s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1622h21m28s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1622h21m28s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
fix: CosyVoice 音色名 v3 后缀修复(418错误)
根因:cosyvoice-v3.5-plus 模型要求系统音色使用 _v3 后缀命名
(如 longxiaochun_v3),旧名 longxiaochun 导致引擎返回 418 音色不支持。

修复:
- config.py: 默认音色 longxiaochun → longxiaochun_v3
- preset_voices.py: 8个预置音色全部加 _v3 后缀
- cosyvoice_service.py: docstring 示例更新
- 相关测试文件 voice_id 全部同步更新
- 188个单元测试全绿
2026-07-11 01:07:06 +08:00

68 lines
2.0 KiB
Python
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Shared settings for API and Worker services."""
import os
from typing import Optional
from pydantic_settings import BaseSettings, SettingsConfigDict
class SharedSettings(BaseSettings):
"""Settings shared between API and Worker services."""
# Database
database_url: str = "postgresql+psycopg://postgres:postgres@localhost:5432/xiaoxia_saas"
database_pool_size: int = 20
database_max_overflow: int = 40
database_pool_timeout: int = 30
database_pool_recycle: int = 3600
# Redis
redis_url: str = "redis://localhost:6379/0"
# Celery
celery_broker_url: str = "redis://localhost:6379/0"
celery_result_backend: str = "redis://localhost:6379/1"
# OSS Aliyun
oss_endpoint: str = "oss-cn-hangzhou.aliiyuncs.com"
oss_access_key_id: str = ""
oss_access_key_secret: str = ""
oss_bucket_name: str = "xiaoxia-autocut"
# CosyVoice (阿里云百炼语音合成)
cosyvoice_api_key: str = ""
cosyvoice_base_url: str = "https://dashscope.aliyuncs.com/api/v1"
cosyvoice_model: str = "cosyvoice-v3.5-plus"
cosyvoice_voice: str = "longxiaochun_v3" # 默认音色
cosyvoice_sample_rate: int = 22050
cosyvoice_format: str = "mp3" # 输出格式:mp3/wav/pcm
# 音色克隆模型名(固定为 voice-enrollment)
cosyvoice_clone_model: str = "voice-enrollment"
# Environment
environment: str = "development"
auto_create_schema: bool = False
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
extra="ignore",
)
_settings: Optional[SharedSettings] = None
def get_shared_settings() -> SharedSettings:
"""Get shared settings instance (global singleton)."""
global _settings
if _settings is None:
env = os.getenv("APP_ENV", "development")
env_file = f".env.{env}" if env != "development" else ".env"
if os.path.exists(env_file):
_settings = SharedSettings(_env_file=env_file)
else:
_settings = SharedSettings()
return _settings