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

@@ -0,0 +1,45 @@
from providers.factory.default import DefaultRealtimeServiceFactory
from providers.tts.mock import MockTTSService
from providers.tts.openai_compatible import OpenAICompatibleTTSService
from providers.tts.volcengine import VolcengineTTSService
from runtime.ports import TTSServiceSpec
def test_create_tts_service_volcengine_returns_native_provider():
factory = DefaultRealtimeServiceFactory()
service = factory.create_tts_service(
TTSServiceSpec(
provider="volcengine",
api_key="test-key",
app_id="app-1",
resource_id="seed-tts-2.0",
voice="zh_female_shuangkuaisisi_moon_bigtts",
sample_rate=16000,
)
)
assert isinstance(service, VolcengineTTSService)
def test_create_tts_service_openai_compatible_returns_provider():
factory = DefaultRealtimeServiceFactory()
service = factory.create_tts_service(
TTSServiceSpec(
provider="openai_compatible",
api_key="test-key",
voice="anna",
sample_rate=16000,
)
)
assert isinstance(service, OpenAICompatibleTTSService)
def test_create_tts_service_fallbacks_to_mock_without_key():
factory = DefaultRealtimeServiceFactory()
service = factory.create_tts_service(
TTSServiceSpec(
provider="volcengine",
voice="anna",
sample_rate=16000,
)
)
assert isinstance(service, MockTTSService)