python=3.6
use music21 6.3.0 from PyPi(http://web.mit.edu/music21/doc/)
本项目的生成后处理环节接入了 OrcaRouter
(兼容 OpenAI 协议的多服务商 API 网关):orca_assist.py 用大模型对马尔可夫链生成的
乐句写中文分析,并对多条候选旋律按乐句自然度打分排序,与 eval.py 中的统计指标
(Spearman 相关、重复模式计数)互为补充。
按官方快速开始,接入只需把
OpenAI SDK 的 base_url 指向网关这一行改动。provider 配置项集中在
orcarouter.config.json(orca_assist.py 启动时读取):
{
"provider": "orcarouter",
"base_url": "https://api.orcarouter.ai/v1",
"api_key_env": "ORCAROUTER_API_KEY",
"model": "orcarouter/auto"
}pip install openai
export ORCAROUTER_API_KEY="sk-orca-..." # 在 https://www.orcarouter.ai 控制台创建
# 环境变量可覆盖配置文件中的同名项:
export ORCAROUTER_BASE_URL="https://api.orcarouter.ai/v1" # 关键一行:base_url 指向 OrcaRouter
export ORCAROUTER_MODEL="orcarouter/auto" # 自动路由;或 openai/gpt-4o-mini、anthropic/claude-sonnet-4.6 等密钥只走环境变量,不写进入库的配置文件;.env.example 给了本地 .env 的样例
(.env 已被 gitignore)。注意 orca_assist.py 依赖 OpenAI SDK,需要 Python >= 3.7;
核心生成代码仍兼容 3.6。
# 分析一条生成乐句,输出可放进报告的中文分析
python orca_assist.py analyze \
--notes G4,B-4,A4,B-4,G4,D4,A4,F#4 \
--intervals quarter,eighth,eighth,quarter,eighth,eighth,quarter,eighth
# 对多条候选乐句排序(candidates.txt 每行:音名表|时值表)
python orca_assist.py rank --file candidates.txt本仓库条目收录于 Built with OrcaRouter 目录。