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:30:17Z",
|
|
"decision": "FALLBACK_TINY",
|
|
"rationale": "small.p50=2.79s >= budget; tiny.p50=0.54s < 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.793,
|
|
"p95_s": 3.308,
|
|
"mean_rtf": 0.699,
|
|
"load_time_s": 1.505,
|
|
"cpu_threads": 6,
|
|
"samples": [
|
|
{
|
|
"name": "short",
|
|
"text_in": "Salut, ce mai faci?",
|
|
"text_out": "Salut ce mai faci!",
|
|
"audio_duration_s": 1.881,
|
|
"latencies_s": [
|
|
2.586,
|
|
2.666,
|
|
2.538
|
|
],
|
|
"median_latency_s": 2.586,
|
|
"rtf": 1.375
|
|
},
|
|
{
|
|
"name": "conversational",
|
|
"text_in": "Stai puțin să mă gândesc la asta.",
|
|
"text_out": "Stai puțin să mă gândesc la asta.",
|
|
"audio_duration_s": 2.926,
|
|
"latencies_s": [
|
|
2.739,
|
|
2.697,
|
|
2.683
|
|
],
|
|
"median_latency_s": 2.697,
|
|
"rtf": 0.922
|
|
},
|
|
{
|
|
"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 ședință cu echipa la trei după amiază.",
|
|
"audio_duration_s": 5.991,
|
|
"latencies_s": [
|
|
3.005,
|
|
3.013,
|
|
3.023
|
|
],
|
|
"median_latency_s": 3.013,
|
|
"rtf": 0.503
|
|
},
|
|
{
|
|
"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.657,
|
|
2.698,
|
|
2.677
|
|
],
|
|
"median_latency_s": 2.677,
|
|
"rtf": 0.475
|
|
},
|
|
{
|
|
"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?",
|
|
"audio_duration_s": 5.085,
|
|
"latencies_s": [
|
|
2.883,
|
|
2.85,
|
|
2.847
|
|
],
|
|
"median_latency_s": 2.85,
|
|
"rtf": 0.561
|
|
},
|
|
{
|
|
"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-reaminteș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": [
|
|
3.277,
|
|
3.428,
|
|
3.308
|
|
],
|
|
"median_latency_s": 3.308,
|
|
"rtf": 0.357
|
|
}
|
|
]
|
|
},
|
|
"tiny": {
|
|
"p50_s": 0.541,
|
|
"p95_s": 0.662,
|
|
"mean_rtf": 0.138,
|
|
"load_time_s": 0.576,
|
|
"cpu_threads": 6,
|
|
"samples": [
|
|
{
|
|
"name": "short",
|
|
"text_in": "Salut, ce mai faci?",
|
|
"text_out": "Salut ce mai faci",
|
|
"audio_duration_s": 1.881,
|
|
"latencies_s": [
|
|
0.669,
|
|
0.542,
|
|
0.557
|
|
],
|
|
"median_latency_s": 0.557,
|
|
"rtf": 0.296
|
|
},
|
|
{
|
|
"name": "conversational",
|
|
"text_in": "Stai puțin să mă gândesc la asta.",
|
|
"text_out": "Stei putin să mă gândest la asta.",
|
|
"audio_duration_s": 2.926,
|
|
"latencies_s": [
|
|
0.499,
|
|
0.475,
|
|
0.497
|
|
],
|
|
"median_latency_s": 0.497,
|
|
"rtf": 0.17
|
|
},
|
|
{
|
|
"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 dupa amiază.",
|
|
"audio_duration_s": 5.991,
|
|
"latencies_s": [
|
|
0.569,
|
|
0.606,
|
|
0.599
|
|
],
|
|
"median_latency_s": 0.599,
|
|
"rtf": 0.1
|
|
},
|
|
{
|
|
"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.519,
|
|
0.51,
|
|
0.54
|
|
],
|
|
"median_latency_s": 0.519,
|
|
"rtf": 0.092
|
|
},
|
|
{
|
|
"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 muine să sunt la nu a.",
|
|
"audio_duration_s": 5.085,
|
|
"latencies_s": [
|
|
0.51,
|
|
0.524,
|
|
0.522
|
|
],
|
|
"median_latency_s": 0.522,
|
|
"rtf": 0.103
|
|
},
|
|
{
|
|
"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 rea minstești diseare să verific daca scriptul de backup a rulat correct și să trimitra portul către e kipă.",
|
|
"audio_duration_s": 9.265,
|
|
"latencies_s": [
|
|
0.662,
|
|
0.646,
|
|
0.627
|
|
],
|
|
"median_latency_s": 0.646,
|
|
"rtf": 0.07
|
|
}
|
|
]
|
|
}
|
|
}
|
|
} |