Add Volcengine support for TTS and ASR services

- Introduced Volcengine as a new provider for both TTS and ASR services.
- Updated configuration files to include Volcengine-specific parameters such as app_id, resource_id, and uid.
- Enhanced the ASR service to support streaming mode with Volcengine's API.
- Modified existing tests to validate the integration of Volcengine services.
- Updated documentation to reflect the addition of Volcengine as a supported provider for TTS and ASR.
- Refactored service factory to accommodate Volcengine alongside existing providers.
This commit is contained in:
Xin Wang
2026-03-08 23:09:50 +08:00
parent 3604db21eb
commit aeeeee20d1
18 changed files with 1256 additions and 12 deletions

View File

@@ -1,6 +1,7 @@
from providers.asr.buffered import BufferedASRService
from providers.asr.dashscope import DashScopeRealtimeASRService
from providers.asr.openai_compatible import OpenAICompatibleASRService
from providers.asr.volcengine import VolcengineRealtimeASRService
from providers.factory.default import DefaultRealtimeServiceFactory
from runtime.ports import ASRServiceSpec
@@ -35,6 +36,29 @@ def test_create_asr_service_openai_compatible_returns_offline_provider():
assert service.enable_interim is False
def test_create_asr_service_volcengine_returns_streaming_provider():
factory = DefaultRealtimeServiceFactory()
service = factory.create_asr_service(
ASRServiceSpec(
provider="volcengine",
mode="streaming",
sample_rate=16000,
api_key="test-key",
api_url="wss://openspeech.bytedance.com/api/v3/sauc/bigmodel",
model="bigmodel",
app_id="app-1",
uid="caller-1",
request_params={"end_window_size": 800},
)
)
assert isinstance(service, VolcengineRealtimeASRService)
assert service.mode == "streaming"
assert service.protocol == "seed"
assert service.app_id == "app-1"
assert service.uid == "caller-1"
assert service.request_params["end_window_size"] == 800
def test_create_asr_service_fallback_buffered_for_unsupported_provider():
factory = DefaultRealtimeServiceFactory()
service = factory.create_asr_service(