Build latest book artifacts / build (push) Canceled after 0s
dependency resolution / resolve (3.11) (push) Canceled after 0s
dependency resolution / resolve (3.13) (push) Canceled after 0s
deploy-pages / build (push) Canceled after 0s
deploy-pages / deploy (push) Canceled after 0s
i18n consistency check / check (push) Canceled after 0s
provider adoption tests / test (chapter2/context-compression) (push) Canceled after 0s
provider adoption tests / test (chapter2/prompt-injection) (push) Canceled after 0s
provider adoption tests / test (chapter2/system-hint) (push) Canceled after 0s
provider adoption tests / test (chapter3/log-sanitization) (push) Canceled after 0s
web-search-agent tests / test (push) Canceled after 0s
web-search-agent tests / agentbook (push) Canceled after 0s
280 lines
14 KiB
JSON
280 lines
14 KiB
JSON
{
|
|
"schema_version": "2.0",
|
|
"experiment": "7-6",
|
|
"generated_at_utc": "2026-07-30T04:32:04.726815+00:00",
|
|
"command_scope": {
|
|
"providers": [
|
|
"fishaudio",
|
|
"openai"
|
|
],
|
|
"configurations": [
|
|
{
|
|
"name": "tts1-alloy-1.0",
|
|
"provider": "openai",
|
|
"model": "tts-1",
|
|
"voice": "alloy",
|
|
"speed": 1.0
|
|
},
|
|
{
|
|
"name": "fishaudio-s1-clone",
|
|
"provider": "fishaudio",
|
|
"model": "s1",
|
|
"voice": "6df3c1e14c9440e9ac978556536bf116",
|
|
"speed": 1.0
|
|
}
|
|
],
|
|
"corpus_ids": [
|
|
"num",
|
|
"polyphone",
|
|
"long",
|
|
"emotion",
|
|
"sad",
|
|
"question"
|
|
],
|
|
"expected_records": 12,
|
|
"direct_audio_judge": true,
|
|
"optional_asr_enabled": false
|
|
},
|
|
"reference_audio": {
|
|
"path": "../../../../chapter9/controllable-tts/reference_audio/neutral_normal_formal.mp3",
|
|
"sha256": "2cf4c64bb8222399ab54c63cc41049c572ea5f1b819ffdcbc496014daae004c0"
|
|
},
|
|
"rubric_dimensions": [
|
|
"准确性",
|
|
"自然度",
|
|
"情感表达",
|
|
"音色一致性"
|
|
],
|
|
"completion": {
|
|
"successful_records": 0,
|
|
"direct_audio_four_dimension_records": 0,
|
|
"expected_records": 12,
|
|
"all_cells_complete": false,
|
|
"multi_provider": true,
|
|
"manuscript_core_complete": false
|
|
},
|
|
"records": [
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "num",
|
|
"challenge": "数字/百分比/日期",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "polyphone",
|
|
"challenge": "多音字(行/长/重/还)",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "long",
|
|
"challenge": "长句/新闻文体",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "emotion",
|
|
"challenge": "专有名词 + 感叹情感",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "sad",
|
|
"challenge": "悲伤情感/低语速低语调",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"sample": "question",
|
|
"challenge": "对话文体/疑问句升调",
|
|
"provider": "openai",
|
|
"ok": false,
|
|
"error": "RateLimitError: Error code: 429 - {'error': {'message': 'You have no credits remaining. Add credits to continue using the API at https://platform.openai.com/settings/organization/billing/.', 'type': 'insufficient_quota', 'param': None, 'code': 'credit_balance_exhausted'}}",
|
|
"failed_stage": "synthesis"
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "num",
|
|
"challenge": "数字/百分比/日期",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__num.mp3",
|
|
"audio_sha256": "15936f94727239ab9aadbc3814d70375fad93c89efd9b8562605d62790860898",
|
|
"audio_bytes": 99055,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "polyphone",
|
|
"challenge": "多音字(行/长/重/还)",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__polyphone.mp3",
|
|
"audio_sha256": "4f8c45b00455a9dbda4b1feebbda9f09de50ec9458d367ea701798ec05972a88",
|
|
"audio_bytes": 97801,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "long",
|
|
"challenge": "长句/新闻文体",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__long.mp3",
|
|
"audio_sha256": "d0947fc60450d4668e75376eb56a714d80a99e3148ee76219c59133d7364eb12",
|
|
"audio_bytes": 203127,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "emotion",
|
|
"challenge": "专有名词 + 感叹情感",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__emotion.mp3",
|
|
"audio_sha256": "4eca80508f1d6f7a5b50b87de0e329e700097fc01a092e38e47fb70d7dc3675a",
|
|
"audio_bytes": 102817,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "sad",
|
|
"challenge": "悲伤情感/低语速低语调",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__sad.mp3",
|
|
"audio_sha256": "295161d6fc7a169fc28ebd3fd07e2acaac6fca2f0cc24db6a51c3dc431310cf9",
|
|
"audio_bytes": 80665,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"sample": "question",
|
|
"challenge": "对话文体/疑问句升调",
|
|
"provider": "fishaudio",
|
|
"ok": false,
|
|
"error": "JudgeRouteError: OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}",
|
|
"audio_path": "fishaudio-s1-clone__question.mp3",
|
|
"audio_sha256": "c48dfadf2f1eaa6b01a924e1de5ebf728cfbfad9df14234a70629e0e5890800a",
|
|
"audio_bytes": 75231,
|
|
"failed_stage": "multimodal_judge",
|
|
"judge_provider_attempts": [
|
|
{
|
|
"provider": "Google Gemini API",
|
|
"model": "gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "Gemini HTTP 400: {\n \"error\": {\n \"code\": 400,\n \"message\": \"API key not valid. Please pass a valid API key.\",\n \"status\": \"INVALID_ARGUMENT\",\n \"details\": [\n {\n \"@type\": \"type.googleapis.com/google.rpc.ErrorInfo\",\n \"reason\": \"API_KEY_INVALID\",\n \"domain\": \"googleapis.com\",\n \"metadata\": {\n \"service\": \"generativelanguage.googleapis.com\"\n }\n },\n {\n \"@type\": \"type.googleapis.com/google.rpc.LocalizedMessage\",\n \"locale\": \"en-US\",\n \"message\": \"API key not valid. Please pass a valid API key.\"\n }\n ]\n }\n}\n"
|
|
},
|
|
{
|
|
"provider": "OpenRouter audio route",
|
|
"model": "google/gemini-3.5-flash",
|
|
"status": "unavailable",
|
|
"error": "OpenRouter audio HTTP 401: {\"error\":{\"message\":\"User not found.\",\"code\":401}}"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"summary": [
|
|
{
|
|
"config": "tts1-alloy-1.0",
|
|
"n_ok": 0,
|
|
"n": 6
|
|
},
|
|
{
|
|
"config": "fishaudio-s1-clone",
|
|
"n_ok": 0,
|
|
"n": 6
|
|
}
|
|
]
|
|
} |