- Added DashScope ASR service implementation for real-time streaming. - Updated ASR provider logic to support DashScope alongside existing providers. - Enhanced runtime metadata resolution to include DashScope as a valid ASR provider. - Modified configuration files and documentation to reflect the addition of DashScope. - Introduced tests to validate DashScope integration and ASR service behavior. - Refactored ASR service factory to accommodate new provider options and modes.
47 lines
1.5 KiB
Python
47 lines
1.5 KiB
Python
from providers.asr.buffered import BufferedASRService
|
|
from providers.asr.dashscope import DashScopeRealtimeASRService
|
|
from providers.asr.openai_compatible import OpenAICompatibleASRService
|
|
from providers.factory.default import DefaultRealtimeServiceFactory
|
|
from runtime.ports import ASRServiceSpec
|
|
|
|
|
|
def test_create_asr_service_dashscope_returns_streaming_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="dashscope",
|
|
mode="streaming",
|
|
sample_rate=16000,
|
|
api_key="test-key",
|
|
model="qwen3-asr-flash-realtime",
|
|
)
|
|
)
|
|
assert isinstance(service, DashScopeRealtimeASRService)
|
|
assert service.mode == "streaming"
|
|
|
|
|
|
def test_create_asr_service_openai_compatible_returns_offline_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="openai_compatible",
|
|
sample_rate=16000,
|
|
api_key="test-key",
|
|
model="FunAudioLLM/SenseVoiceSmall",
|
|
)
|
|
)
|
|
assert isinstance(service, OpenAICompatibleASRService)
|
|
assert service.mode == "offline"
|
|
|
|
|
|
def test_create_asr_service_fallback_buffered_for_unsupported_provider():
|
|
factory = DefaultRealtimeServiceFactory()
|
|
service = factory.create_asr_service(
|
|
ASRServiceSpec(
|
|
provider="unknown_provider",
|
|
sample_rate=16000,
|
|
)
|
|
)
|
|
assert isinstance(service, BufferedASRService)
|
|
assert service.mode == "offline"
|