feat(transcription): add AssemblyAI as transcription provider

Add AssemblyAI as a third transcription provider option alongside
OpenAI and Groq. AssemblyAI offers better accuracy for certain
audio types (distant voices, noisy environments) and serves as a
reliable fallback when other providers struggle.

Changes:
- Add AssemblyAITranscriptionProvider class in providers/transcription.py
- Add 'assemblyai' option in base channel's transcribe_audio()
- Per-channel configuration via transcriptionProvider in config

Usage:
  Set transcriptionProvider: 'assemblyai' and provide an AssemblyAI
  API key via transcriptionApiKey in the channel config.
This commit is contained in:
comadreja
2026-06-09 05:33:18 +08:00
committed by Xubin Ren
parent f183b37542
commit f3eb2aa08b
17 changed files with 780 additions and 113 deletions
+15
View File
@@ -245,3 +245,18 @@ def test_match_provider_routes_forced_novita_model_api_models() -> None:
assert config.get_provider_name() == "novita"
assert config.get_api_base() == "https://api.novita.ai/openai"
def test_transcription_only_provider_is_not_chat_fallback() -> None:
config = Config.model_validate({
"providers": {
"assemblyai": {"apiKey": "aai-test"},
},
"agents": {
"defaults": {
"model": "assemblyai/universal-3-pro",
}
},
})
assert config.get_provider_name() is None