feat(asr): add rtzr streaming extension - #2320
kimdwkimdw wants to merge 4 commits into
Conversation
diyuyi-agora
left a comment
There was a problem hiding this comment.
Reviewed the connection, buffering, finalize, protocol-mapping, packaging, and test paths. The offline suite passes (39 tests), and Black/Pylint are clean. I found three issues that should be addressed before merge.
|
Addressed the three review findings:
|
|
@diyuyi-agora Added small fix for GitHub CI. https://github.com/TEN-framework/ten-framework/actions/runs/34855227460/job/104235631743?pr=2320 |
a00f121 to
f1523b4
Compare
|
rebased from latest main branch |
Summary
Add
rtzr_asr_pythonto make RTZR streaming speech recognition available through TEN's standard ASR interface. The extension followsAsyncASRBaseExtensionand usesaiohttpdirectly, without an additional vendor SDK dependency.sommers_ko,sommers_ja, andsommers_en, mapping interim/final transcripts, timestamps, and word timing to TEN results.RTZR_CLIENT_ID,RTZR_CLIENT_SECRET,RTZR_API_BASE, andRTZR_WEBSOCKET_URL. Default endpoints arehttps://openapi.vito.aiandwss://openapi.vito.ai.Type of Change
Testing
The common guarder's Chinese-specific multilingual case was replaced by model-specific Korean, Japanese, and English live tests. Its long-duration case was replaced by the 300-second-per-model tests. These live checks use small samples and do not establish corpus-wide recognition quality.
Live tests are opt-in and require credentials and an external audio manifest. Credentials, evaluation audio, reference transcripts, and local experiment artifacts are not included in this change. No upstream CI result is claimed.
Documentation
The extension README covers dependencies, environment/property configuration, graph wiring, lifecycle behavior, and test commands. The shared
.env.exampleincludes the RTZR variables.Breaking Changes
None. This is an opt-in extension and does not change existing ASR implementations or application graphs.
Protocol limitations
finalize_without_resultmetric; it does not fabricate a vendor final result.