wangzhibo
2026-10-08 220e4fab27b7f419b3e89e2f2d28ae789aac09d7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from enum import Enum
from typing import Union, Optional
 
 
class SentenceType(Enum):
    # 说话阶段
    FIRST = "FIRST"  # 首句话
    MIDDLE = "MIDDLE"  # 说话中
    LAST = "LAST"  # 最后一句
 
 
class ContentType(Enum):
    # 内容类型
    TEXT = "TEXT"  # 文本内容
    FILE = "FILE"  # 文件内容
    ACTION = "ACTION"  # 动作内容
 
 
class InterfaceType(Enum):
    # 接口类型
    DUAL_STREAM = "DUAL_STREAM"  # 双流式
    SINGLE_STREAM = "SINGLE_STREAM"  # 单流式
    NON_STREAM = "NON_STREAM"  # 非流式
 
 
class TTSMessageDTO:
    def __init__(
        self,
        sentence_id: str,
        # 说话阶段
        sentence_type: SentenceType,
        # 内容类型
        content_type: ContentType,
        # 内容详情,一般是需要转换的文本或者音频的歌词
        content_detail: Optional[str] = None,
        # 如果内容类型为文件,则需要传入文件路径
        content_file: Optional[str] = None,
    ):
        self.sentence_id = sentence_id
        self.sentence_type = sentence_type
        self.content_type = content_type
        self.content_detail = content_detail
        self.content_file = content_file