psiddh's picture
Add ExecuTorch WebGPU program for phonon-31m-en
afd4b73 verified
Raw History Blame Contribute Delete
8.6 kB
{
"sample_rate": 24000,
"frame_samples": 1920,
"frame_rate": 12.5,
"max_context": 512,
"prefill_max": 128,
"programs": {
"flow_lm": {
"forward": {
"inputs": [
{
"shape": [
1,
128,
512
],
"dtype": "float"
},
{
"shape": [
1
],
"dtype": "long"
},
{
"shape": [
1,
32
],
"dtype": "float"
}
],
"outputs": [
{
"shape": [
1,
32
],
"dtype": "float"
},
{
"shape": [
1,
1
],
"dtype": "float"
},
{
"shape": [
1,
1,
512
],
"dtype": "float"
}
]
}
},
"mimi": {
"forward": {
"inputs": [
{
"shape": [
1,
1,
32
],
"dtype": "float"
},
{
"shape": [
1,
512,
16
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
1,
1,
250
],
"dtype": "float"
},
{
"shape": [
1
],
"dtype": "float"
},
{
"shape": [
1,
512,
6
],
"dtype": "float"
},
{
"shape": [
1,
256,
6
],
"dtype": "float"
},
{
"shape": [
1,
256,
2
],
"dtype": "float"
},
{
"shape": [
1,
128,
5
],
"dtype": "float"
},
{
"shape": [
1,
128,
2
],
"dtype": "float"
},
{
"shape": [
1,
64,
4
],
"dtype": "float"
},
{
"shape": [
1,
64,
2
],
"dtype": "float"
},
{
"shape": [
1,
64,
2
],
"dtype": "float"
}
],
"outputs": [
{
"shape": [
1,
1,
1920
],
"dtype": "float"
},
{
"shape": [
1,
512,
16
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
8,
250,
64
],
"dtype": "float"
},
{
"shape": [
1,
1,
1,
250
],
"dtype": "float"
},
{
"shape": [
1
],
"dtype": "float"
},
{
"shape": [
1,
512,
6
],
"dtype": "float"
},
{
"shape": [
1,
256,
6
],
"dtype": "float"
},
{
"shape": [
1,
256,
2
],
"dtype": "float"
},
{
"shape": [
1,
128,
5
],
"dtype": "float"
},
{
"shape": [
1,
128,
2
],
"dtype": "float"
},
{
"shape": [
1,
64,
4
],
"dtype": "float"
},
{
"shape": [
1,
64,
2
],
"dtype": "float"
},
{
"shape": [
1,
64,
2
],
"dtype": "float"
}
]
}
}
},
"flow_lm": "forward(embeds, input_pos, noise): writes KV positions [input_pos, input_pos + S); outputs are for the last position. Calls: voice prompt (S = 125) at 0, text prompt (S = #tokens) at 125, then one call per frame with S = 1: the first takes phonon_bos_embed, each later one the previous call's next_embeds",
"mimi": "forward(latent, *state) -> (pcm, *state): pass the previous call's states back; zeros to start",
"mimi_state": [
[
"upsample_partial",
[
1,
512,
16
]
],
[
"k0",
[
1,
8,
250,
64
]
],
[
"v0",
[
1,
8,
250,
64
]
],
[
"k1",
[
1,
8,
250,
64
]
],
[
"v1",
[
1,
8,
250,
64
]
],
[
"kv_seen",
[
1,
1,
1,
250
]
],
[
"rope_offset",
[
1
]
],
[
"init_conv_prev",
[
1,
512,
6
]
],
[
"up1_partial",
[
1,
256,
6
]
],
[
"res1_prev",
[
1,
256,
2
]
],
[
"up2_partial",
[
1,
128,
5
]
],
[
"res2_prev",
[
1,
128,
2
]
],
[
"up3_partial",
[
1,
64,
4
]
],
[
"res3_prev",
[
1,
64,
2
]
],
[
"final_conv_prev",
[
1,
64,
2
]
]
],
"text": "normalize (the official runtime's English rules; identity for plain sentences), then trim, collapse whitespace, capitalize the first letter, append '.' if the text ends with a letter or digit; encode with tokenizer.json without special tokens; embeds[i] = bf16 table row tokens[i] (as f32)",
"noise": "32 values per frame, N(0, temperature); 0.3 is the official runtime's default, 0 makes it deterministic",
"eos": "stop after frames_after_eos more frames once eos_logit > 4.0 (frames_after_eos = 3 for texts of <= 4 words, else 1); the EOS frame and its tail are decoded",
"frame_budget": "ceil((#tokens / 3 + 2) * 12.5) frames at most",
"voices": {
"default": {
"file": "voice_default.f32.bin",
"shape": [
125,
512
]
},
"en_us_easton": {
"file": "voice_en_us_easton.f32.bin",
"shape": [
125,
512
]
}
},
"conditions": {
"num_speakers": "1",
"duration_delta": 0.0,
"note": "the runtime's defaults, folded into the programs"
}
}