ustwo-api / config.yaml
asdfasdfqrqwer's picture
Deploy from GitHub 2026-04-23T03:56:31Z
c857b85
Raw
History Blame Contribute Delete
2.44 kB
# UsTwo Project Configuration
project:
name: "UsTwo"
version: "0.1.0"
paths:
data_dir: "data"
samples_dir: "data/samples"
models_dir: "data/models"
output_dir: "data"
# Stage 1: Speaker Diarization + ASR
stage1:
output_path: "data/stage1_output.json"
segments_dir: "data/segments"
preprocessing:
target_sample_rate: 16000
max_duration_sec: 300
min_duration_sec: 3
target_peak: 0.95 # peak normalization β€” handles volume differences across devices
diarization:
model: "pyannote/speaker-diarization-3.1"
num_speakers: 2
merge_gap_sec: 0.15
asr:
model: "large-v3-turbo"
compute_type: "int8"
language: null # null = auto-detect
batch_size: 16
alignment:
enabled: true
language_id:
enabled: true
# SenseVoice disabled β€” Whisper language + text heuristic μ‚¬μš©
# emotion2vec finetuning μ‹€νŒ¨ μ‹œ SenseVoice 감정 힌트 ν™œμš© μ˜ˆμ •
# model: "FunAudioLLM/SenseVoiceSmall"
# Stage 2: Audio Emotion + Text Emotion
stage2:
input_path: "data/stage1_output.json"
output_path: "data/stage2_output.json"
audio_emotion:
model: "iic/emotion2vec_plus_base"
lora_onnx_path: "data/models/lora_emotion2vec_7class/model.onnx"
finetuned_checkpoint: null # legacy, use lora_onnx_path instead
text_emotion:
korean_model: "searle-j/kote_for_easygoing_people"
korean_lora_onnx_path: "data/models/lora_kcelectra_7class/model.onnx"
korean_lora_tokenizer: "data/models/lora_kcelectra_7class/best_model"
english_model: "j-hartmann/emotion-english-distilroberta-base"
fusion:
mode: "emotion_specific" # "emotion_specific" (per-class grid-search optimized) or "fixed" (60/40)
audio_weight: 0.6 # fallback for mode="fixed"
text_weight: 0.4
# Stage 3: Character Reaction + Garden + Recap
stage3:
input_path: "data/stage2_output.json"
output_path: "data/stage3_output.json"
recap:
llm_provider: "anthropic" # anthropic | openai
model: "claude-sonnet-4-20250514"
max_tokens: 500
garden:
growth_per_call: 5
max_level: 5
# Stage 4: FastAPI Server
stage4:
input_path: "data/stage3_output.json"
host: "0.0.0.0"
port: 8000
max_upload_size_mb: 50
allowed_extensions: [".wav", ".mp3", ".m4a", ".ogg"]
# API Keys (ν™˜κ²½ λ³€μˆ˜μ—μ„œ λ‘œλ“œ β€” .env 파일 μ‚¬μš©)
api: {}
# Logging
logging:
level: "INFO"
format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"