Pas 1 (BLOCKING) din Discord voice-to-voice test plan. Sweet spot empiric pe i7-6700T: faster-whisper small int8 @ cpu_threads=4 → p50 2.25s, p95 2.64s, mean RTF 0.46. Curba HT: 2t=3.25s → 4t=2.25s (sweet) → 6t=2.79s (regres +24% prin contention). tiny respinge — halucinează RO. - tools/voice_bench.py: harness benchmark cu 8 sample-uri RO sintetizate via Supertonic API, măsoară p50/p95/RTF pentru small+tiny pe N threads. - tools/voice_bench_results*.json: raw output 3 pass-uri (threads 2/4/6). - tasks/voice-bench-results*.md: summary markdown per pass. - tasks/lessons.md: HT contention rule — cpu_threads = physical cores, rulează sweep nu single-point pentru ML inference compute-bound. Budget updated în plan-uri: STT p50 1.5s → 2.5s, perceived 4s → 5s p50. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
184 lines
5.6 KiB
JSON
184 lines
5.6 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"timestamp_utc": "2026-05-27T12:24:48Z",
|
|
"decision": "FALLBACK_TINY",
|
|
"rationale": "small.p50=2.25s >= budget; tiny.p50=0.48s < budget 1.50s. Document fallback la 'tiny' în plan (accuracy mai slabă, latency OK).",
|
|
"budget_s": 1.5,
|
|
"trials_per_sample": 3,
|
|
"models": {
|
|
"small": {
|
|
"p50_s": 2.249,
|
|
"p95_s": 2.532,
|
|
"mean_rtf": 0.54,
|
|
"load_time_s": 1.339,
|
|
"cpu_threads": 4,
|
|
"samples": [
|
|
{
|
|
"name": "short",
|
|
"text_in": "Salut, ce mai faci?",
|
|
"text_out": "Salut ce mai faci!",
|
|
"audio_duration_s": 1.881,
|
|
"latencies_s": [
|
|
2.068,
|
|
1.951,
|
|
1.947
|
|
],
|
|
"median_latency_s": 1.951,
|
|
"rtf": 1.038
|
|
},
|
|
{
|
|
"name": "conversational",
|
|
"text_in": "Stai puțin să mă gândesc la asta.",
|
|
"text_out": "Stai putin să mă gândesc la asta.",
|
|
"audio_duration_s": 2.926,
|
|
"latencies_s": [
|
|
2.092,
|
|
2.06,
|
|
2.072
|
|
],
|
|
"median_latency_s": 2.072,
|
|
"rtf": 0.708
|
|
},
|
|
{
|
|
"name": "medium",
|
|
"text_in": "Am verificat în calendar și avem ședință cu echipa la trei după-amiază.",
|
|
"text_out": "Am verificat în calendari și avem sedință cu echipa la 3 după amiază.",
|
|
"audio_duration_s": 5.991,
|
|
"latencies_s": [
|
|
2.235,
|
|
2.283,
|
|
2.48
|
|
],
|
|
"median_latency_s": 2.283,
|
|
"rtf": 0.381
|
|
},
|
|
{
|
|
"name": "numbers",
|
|
"text_in": "Costul total este o sută douăzeci și trei de lei și cincizeci de bani.",
|
|
"text_out": "Costul total este 120 și 3 delei și 50 de bani.",
|
|
"audio_duration_s": 5.642,
|
|
"latencies_s": [
|
|
2.285,
|
|
2.264,
|
|
2.303
|
|
],
|
|
"median_latency_s": 2.285,
|
|
"rtf": 0.405
|
|
},
|
|
{
|
|
"name": "question",
|
|
"text_in": "Marius, vrei să-ți pun pe agenda de mâine să suni la NOAA?",
|
|
"text_out": "Marius, vrei să-ți spun pe agenda de mâine să suni la noa a.",
|
|
"audio_duration_s": 5.085,
|
|
"latencies_s": [
|
|
2.279,
|
|
2.205,
|
|
2.21
|
|
],
|
|
"median_latency_s": 2.21,
|
|
"rtf": 0.435
|
|
},
|
|
{
|
|
"name": "longer",
|
|
"text_in": "Vreau să-mi reamintești diseară să verific dacă scriptul de backup a rulat corect și să trimit raportul către echipă.",
|
|
"text_out": "Vreau să mi-răimintești di seară să verific dacă scriptul de bacup a rulat corect și să trimit raportul către echipă.",
|
|
"audio_duration_s": 9.265,
|
|
"latencies_s": [
|
|
2.639,
|
|
2.532,
|
|
2.528
|
|
],
|
|
"median_latency_s": 2.532,
|
|
"rtf": 0.273
|
|
}
|
|
]
|
|
},
|
|
"tiny": {
|
|
"p50_s": 0.481,
|
|
"p95_s": 0.574,
|
|
"mean_rtf": 0.117,
|
|
"load_time_s": 0.541,
|
|
"cpu_threads": 4,
|
|
"samples": [
|
|
{
|
|
"name": "short",
|
|
"text_in": "Salut, ce mai faci?",
|
|
"text_out": "Salut, ce mai fac?",
|
|
"audio_duration_s": 1.881,
|
|
"latencies_s": [
|
|
0.453,
|
|
0.417,
|
|
0.411
|
|
],
|
|
"median_latency_s": 0.417,
|
|
"rtf": 0.222
|
|
},
|
|
{
|
|
"name": "conversational",
|
|
"text_in": "Stai puțin să mă gândesc la asta.",
|
|
"text_out": "Stei putin să mă gândesc la asta.",
|
|
"audio_duration_s": 2.926,
|
|
"latencies_s": [
|
|
0.429,
|
|
0.449,
|
|
0.463
|
|
],
|
|
"median_latency_s": 0.449,
|
|
"rtf": 0.153
|
|
},
|
|
{
|
|
"name": "medium",
|
|
"text_in": "Am verificat în calendar și avem ședință cu echipa la trei după-amiază.",
|
|
"text_out": "Am verificat în calendar și avem sedeință cu equipala 3 du pămiază.",
|
|
"audio_duration_s": 5.991,
|
|
"latencies_s": [
|
|
0.499,
|
|
0.495,
|
|
0.504
|
|
],
|
|
"median_latency_s": 0.499,
|
|
"rtf": 0.083
|
|
},
|
|
{
|
|
"name": "numbers",
|
|
"text_in": "Costul total este o sută douăzeci și trei de lei și cincizeci de bani.",
|
|
"text_out": "Costul total este o suta 20 și 3 de lei și 50 de bani.",
|
|
"audio_duration_s": 5.642,
|
|
"latencies_s": [
|
|
0.491,
|
|
0.487,
|
|
0.456
|
|
],
|
|
"median_latency_s": 0.487,
|
|
"rtf": 0.086
|
|
},
|
|
{
|
|
"name": "question",
|
|
"text_in": "Marius, vrei să-ți pun pe agenda de mâine să suni la NOAA?",
|
|
"text_out": "Marius, vrei să-ți pun pe agenda de muină să sun la nu a.",
|
|
"audio_duration_s": 5.085,
|
|
"latencies_s": [
|
|
0.474,
|
|
0.468,
|
|
0.505
|
|
],
|
|
"median_latency_s": 0.474,
|
|
"rtf": 0.093
|
|
},
|
|
{
|
|
"name": "longer",
|
|
"text_in": "Vreau să-mi reamintești diseară să verific dacă scriptul de backup a rulat corect și să trimit raportul către echipă.",
|
|
"text_out": "Vreau să mream in test de seare să verific dacă scriptul de bakup a rulat correct și să trimitra portul că trea equipă.",
|
|
"audio_duration_s": 9.265,
|
|
"latencies_s": [
|
|
0.574,
|
|
0.532,
|
|
0.575
|
|
],
|
|
"median_latency_s": 0.574,
|
|
"rtf": 0.062
|
|
}
|
|
]
|
|
}
|
|
}
|
|
} |