Skip to content

Commit ff382fc

Browse files
songguocolakevinlin09
authored andcommitted
feat(app/multimodal-dialog): add upstream.asr_post_processing
1 parent 40a76a4 commit ff382fc

File tree

1 file changed

+32
-2
lines changed

1 file changed

+32
-2
lines changed

dashscope/multimodal/multimodal_request_params.py

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,24 +72,54 @@ def to_dict(self):
7272
"directive": self.directive,
7373
"dialog_id": self.dialog_id
7474
}
75+
@dataclass
76+
class AsrPostProcessing:
77+
replace_words: list = field(default=None)
78+
79+
def to_dict(self):
80+
if self.replace_words is None:
81+
return None
82+
if len(self.replace_words) == 0:
83+
return None
84+
return {
85+
"replace_words": [word.to_dict() for word in self.replace_words]
86+
}
87+
88+
@dataclass
89+
class ReplaceWord:
90+
source: str = field(default=None)
91+
target: str = field(default=None)
92+
match_mode: str = field(default=None)
7593

94+
def to_dict(self):
95+
return {
96+
"source": self.source,
97+
"target": self.target,
98+
"match_mode": self.match_mode
99+
}
76100

77101
@dataclass
78102
class Upstream:
79103
"""struct for upstream"""
80104
audio_format: str = field(default="pcm") # 上行语音格式,默认pcm.支持pcm/opus
81105
type: str = field(default="AudioOnly") # 上行类型:AudioOnly 仅语音通话; AudioAndVideo 上传视频
82106
mode: str = field(default="tap2talk") # 客户端交互模式 push2talk/tap2talk/duplex
83-
# sample_rate: int # 合成音频采样率
107+
sample_rate: int = field(default=16000) # 音频采样率
108+
vocabulary_id: str = field(default=None)
109+
asr_post_processing: AsrPostProcessing = field(default=None)
84110
pass_through_params: dict = field(default=None)
85111

86112
def to_dict(self):
87113
upstream: dict = {
88114
"type": self.type,
89115
"mode": self.mode,
90116
"audio_format": self.audio_format,
91-
# "sample_rate": self.sample_rate
117+
"sample_rate": self.sample_rate,
118+
"vocabulary_id": self.vocabulary_id,
92119
}
120+
if self.asr_post_processing is not None:
121+
upstream["asr_post_processing"] = self.asr_post_processing.to_dict()
122+
93123
if self.pass_through_params is not None:
94124
upstream.update(self.pass_through_params)
95125
return upstream

0 commit comments

Comments
 (0)