1
+ from typing import Type
1
2
from vocode .streaming .models .synthesizer import (
2
3
AzureSynthesizerConfig ,
3
4
ElevenLabsSynthesizerConfig ,
8
9
)
9
10
from vocode .streaming .synthesizer .abstract_factory import AbstractSynthesizerFactory
10
11
from vocode .streaming .synthesizer .azure_synthesizer import AzureSynthesizer
12
+ from vocode .streaming .synthesizer .base_synthesizer import BaseSynthesizer
11
13
from vocode .streaming .synthesizer .eleven_labs_synthesizer import ElevenLabsSynthesizer
14
+ from vocode .streaming .synthesizer .eleven_labs_websocket_synthesizer import ElevenLabsWSSynthesizer
12
15
from vocode .streaming .synthesizer .play_ht_synthesizer import PlayHtSynthesizer
13
16
from vocode .streaming .synthesizer .play_ht_synthesizer_v2 import PlayHtSynthesizerV2
14
17
from vocode .streaming .synthesizer .rime_synthesizer import RimeSynthesizer
@@ -23,7 +26,10 @@ def create_synthesizer(
23
26
if isinstance (synthesizer_config , AzureSynthesizerConfig ):
24
27
return AzureSynthesizer (synthesizer_config )
25
28
elif isinstance (synthesizer_config , ElevenLabsSynthesizerConfig ):
26
- return ElevenLabsSynthesizer (synthesizer_config )
29
+ eleven_labs_synthesizer_class_type : Type [BaseSynthesizer ] = ElevenLabsSynthesizer
30
+ if synthesizer_config .experimental_websocket :
31
+ eleven_labs_synthesizer_class_type = ElevenLabsWSSynthesizer
32
+ return eleven_labs_synthesizer_class_type (synthesizer_config )
27
33
elif isinstance (synthesizer_config , PlayHtSynthesizerConfig ):
28
34
if synthesizer_config .version == "2" :
29
35
return PlayHtSynthesizerV2 (synthesizer_config )
0 commit comments