feat(trunk): G711Codec — µ-law encode/decode + 8kHz↔24kHz linear-interpolated resampling (slice-5 T1)
In-core ~30-line table-driven codec (no dep). The ITU-T G.711 µ-law companding formula is a piece of telephony history worth teaching (AGENTS.md learner-facing comment mandate). 3× linear upsample on decode; 3× decimation downsample on encode. The resampler artifacts are below the barge-in trigger threshold (LocalVadReflex only needs RMS energy); rubato lands in a post- spearhead refinement if a downstream consumer needs better (spec §6.6). Task T1 of slice-5 — T3 (TwilioMediaStreamsServer) consumes this codec. Signed-off-by: Aaron D. Lee <himself@adlee.work>
This commit is contained in:
17
Cargo.lock
generated
17
Cargo.lock
generated
@@ -143,6 +143,7 @@ dependencies = [
|
||||
"async-trait",
|
||||
"axum-core",
|
||||
"axum-macros",
|
||||
"base64",
|
||||
"bytes",
|
||||
"futures-util",
|
||||
"http",
|
||||
@@ -161,8 +162,10 @@ dependencies = [
|
||||
"serde_json",
|
||||
"serde_path_to_error",
|
||||
"serde_urlencoded",
|
||||
"sha1",
|
||||
"sync_wrapper",
|
||||
"tokio",
|
||||
"tokio-tungstenite",
|
||||
"tower",
|
||||
"tower-layer",
|
||||
"tower-service",
|
||||
@@ -1280,6 +1283,20 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "rutster-trunk"
|
||||
version = "0.0.0"
|
||||
dependencies = [
|
||||
"axum",
|
||||
"base64",
|
||||
"rutster-call-model",
|
||||
"rutster-media",
|
||||
"rutster-tap",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 1.0.69",
|
||||
"tokio",
|
||||
"tower",
|
||||
"tracing",
|
||||
"url",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "ryu"
|
||||
|
||||
Reference in New Issue
Block a user