tencentcloud-sdk-python-trtc 3.0.1194__py2.py3-none-any.whl → 3.0.1241__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of tencentcloud-sdk-python-trtc might be problematic. Click here for more details.

tencentcloud/__init__.py CHANGED
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.0.1194'
17
+ __version__ = '3.0.1241'
@@ -206,6 +206,9 @@ INVALIDPARAMETER_STRROOMID = 'InvalidParameter.StrRoomId'
206
206
  # StreamId参数错误。
207
207
  INVALIDPARAMETER_STREAMID = 'InvalidParameter.StreamId'
208
208
 
209
+ # StreamUrl参数校验失败
210
+ INVALIDPARAMETER_STREAMURL = 'InvalidParameter.StreamUrl'
211
+
209
212
  # TaskId 参数错误。
210
213
  INVALIDPARAMETER_TASKID = 'InvalidParameter.TaskId'
211
214
 
@@ -166,14 +166,26 @@ class AgentConfig(AbstractModel):
166
166
  :param _TargetUserId: 机器人拉流的UserId, 填写后,机器人会拉取该UserId的流进行实时处理
167
167
  注意:此字段可能返回 null,表示取不到有效值。
168
168
  :type TargetUserId: str
169
- :param _MaxIdleTime: 房间内推流用户全部退出后超过MaxIdleTime秒,后台自动关闭任务,默认值是60s。
169
+ :param _MaxIdleTime: 房间内超过MaxIdleTime 没有推流,后台自动关闭任务,默认值是60s。
170
170
  注意:此字段可能返回 null,表示取不到有效值。
171
171
  :type MaxIdleTime: int
172
+ :param _WelcomeMessage: 机器人的欢迎语
173
+ 注意:此字段可能返回 null,表示取不到有效值。
174
+ :type WelcomeMessage: str
175
+ :param _InterruptMode: 智能打断模式,默认为0,0表示服务端自动打断,1表示服务端不打断,由端上发送打断信令进行打断
176
+ 注意:此字段可能返回 null,表示取不到有效值。
177
+ :type InterruptMode: int
178
+ :param _InterruptSpeechDuration: InterruptMode为0时使用,单位为毫秒,默认为500ms。表示服务端检测到持续InterruptSpeechDuration毫秒的人声则进行打断。
179
+ 注意:此字段可能返回 null,表示取不到有效值。
180
+ :type InterruptSpeechDuration: int
172
181
  """
173
182
  self._UserId = None
174
183
  self._UserSig = None
175
184
  self._TargetUserId = None
176
185
  self._MaxIdleTime = None
186
+ self._WelcomeMessage = None
187
+ self._InterruptMode = None
188
+ self._InterruptSpeechDuration = None
177
189
 
178
190
  @property
179
191
  def UserId(self):
@@ -207,12 +219,39 @@ class AgentConfig(AbstractModel):
207
219
  def MaxIdleTime(self, MaxIdleTime):
208
220
  self._MaxIdleTime = MaxIdleTime
209
221
 
222
+ @property
223
+ def WelcomeMessage(self):
224
+ return self._WelcomeMessage
225
+
226
+ @WelcomeMessage.setter
227
+ def WelcomeMessage(self, WelcomeMessage):
228
+ self._WelcomeMessage = WelcomeMessage
229
+
230
+ @property
231
+ def InterruptMode(self):
232
+ return self._InterruptMode
233
+
234
+ @InterruptMode.setter
235
+ def InterruptMode(self, InterruptMode):
236
+ self._InterruptMode = InterruptMode
237
+
238
+ @property
239
+ def InterruptSpeechDuration(self):
240
+ return self._InterruptSpeechDuration
241
+
242
+ @InterruptSpeechDuration.setter
243
+ def InterruptSpeechDuration(self, InterruptSpeechDuration):
244
+ self._InterruptSpeechDuration = InterruptSpeechDuration
245
+
210
246
 
211
247
  def _deserialize(self, params):
212
248
  self._UserId = params.get("UserId")
213
249
  self._UserSig = params.get("UserSig")
214
250
  self._TargetUserId = params.get("TargetUserId")
215
251
  self._MaxIdleTime = params.get("MaxIdleTime")
252
+ self._WelcomeMessage = params.get("WelcomeMessage")
253
+ self._InterruptMode = params.get("InterruptMode")
254
+ self._InterruptSpeechDuration = params.get("InterruptSpeechDuration")
216
255
  memeber_set = set(params.keys())
217
256
  for name, value in vars(self).items():
218
257
  property_name = name[1:]
@@ -621,6 +660,92 @@ class CloudVod(AbstractModel):
621
660
 
622
661
 
623
662
 
663
+ class ControlAIConversationRequest(AbstractModel):
664
+ """ControlAIConversation请求参数结构体
665
+
666
+ """
667
+
668
+ def __init__(self):
669
+ r"""
670
+ :param _TaskId: 任务唯一标识
671
+ :type TaskId: str
672
+ :param _Command: 控制命令,目前支持命令如下:
673
+
674
+ - ServerPushText,服务端发送文本给AI机器人,AI机器人会播报该文本
675
+ :type Command: str
676
+ :param _ServerPushText: 服务端发送播报文本命令,当Command为ServerPushText时必填
677
+ :type ServerPushText: :class:`tencentcloud.trtc.v20190722.models.ServerPushText`
678
+ """
679
+ self._TaskId = None
680
+ self._Command = None
681
+ self._ServerPushText = None
682
+
683
+ @property
684
+ def TaskId(self):
685
+ return self._TaskId
686
+
687
+ @TaskId.setter
688
+ def TaskId(self, TaskId):
689
+ self._TaskId = TaskId
690
+
691
+ @property
692
+ def Command(self):
693
+ return self._Command
694
+
695
+ @Command.setter
696
+ def Command(self, Command):
697
+ self._Command = Command
698
+
699
+ @property
700
+ def ServerPushText(self):
701
+ return self._ServerPushText
702
+
703
+ @ServerPushText.setter
704
+ def ServerPushText(self, ServerPushText):
705
+ self._ServerPushText = ServerPushText
706
+
707
+
708
+ def _deserialize(self, params):
709
+ self._TaskId = params.get("TaskId")
710
+ self._Command = params.get("Command")
711
+ if params.get("ServerPushText") is not None:
712
+ self._ServerPushText = ServerPushText()
713
+ self._ServerPushText._deserialize(params.get("ServerPushText"))
714
+ memeber_set = set(params.keys())
715
+ for name, value in vars(self).items():
716
+ property_name = name[1:]
717
+ if property_name in memeber_set:
718
+ memeber_set.remove(property_name)
719
+ if len(memeber_set) > 0:
720
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
721
+
722
+
723
+
724
+ class ControlAIConversationResponse(AbstractModel):
725
+ """ControlAIConversation返回参数结构体
726
+
727
+ """
728
+
729
+ def __init__(self):
730
+ r"""
731
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
732
+ :type RequestId: str
733
+ """
734
+ self._RequestId = None
735
+
736
+ @property
737
+ def RequestId(self):
738
+ return self._RequestId
739
+
740
+ @RequestId.setter
741
+ def RequestId(self, RequestId):
742
+ self._RequestId = RequestId
743
+
744
+
745
+ def _deserialize(self, params):
746
+ self._RequestId = params.get("RequestId")
747
+
748
+
624
749
  class CreateCloudRecordingRequest(AbstractModel):
625
750
  """CreateCloudRecording请求参数结构体
626
751
 
@@ -631,6 +756,8 @@ class CreateCloudRecordingRequest(AbstractModel):
631
756
  :param _SdkAppId: TRTC的[SdkAppId](https://cloud.tencent.com/document/product/647/46351#sdkappid),和录制的房间所对应的SdkAppId相同。
632
757
  :type SdkAppId: int
633
758
  :param _RoomId: TRTC的[RoomId](https://cloud.tencent.com/document/product/647/46351#roomid),录制的TRTC房间所对应的RoomId。
759
+ 注:房间号类型默认为整型,若房间号类型为字符串,请通过RoomIdType指定。
760
+
634
761
  :type RoomId: str
635
762
  :param _UserId: 录制机器人的UserId,用于进房发起录制任务。
636
763
  【*注意】这个UserId不能与当前房间内的主播观众[UserId](https://cloud.tencent.com/document/product/647/46351#userid)重复。如果一个房间发起多个录制任务时,机器人的userid也不能相互重复,否则会中断前一个录制任务。建议可以把房间ID作为UserId的标识的一部分,即录制机器人UserId在房间内唯一。
@@ -1185,7 +1312,7 @@ class DescribeAIConversationResponse(AbstractModel):
1185
1312
  :type StartTime: str
1186
1313
  :param _Status: 任务状态。有4个值:1、Idle表示任务未开始2、Preparing表示任务准备中3、InProgress表示任务正在运行4、Stopped表示任务已停止,正在清理资源中
1187
1314
  :type Status: str
1188
- :param _TaskId: 唯一标识一次任务。
1315
+ :param _TaskId: 任务的唯一标识,在启动任务时生成
1189
1316
  :type TaskId: str
1190
1317
  :param _SessionId: 开启对话任务时填写的SessionId,如果没写则不返回。
1191
1318
  :type SessionId: str
@@ -5830,8 +5957,12 @@ class McuUserInfoParams(AbstractModel):
5830
5957
  r"""
5831
5958
  :param _UserInfo: 用户参数。
5832
5959
  :type UserInfo: :class:`tencentcloud.trtc.v20190722.models.MixUserInfo`
5960
+ :param _SoundLevel: 混音的音量调整:取值范围是0到100,100为原始上行音量,不填默认为100,值越小则音量越低。
5961
+ 注:该参数只在音量白名单下配置生效,其他场景配置无效。
5962
+ :type SoundLevel: int
5833
5963
  """
5834
5964
  self._UserInfo = None
5965
+ self._SoundLevel = None
5835
5966
 
5836
5967
  @property
5837
5968
  def UserInfo(self):
@@ -5841,11 +5972,20 @@ class McuUserInfoParams(AbstractModel):
5841
5972
  def UserInfo(self, UserInfo):
5842
5973
  self._UserInfo = UserInfo
5843
5974
 
5975
+ @property
5976
+ def SoundLevel(self):
5977
+ return self._SoundLevel
5978
+
5979
+ @SoundLevel.setter
5980
+ def SoundLevel(self, SoundLevel):
5981
+ self._SoundLevel = SoundLevel
5982
+
5844
5983
 
5845
5984
  def _deserialize(self, params):
5846
5985
  if params.get("UserInfo") is not None:
5847
5986
  self._UserInfo = MixUserInfo()
5848
5987
  self._UserInfo._deserialize(params.get("UserInfo"))
5988
+ self._SoundLevel = params.get("SoundLevel")
5849
5989
  memeber_set = set(params.keys())
5850
5990
  for name, value in vars(self).items():
5851
5991
  property_name = name[1:]
@@ -7452,59 +7592,43 @@ class RecognizeConfig(AbstractModel):
7452
7592
 
7453
7593
  def __init__(self):
7454
7594
  r"""
7455
- :param _Language: 语音识别支持的语言,默认是"zh"。目前全量支持的语言如下,等号左面是语言英文名,右面是Language字段需要填写的值,该值遵循[ISO639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes):
7456
- 中文 Chinese = "zh"
7457
- 中文繁体 Chinese_TW = "zh-TW"
7458
- 中文方言 Chinese_DIALECT = "zh-dialect"
7459
- English = "en"
7460
- Vietnamese = "vi"
7461
- Japanese = "ja"
7462
- Korean = "ko"
7463
- Indonesia = "id"
7464
- Thai = "th"
7465
- Portuguese = "pt"
7466
- Turkish = "tr"
7467
- Arabic = "ar"
7468
- Spanish = "es"
7469
- Hindi = "hi"
7470
- French = "fr"
7471
- Malay = "ms"
7472
- Filipino = "fil"
7473
- German = "de"
7474
- Italian = "it"
7475
- Russian = "ru"
7595
+ :param _Language: 语音转文字支持识别的语言,默认是"zh" 中文
7596
+ 目前全量支持的语言如下,等号左面是语言英文名,右面是Language字段需要填写的值,该值遵循[ISO639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes):
7597
+ 可通过购买「语音转文本时长包」解锁或领取包月套餐体验版解锁此功能。
7598
+
7599
+ 语音转文本支持语言类型如下:
7600
+ - Chinese = "zh" # 中文
7601
+ - Chinese_TW = "zh-TW" # 中国台湾
7602
+ - English = "en" # 英语
7603
+ - Chinese_YUE = "zh-yue" # 中国粤语
7604
+ - Chinese_DIALECT = "zh-dialect" # 中国方言
7605
+ - English = "en" # 英语
7606
+ - Vietnamese = "vi" # 越南语
7607
+ - Japanese = "ja" # 日语
7608
+ - Korean = "ko" # 韩语
7609
+ - Indonesia = "id" # 印度尼西亚语
7610
+ - Thai = "th" # 泰语
7611
+ - Portuguese = "pt" # 葡萄牙语
7612
+ - Turkish = "tr" # 土耳其语
7613
+ - Arabic = "ar" # 阿拉伯语
7614
+ - Spanish = "es" # 西班牙语
7615
+ - Hindi = "hi" # 印地语
7616
+ - French = "fr" # 法语
7617
+ - Malay = "ms" # 马来语
7618
+ - Filipino = "fil" # 菲律宾语
7619
+ - German = "de" # 德语
7620
+ - Italian = "it" # 意大利语
7621
+ - Russian = "ru" # 俄语
7476
7622
 
7477
7623
  注意:
7478
7624
  如果缺少满足您需求的语言,请联系我们技术人员。
7479
7625
  :type Language: str
7480
- :param _AlternativeLanguage: 额外的可能替代语言,最多3个,仅高级版支持。Language指定中文方言时,不能设置该字段。
7626
+ :param _AlternativeLanguage: 发起模糊识别额外可能替代语言类型,最多填写3种语言类型。
7627
+ 注:Language指定为"zh-dialect" # 中国方言 时,不支持模糊识别,该字段无效
7481
7628
  :type AlternativeLanguage: list of str
7482
- :param _Model: 使用的模型,目前支持tencent和google,默认是tencent。
7629
+ :param _Model: 目前已不支持
7483
7630
  :type Model: str
7484
- :param _TranslationLanguage: 翻译功能支持的语言,如果填写,则会启用翻译,不填则只会使用语音识别。
7485
- 目前全量支持的语言如下,等号左面是语言英文名,右面是Language字段需要填写的值,该值遵循[ISO639](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes):
7486
- Chinese = "zh"
7487
- Chinese_TW = "zh-TW"
7488
- English = "en"
7489
- Vietnamese = "vi"
7490
- Japanese = "ja"
7491
- Korean = "ko"
7492
- Indonesia = "id"
7493
- Thai = "th"
7494
- Portuguese = "pt"
7495
- Turkish = "tr"
7496
- Arabic = "ar"
7497
- Spanish = "es"
7498
- Hindi = "hi"
7499
- French = "fr"
7500
- Malay = "ms"
7501
- Filipino = "fil"
7502
- German = "de"
7503
- Italian = "it"
7504
- Russian = "ru"
7505
-
7506
- 注意:
7507
- 如果缺少满足您需求的语言,请联系我们技术人员。
7631
+ :param _TranslationLanguage: 目前已不支持
7508
7632
  :type TranslationLanguage: str
7509
7633
  """
7510
7634
  self._Language = None
@@ -7542,10 +7666,14 @@ Russian = "ru"
7542
7666
 
7543
7667
  @property
7544
7668
  def TranslationLanguage(self):
7669
+ warnings.warn("parameter `TranslationLanguage` is deprecated", DeprecationWarning)
7670
+
7545
7671
  return self._TranslationLanguage
7546
7672
 
7547
7673
  @TranslationLanguage.setter
7548
7674
  def TranslationLanguage(self, TranslationLanguage):
7675
+ warnings.warn("parameter `TranslationLanguage` is deprecated", DeprecationWarning)
7676
+
7549
7677
  self._TranslationLanguage = TranslationLanguage
7550
7678
 
7551
7679
 
@@ -8090,7 +8218,7 @@ class STTConfig(AbstractModel):
8090
8218
  4. English = "en" # 英语
8091
8219
  5. Vietnamese = "vi" # 越南语
8092
8220
  6. Japanese = "ja" # 日语
8093
- 7. Korean = "ko" # 汉语
8221
+ 7. Korean = "ko" # 韩语
8094
8222
  8. Indonesia = "id" # 印度尼西亚语
8095
8223
  9. Thai = "th" # 泰语
8096
8224
  10. Portuguese = "pt" # 葡萄牙语
@@ -8109,13 +8237,18 @@ class STTConfig(AbstractModel):
8109
8237
  如果缺少满足您需求的语言,请联系我们技术人员。
8110
8238
  注意:此字段可能返回 null,表示取不到有效值。
8111
8239
  :type Language: str
8112
- :param _AlternativeLanguage: 额外识别可能替代语言,最多3个, 需高级版支持,Language指定方言时,不允许设置该字段
8240
+ :param _AlternativeLanguage: 发起模糊识别额外可能替代语言类型,最多填写3种语言类型,
8241
+ 注:Language指定为"zh-dialect" # 中国方言 时,不支持模糊识别,该字段无效
8113
8242
 
8114
8243
  注意:此字段可能返回 null,表示取不到有效值。
8115
8244
  :type AlternativeLanguage: list of str
8245
+ :param _VadSilenceTime: 语音识别vad的时间,范围为240-2000,默认为1000,单位为ms。更小的值会让语音识别分句更快。
8246
+ 注意:此字段可能返回 null,表示取不到有效值。
8247
+ :type VadSilenceTime: int
8116
8248
  """
8117
8249
  self._Language = None
8118
8250
  self._AlternativeLanguage = None
8251
+ self._VadSilenceTime = None
8119
8252
 
8120
8253
  @property
8121
8254
  def Language(self):
@@ -8133,10 +8266,19 @@ class STTConfig(AbstractModel):
8133
8266
  def AlternativeLanguage(self, AlternativeLanguage):
8134
8267
  self._AlternativeLanguage = AlternativeLanguage
8135
8268
 
8269
+ @property
8270
+ def VadSilenceTime(self):
8271
+ return self._VadSilenceTime
8272
+
8273
+ @VadSilenceTime.setter
8274
+ def VadSilenceTime(self, VadSilenceTime):
8275
+ self._VadSilenceTime = VadSilenceTime
8276
+
8136
8277
 
8137
8278
  def _deserialize(self, params):
8138
8279
  self._Language = params.get("Language")
8139
8280
  self._AlternativeLanguage = params.get("AlternativeLanguage")
8281
+ self._VadSilenceTime = params.get("VadSilenceTime")
8140
8282
  memeber_set = set(params.keys())
8141
8283
  for name, value in vars(self).items():
8142
8284
  property_name = name[1:]
@@ -8462,6 +8604,63 @@ class SeriesInfos(AbstractModel):
8462
8604
 
8463
8605
 
8464
8606
 
8607
+ class ServerPushText(AbstractModel):
8608
+ """服务端控制AI对话机器人播报指定文本
8609
+
8610
+ """
8611
+
8612
+ def __init__(self):
8613
+ r"""
8614
+ :param _Text: 服务端推送播报文本
8615
+ :type Text: str
8616
+ :param _Interrupt: 是否允许该文本打断机器人说话
8617
+ :type Interrupt: bool
8618
+ :param _StopAfterPlay: 播报完文本后,是否自动关闭对话任务
8619
+ :type StopAfterPlay: bool
8620
+ """
8621
+ self._Text = None
8622
+ self._Interrupt = None
8623
+ self._StopAfterPlay = None
8624
+
8625
+ @property
8626
+ def Text(self):
8627
+ return self._Text
8628
+
8629
+ @Text.setter
8630
+ def Text(self, Text):
8631
+ self._Text = Text
8632
+
8633
+ @property
8634
+ def Interrupt(self):
8635
+ return self._Interrupt
8636
+
8637
+ @Interrupt.setter
8638
+ def Interrupt(self, Interrupt):
8639
+ self._Interrupt = Interrupt
8640
+
8641
+ @property
8642
+ def StopAfterPlay(self):
8643
+ return self._StopAfterPlay
8644
+
8645
+ @StopAfterPlay.setter
8646
+ def StopAfterPlay(self, StopAfterPlay):
8647
+ self._StopAfterPlay = StopAfterPlay
8648
+
8649
+
8650
+ def _deserialize(self, params):
8651
+ self._Text = params.get("Text")
8652
+ self._Interrupt = params.get("Interrupt")
8653
+ self._StopAfterPlay = params.get("StopAfterPlay")
8654
+ memeber_set = set(params.keys())
8655
+ for name, value in vars(self).items():
8656
+ property_name = name[1:]
8657
+ if property_name in memeber_set:
8658
+ memeber_set.remove(property_name)
8659
+ if len(memeber_set) > 0:
8660
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
8661
+
8662
+
8663
+
8465
8664
  class SingleSubscribeParams(AbstractModel):
8466
8665
  """单流旁路转推的用户上行信息。
8467
8666
 
@@ -8603,18 +8802,18 @@ class StartAIConversationRequest(AbstractModel):
8603
8802
  :type RoomId: str
8604
8803
  :param _AgentConfig: 机器人参数
8605
8804
  :type AgentConfig: :class:`tencentcloud.trtc.v20190722.models.AgentConfig`
8606
- :param _SessionId: 调用方传入的唯一Id,服务端用来去重。
8805
+ :param _SessionId: 调用方传入的唯一Id,可用于客户侧防止重复发起任务以及可以通过该字段查询任务状态。
8607
8806
  :type SessionId: str
8608
8807
  :param _RoomIdType: TRTC房间号的类型,0代表数字房间号,1代表字符串房间号。不填默认是数字房间号。
8609
8808
  :type RoomIdType: int
8610
8809
  :param _STTConfig: 语音识别配置。
8611
8810
  :type STTConfig: :class:`tencentcloud.trtc.v20190722.models.STTConfig`
8612
8811
  :param _LLMConfig: LLM配置。需符合openai规范,为JSON字符串,示例如下:
8613
- <pre> { <br> &emsp; "LLMType": “大模型类型", // String 必填,目前固定为"openai" <br> &emsp; "Model": "您的模型名称", // String 必填,指定使用的模型<br> "APIKey": "您的OpenAI API密钥", // String 必填,相当于环境变量中的OPENAI_API_KEY<br> &emsp; "APIBaseUrl": "https://api.openai.com", // String 必填,OpenAI API的基础URL<br> &emsp; "Streaming": true // Boolean 非必填,指定是否使用流式传输<br> &emsp;} </pre>
8812
+ <pre> { <br> &emsp; "LLMType": “大模型类型", // String 必填,如:"openai" <br> &emsp; "Model": "您的模型名称", // String 必填,指定使用的模型<br> "APIKey": "您的LLM API密钥", // String 必填 <br> &emsp; "APIUrl": "https://api.xxx.com/chat/completions", // String 必填,LLM API访问的URL<br> &emsp; "Streaming": true // Boolean 非必填,指定是否使用流式传输<br> &emsp;} </pre>
8614
8813
 
8615
8814
  :type LLMConfig: str
8616
- :param _TTSConfig: TTS配置。目前支持腾讯云TTS, 为JSON字符串,示例如下:
8617
- <pre>{ <br> &emsp; "AppId": "您的应用ID", // String 必填<br> &emsp; "TTSType": "TTS类型", // String TTS类型, 固定为"tencent"<br> &emsp; "SercetId": "您的密钥ID", // String 必填<br> &emsp; "SercetKey": "您的密钥Key", // String 必填<br> &emsp; "VoiceType": 101001, // Integer 必填,音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见<a href="https://cloud.tencent.com/document/product/1073/34112">语音合成计费概述</a>。完整的音色 ID 列表请参见<a href="https://cloud.tencent.com/document/product/1073/92668#55924b56-1a73-4663-a7a1-a8dd82d6e823">语音合成音色列表</a>。<br> &emsp; "Speed": 1.25, // Integer 非必填,语速,范围:[-2,6],分别对应不同语速: -2: 代表0.6倍 -1: 代表0.8倍 0: 代表1.0倍(默认) 1: 代表1.2倍 2: 代表1.5倍 6: 代表2.5倍 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5/1.25/2.81等。 参数值与实际语速转换,可参考 <a href="https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz">语速转换</a><br> &emsp; "Volume": 5, // Integer 非必填,音量大小,范围:[0,10],分别对应11个等级的音量,默认值为0,代表正常音量。<br> &emsp; "PrimaryLanguage": "zh-CN" // String 非必填,主要语言<br> &emsp;}</pre>
8815
+ :param _TTSConfig: TTS配置,为JSON字符串,腾讯云TTS示例如下:
8816
+ <pre>{ <br> &emsp; "AppId": 您的应用ID, // Integer 必填<br> &emsp; "TTSType": "TTS类型", // String TTS类型, 固定为"tencent"<br> &emsp; "SecretId": "您的密钥ID", // String 必填<br> &emsp; "SecretKey": "您的密钥Key", // String 必填<br> &emsp; "VoiceType": 101001, // Integer 必填,音色 ID,包括标准音色与精品音色,精品音色拟真度更高,价格不同于标准音色,请参见<a href="https://cloud.tencent.com/document/product/1073/34112">语音合成计费概述</a>。完整的音色 ID 列表请参见<a href="https://cloud.tencent.com/document/product/1073/92668#55924b56-1a73-4663-a7a1-a8dd82d6e823">语音合成音色列表</a>。<br> &emsp; "Speed": 1.25, // Integer 非必填,语速,范围:[-2,6],分别对应不同语速: -2: 代表0.6倍 -1: 代表0.8倍 0: 代表1.0倍(默认) 1: 代表1.2倍 2: 代表1.5倍 6: 代表2.5倍 如果需要更细化的语速,可以保留小数点后 2 位,例如0.5/1.25/2.81等。 参数值与实际语速转换,可参考 <a href="https://sdk-1300466766.cos.ap-shanghai.myqcloud.com/sample/speed_sample.tar.gz">语速转换</a><br> &emsp; "Volume": 5, // Integer 非必填,音量大小,范围:[0,10],分别对应11个等级的音量,默认值为0,代表正常音量。<br> &emsp; "PrimaryLanguage": "zh-CN" // String 非必填,主要语言<br> &emsp;}</pre>
8618
8817
  :type TTSConfig: str
8619
8818
  """
8620
8819
  self._SdkAppId = None
@@ -9384,6 +9583,15 @@ class StartStreamIngestRequest(AbstractModel):
9384
9583
  :type SourceUrl: list of str
9385
9584
  :param _SeekSecond: 指定视频从某个秒时间戳播放
9386
9585
  :type SeekSecond: int
9586
+ :param _AutoPush: 开启自动旁路推流,请确认控制台已经开启该功能。
9587
+ :type AutoPush: bool
9588
+ :param _RepeatNum: 循环播放次数, 取值范围[-1, 1000], 默认1次。
9589
+ - 0 无效值
9590
+ - -1 循环播放, 需要主动调用停止接口或设置MaxDuration
9591
+
9592
+ :type RepeatNum: int
9593
+ :param _MaxDuration: 循环播放最大时长,仅支持RepeatNum设置-1时生效,取值范围[1, 10080],单位分钟。
9594
+ :type MaxDuration: int
9387
9595
  """
9388
9596
  self._SdkAppId = None
9389
9597
  self._RoomId = None
@@ -9396,6 +9604,9 @@ class StartStreamIngestRequest(AbstractModel):
9396
9604
  self._AudioEncodeParams = None
9397
9605
  self._SourceUrl = None
9398
9606
  self._SeekSecond = None
9607
+ self._AutoPush = None
9608
+ self._RepeatNum = None
9609
+ self._MaxDuration = None
9399
9610
 
9400
9611
  @property
9401
9612
  def SdkAppId(self):
@@ -9497,6 +9708,30 @@ class StartStreamIngestRequest(AbstractModel):
9497
9708
  def SeekSecond(self, SeekSecond):
9498
9709
  self._SeekSecond = SeekSecond
9499
9710
 
9711
+ @property
9712
+ def AutoPush(self):
9713
+ return self._AutoPush
9714
+
9715
+ @AutoPush.setter
9716
+ def AutoPush(self, AutoPush):
9717
+ self._AutoPush = AutoPush
9718
+
9719
+ @property
9720
+ def RepeatNum(self):
9721
+ return self._RepeatNum
9722
+
9723
+ @RepeatNum.setter
9724
+ def RepeatNum(self, RepeatNum):
9725
+ self._RepeatNum = RepeatNum
9726
+
9727
+ @property
9728
+ def MaxDuration(self):
9729
+ return self._MaxDuration
9730
+
9731
+ @MaxDuration.setter
9732
+ def MaxDuration(self, MaxDuration):
9733
+ self._MaxDuration = MaxDuration
9734
+
9500
9735
 
9501
9736
  def _deserialize(self, params):
9502
9737
  self._SdkAppId = params.get("SdkAppId")
@@ -9514,6 +9749,9 @@ class StartStreamIngestRequest(AbstractModel):
9514
9749
  self._AudioEncodeParams._deserialize(params.get("AudioEncodeParams"))
9515
9750
  self._SourceUrl = params.get("SourceUrl")
9516
9751
  self._SeekSecond = params.get("SeekSecond")
9752
+ self._AutoPush = params.get("AutoPush")
9753
+ self._RepeatNum = params.get("RepeatNum")
9754
+ self._MaxDuration = params.get("MaxDuration")
9517
9755
  memeber_set = set(params.keys())
9518
9756
  for name, value in vars(self).items():
9519
9757
  property_name = name[1:]
@@ -10881,6 +11119,124 @@ class TrtcUsage(AbstractModel):
10881
11119
 
10882
11120
 
10883
11121
 
11122
+ class UpdateAIConversationRequest(AbstractModel):
11123
+ """UpdateAIConversation请求参数结构体
11124
+
11125
+ """
11126
+
11127
+ def __init__(self):
11128
+ r"""
11129
+ :param _TaskId: 唯一标识一个任务
11130
+ :type TaskId: str
11131
+ :param _WelcomeMessage: 不填写则不进行更新,机器人的欢迎语
11132
+ :type WelcomeMessage: str
11133
+ :param _InterruptMode: 不填写则不进行更新。智能打断模式,0表示服务端自动打断,1表示服务端不打断,由端上发送打断信令进行打断
11134
+ :type InterruptMode: int
11135
+ :param _InterruptSpeechDuration: 不填写则不进行更新。InterruptMode为0时使用,单位为毫秒,默认为500ms。表示服务端检测到持续InterruptSpeechDuration毫秒的人声则进行打断
11136
+ :type InterruptSpeechDuration: int
11137
+ :param _LLMConfig: 不填写则不进行更新,LLM配置,详情见StartAIConversation接口
11138
+ :type LLMConfig: str
11139
+ :param _TTSConfig: 不填写则不进行更新,TTS配置,详情见StartAIConversation接口
11140
+ :type TTSConfig: str
11141
+ """
11142
+ self._TaskId = None
11143
+ self._WelcomeMessage = None
11144
+ self._InterruptMode = None
11145
+ self._InterruptSpeechDuration = None
11146
+ self._LLMConfig = None
11147
+ self._TTSConfig = None
11148
+
11149
+ @property
11150
+ def TaskId(self):
11151
+ return self._TaskId
11152
+
11153
+ @TaskId.setter
11154
+ def TaskId(self, TaskId):
11155
+ self._TaskId = TaskId
11156
+
11157
+ @property
11158
+ def WelcomeMessage(self):
11159
+ return self._WelcomeMessage
11160
+
11161
+ @WelcomeMessage.setter
11162
+ def WelcomeMessage(self, WelcomeMessage):
11163
+ self._WelcomeMessage = WelcomeMessage
11164
+
11165
+ @property
11166
+ def InterruptMode(self):
11167
+ return self._InterruptMode
11168
+
11169
+ @InterruptMode.setter
11170
+ def InterruptMode(self, InterruptMode):
11171
+ self._InterruptMode = InterruptMode
11172
+
11173
+ @property
11174
+ def InterruptSpeechDuration(self):
11175
+ return self._InterruptSpeechDuration
11176
+
11177
+ @InterruptSpeechDuration.setter
11178
+ def InterruptSpeechDuration(self, InterruptSpeechDuration):
11179
+ self._InterruptSpeechDuration = InterruptSpeechDuration
11180
+
11181
+ @property
11182
+ def LLMConfig(self):
11183
+ return self._LLMConfig
11184
+
11185
+ @LLMConfig.setter
11186
+ def LLMConfig(self, LLMConfig):
11187
+ self._LLMConfig = LLMConfig
11188
+
11189
+ @property
11190
+ def TTSConfig(self):
11191
+ return self._TTSConfig
11192
+
11193
+ @TTSConfig.setter
11194
+ def TTSConfig(self, TTSConfig):
11195
+ self._TTSConfig = TTSConfig
11196
+
11197
+
11198
+ def _deserialize(self, params):
11199
+ self._TaskId = params.get("TaskId")
11200
+ self._WelcomeMessage = params.get("WelcomeMessage")
11201
+ self._InterruptMode = params.get("InterruptMode")
11202
+ self._InterruptSpeechDuration = params.get("InterruptSpeechDuration")
11203
+ self._LLMConfig = params.get("LLMConfig")
11204
+ self._TTSConfig = params.get("TTSConfig")
11205
+ memeber_set = set(params.keys())
11206
+ for name, value in vars(self).items():
11207
+ property_name = name[1:]
11208
+ if property_name in memeber_set:
11209
+ memeber_set.remove(property_name)
11210
+ if len(memeber_set) > 0:
11211
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
11212
+
11213
+
11214
+
11215
+ class UpdateAIConversationResponse(AbstractModel):
11216
+ """UpdateAIConversation返回参数结构体
11217
+
11218
+ """
11219
+
11220
+ def __init__(self):
11221
+ r"""
11222
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
11223
+ :type RequestId: str
11224
+ """
11225
+ self._RequestId = None
11226
+
11227
+ @property
11228
+ def RequestId(self):
11229
+ return self._RequestId
11230
+
11231
+ @RequestId.setter
11232
+ def RequestId(self, RequestId):
11233
+ self._RequestId = RequestId
11234
+
11235
+
11236
+ def _deserialize(self, params):
11237
+ self._RequestId = params.get("RequestId")
11238
+
11239
+
10884
11240
  class UpdatePublishCdnStreamRequest(AbstractModel):
10885
11241
  """UpdatePublishCdnStream请求参数结构体
10886
11242
 
@@ -10896,7 +11252,7 @@ class UpdatePublishCdnStreamRequest(AbstractModel):
10896
11252
  :type SequenceNumber: int
10897
11253
  :param _WithTranscoding: 是否转码,0表示无需转码,1表示需要转码。
10898
11254
  :type WithTranscoding: int
10899
- :param _AudioParams: 更新相关参数,只支持更新参与混音的主播列表参数。不填表示不更新此参数。
11255
+ :param _AudioParams: 更新相关参数,只支持更新参与混音的主播列表参数,不支持更新Codec、采样率、码率和声道数。不填表示不更新此参数。
10900
11256
  :type AudioParams: :class:`tencentcloud.trtc.v20190722.models.McuAudioParams`
10901
11257
  :param _VideoParams: 更新视频相关参数,转码时支持更新除编码类型之外的编码参数,视频布局参数,背景图片和背景颜色参数,水印参数。不填表示不更新此参数。
10902
11258
  :type VideoParams: :class:`tencentcloud.trtc.v20190722.models.McuVideoParams`
@@ -11077,6 +11433,100 @@ class UpdatePublishCdnStreamResponse(AbstractModel):
11077
11433
  self._RequestId = params.get("RequestId")
11078
11434
 
11079
11435
 
11436
+ class UpdateStreamIngestRequest(AbstractModel):
11437
+ """UpdateStreamIngest请求参数结构体
11438
+
11439
+ """
11440
+
11441
+ def __init__(self):
11442
+ r"""
11443
+ :param _SdkAppId: TRTC的SDKAppId,和任务的房间所对应的SDKAppId相同
11444
+ :type SdkAppId: int
11445
+ :param _TaskId: 任务的唯一Id,在启动任务成功后会返回。
11446
+ :type TaskId: str
11447
+ :param _StreamUrl: 源流URL【必填】。
11448
+ :type StreamUrl: str
11449
+ """
11450
+ self._SdkAppId = None
11451
+ self._TaskId = None
11452
+ self._StreamUrl = None
11453
+
11454
+ @property
11455
+ def SdkAppId(self):
11456
+ return self._SdkAppId
11457
+
11458
+ @SdkAppId.setter
11459
+ def SdkAppId(self, SdkAppId):
11460
+ self._SdkAppId = SdkAppId
11461
+
11462
+ @property
11463
+ def TaskId(self):
11464
+ return self._TaskId
11465
+
11466
+ @TaskId.setter
11467
+ def TaskId(self, TaskId):
11468
+ self._TaskId = TaskId
11469
+
11470
+ @property
11471
+ def StreamUrl(self):
11472
+ return self._StreamUrl
11473
+
11474
+ @StreamUrl.setter
11475
+ def StreamUrl(self, StreamUrl):
11476
+ self._StreamUrl = StreamUrl
11477
+
11478
+
11479
+ def _deserialize(self, params):
11480
+ self._SdkAppId = params.get("SdkAppId")
11481
+ self._TaskId = params.get("TaskId")
11482
+ self._StreamUrl = params.get("StreamUrl")
11483
+ memeber_set = set(params.keys())
11484
+ for name, value in vars(self).items():
11485
+ property_name = name[1:]
11486
+ if property_name in memeber_set:
11487
+ memeber_set.remove(property_name)
11488
+ if len(memeber_set) > 0:
11489
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
11490
+
11491
+
11492
+
11493
+ class UpdateStreamIngestResponse(AbstractModel):
11494
+ """UpdateStreamIngest返回参数结构体
11495
+
11496
+ """
11497
+
11498
+ def __init__(self):
11499
+ r"""
11500
+ :param _Status: 任务的状态信息。InProgress:表示当前任务正在进行中。NotExist:表示当前任务不存在。示例值:InProgress
11501
+ :type Status: str
11502
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
11503
+ :type RequestId: str
11504
+ """
11505
+ self._Status = None
11506
+ self._RequestId = None
11507
+
11508
+ @property
11509
+ def Status(self):
11510
+ return self._Status
11511
+
11512
+ @Status.setter
11513
+ def Status(self, Status):
11514
+ self._Status = Status
11515
+
11516
+ @property
11517
+ def RequestId(self):
11518
+ return self._RequestId
11519
+
11520
+ @RequestId.setter
11521
+ def RequestId(self, RequestId):
11522
+ self._RequestId = RequestId
11523
+
11524
+
11525
+ def _deserialize(self, params):
11526
+ self._Status = params.get("Status")
11527
+ self._RequestId = params.get("RequestId")
11528
+
11529
+
11080
11530
  class UserInformation(AbstractModel):
11081
11531
  """用户信息,包括用户进房时间,退房时间等
11082
11532
 
@@ -26,6 +26,29 @@ class TrtcClient(AbstractClient):
26
26
  _service = 'trtc'
27
27
 
28
28
 
29
+ def ControlAIConversation(self, request):
30
+ """提供服务端控制机器人的功能
31
+
32
+ :param request: Request instance for ControlAIConversation.
33
+ :type request: :class:`tencentcloud.trtc.v20190722.models.ControlAIConversationRequest`
34
+ :rtype: :class:`tencentcloud.trtc.v20190722.models.ControlAIConversationResponse`
35
+
36
+ """
37
+ try:
38
+ params = request._serialize()
39
+ headers = request.headers
40
+ body = self.call("ControlAIConversation", params, headers=headers)
41
+ response = json.loads(body)
42
+ model = models.ControlAIConversationResponse()
43
+ model._deserialize(response["Response"])
44
+ return model
45
+ except Exception as e:
46
+ if isinstance(e, TencentCloudSDKException):
47
+ raise
48
+ else:
49
+ raise TencentCloudSDKException(type(e).__name__, str(e))
50
+
51
+
29
52
  def CreateCloudRecording(self, request):
30
53
  """接口说明:
31
54
  启动云端录制功能,完成房间内的音视频录制,并上传到指定的云存储。您可以通过此 API 接口把TRTC 房间中的每一路音视频流做单独的录制又或者多路视频画面合流混成一路。
@@ -992,7 +1015,9 @@ class TrtcClient(AbstractClient):
992
1015
 
993
1016
 
994
1017
  def StartAIConversation(self, request):
995
- """启动一个任务,机器人将进入TRTC房间,与指定成员进行AI对话
1018
+ """启动AI对话任务,AI通道机器人进入TRTC房间,与房间内指定的成员进行AI对话,适用于智能客服,AI口语教师等场景
1019
+
1020
+ TRTC AI对话功能内置语音转文本能力,同时提供通道服务,即客户可灵活指定第三方AI模型(LLM)服务和文本转音频(TTS)服务,更多[功能说明](https://cloud.tencent.com/document/product/647/108901)。
996
1021
 
997
1022
  :param request: Request instance for StartAIConversation.
998
1023
  :type request: :class:`tencentcloud.trtc.v20190722.models.StartAIConversationRequest`
@@ -1015,48 +1040,12 @@ class TrtcClient(AbstractClient):
1015
1040
 
1016
1041
 
1017
1042
  def StartAITranscription(self, request):
1018
- """这个接口调用后,后台会启动转录机器人,实时进行语音识别并下发字幕和转录消息。
1043
+ """启动转录机器人,后台会通过机器人拉流进行实时进行语音识别并下发字幕和转录消息。
1019
1044
  转录机器人支持两种拉流方式,通过TranscriptionMode字段控制:
1020
1045
  - 拉取全房间的流。
1021
1046
  - 拉取特定用户的流。
1022
1047
 
1023
- 服务端通过TRTC的自定义消息实时下发字幕和会议记录,CmdId固定是1。客户端只需监听自定义消息的回调即可,比如[c++回调](https://cloud.tencent.com/document/product/647/79637#4cd82f4edb24992a15a25187089e1565)。其他客户端比如安卓、Web等同样可在该链接处找到。
1024
-
1025
- 服务端实时下发的消息是JSON字符串,实时字幕具体格式如下:
1026
- `{
1027
- "type": "subtitle",
1028
- "userid": "xxx",
1029
- "text": "xxx",
1030
- "translation_text": "xxx",
1031
- "start_time": "00:00:02",
1032
- "end_time": "00:00:05"
1033
- }`
1034
- 字段作用如下:
1035
- - type是subtitle,表示这是实时字幕消息。
1036
- - userid表示是哪个用户说的话。
1037
- - text是语音识别出的文本。
1038
- - translation_text是text翻译后的文本,如果不启用翻译,则是空字符串。
1039
- - start_time和end_time表示该字幕消息从任务开启后的开始和结束时间。
1040
-
1041
- 转录消息具体格式如下:
1042
- `{
1043
- "type": "transcription",
1044
- "userid": "xxx",
1045
- "text": "xxx",
1046
- "translation_text": "xx",
1047
- "start_time": "00:00:02",
1048
- "end_time": "00:00:05"
1049
- }`
1050
- 字段作用如下:
1051
- - type是transcription,表示这是转录消息。
1052
- - 其余字段同实时字幕消息。
1053
-
1054
- 转录消息和实时字幕消息的区别是,转录消息是完整的一句话,实时字幕消息则是这一句话的中间阶段。
1055
- 假如有一句完整的话,“今天天气怎么样?”,那么服务的下发消息的顺序可能是这样:
1056
- - 字幕消息,“今天”
1057
- - 字幕消息,“今天天气”
1058
- - 字幕消息,“今天天气怎么样”
1059
- - 转录消息,“今天天气怎么样?”
1048
+ 服务端通过TRTC的自定义消息实时下发字幕以及转录消息,CmdId固定是1。客户端只需监听自定义消息的回调即可,比如[c++回调](https://cloud.tencent.com/document/product/647/79637#4cd82f4edb24992a15a25187089e1565)。其他客户端比如安卓、Web等同样可在该链接处找到。
1060
1049
 
1061
1050
  :param request: Request instance for StartAITranscription.
1062
1051
  :type request: :class:`tencentcloud.trtc.v20190722.models.StartAITranscriptionRequest`
@@ -1165,102 +1154,14 @@ class TrtcClient(AbstractClient):
1165
1154
 
1166
1155
 
1167
1156
  def StartPublishCdnStream(self, request):
1168
- """TRTC房间中可能会同时存在多路音视频流,您可以通过混流转推API,通知腾讯云服务端将同个房间或者多个房间的多路视频画面混合到一起,并指定每一路画面的位置,同时将多路声音进行混音,最终形成一路音视频流,以便用于录制和直播观看,同时可以支持将这一路音视频的混流回推到TRTC房间内部。
1169
-
1170
- 云api混流转推功能包含三个接口:
1171
- 1、StartPublishCdnStream:启动一个混流转推任务,此接口会发起一个新的混流转推任务,启动成功后会返回一个sdkappid维度唯一的任务id(TaskId)。您需要保存该TaskId,后续需要依赖此TaskId更新任务和结束任务。
1172
- 2、UpdatePublishCdnStream:更新指定的混流转推任务,包括:更新视频画面的布局、更新混音列表、更新转推cdn的地址列表以及更新回推房间列表。
1173
- 3、StopPublishCdnStream:停止指定的混流转推任务。
1174
-
1175
- 您可以通过此套接口实现目标:
1176
- 1、设置最终混流的画质和音质,包括视频分辨率、视频帧率、视频码率,和音频质量。
1177
- 2、设置每一路画面的布局位置,您只需要设置一次,后续您指定的混流用户进房上行音视频时,排版引擎会自动将该用户的画面混合到您指定的布局位置。同时您可以使用更新接口调整画面的布局位置。
1178
- 3、设置多个cdn转推的目的地址,一个转推任务最多可以同时设置10个cdn转推地址,如果您需要转推非腾讯云的cdn地址时,需要联系腾讯云开通能力。
1179
- 4、设置多个回推房间列表,一个转推任务最多可以同时将混流回推到10个TRTC房间。
1180
-
1181
- 目前已经支持如下几种布局模版,其中动态布局模版(悬浮模板、九宫格模板、屏幕分享模板)只支持单个TRTC房间,自定义模版支持混合多个TRTC房间内的音视频流。具体说明如下:
1182
- 1、悬浮模板:第一个进入房间的用户的视频画面会铺满整个屏幕,其他用户的视频画面从左下角依次水平排列,显示为小画面,最多4行,每行4个,小画面悬浮于大画面之上。最多支持1个大画面和15个小画面,如果用户只发送音频默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。
1183
- 2、九宫格模板:所有用户的视频画面大小一致,平分整个屏幕,人数越多,每个画面的尺寸越小。最多支持16个画面,如果用户只发送音频,默认不占布局配置,也支持设置。每个子画面默认采用居中裁剪的方式进行渲染,也支持统一设置子画面的渲染方式。
1184
- 3、屏幕分享模板:适合视频会议和在线教育场景的布局,屏幕分享(或者主讲的摄像头)始终占据屏幕左侧的大画面位置,需要您明确设置占据大画面的混流用户信息。其他用户依次垂直排列于右侧,最多两列,每列最多8个小画面。最多支持1个大画面和15个小画面。若上行分辨率宽高比与画面输出宽高比不一致时,左侧大画面为了保持内容的完整性采用缩放方式处理,右侧小画面采用裁剪方式处理,也支持统一设置子画面的渲染方式。
1185
- 4、自定义布局模版:支持您主动根据业务需要设置布局位置,每个预设的布局位置支持具名设置(具名设置需要明确指定房间号和用户名)和不具名设置。当一个子画面具名设置时,该位置就为该用户预留,用户进房且上行音视频数据时会自动占据该位置,其它用户不会占据该位置。当预设的布局位置未具名时,排版引擎会根据进房间顺序自动填充,预设位置填满时,不再混合其它用户的画面和声音。每个子画面位置支持设置占位图(BackgroundImageUrl),当用户未进房或者只上行音频数据时,该位置画面可显示对应的占位图画面。
1186
-
1187
- 您可以控制台开通旁路转推回调功能实现转推cdn状态的事件监控,具体说明请参考官网文档:[旁路转推回调说明](https://cloud.tencent.com/document/product/647/88552)
1188
- 您使用转推api时根据使用特性可能会产生如下费用:
1189
- MCU混流转码费用请参考文档:[云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446)
1190
- 转推非腾讯云CDN费用请参考文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)
1191
-
1192
- 参数的使用说明:
1193
- 1、AgentParams:每个转推任务会拉起一个机器人用户进入TRTC房间进行拉流,您需要通过AgentParams.UserId参数进行设置,这个机器人id不能和房间中的普通用户id冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。您可以通过设置AgentParams.MaxIdleTime控制转推任务的自动结束,当设置此参数时,所有参与混流转推的主播持续离开TRTC房间超过MaxIdleTime的时长,自动停止转推任务。注意:参与混流转推的主播仅是停止音视频上行,转推任务不会自动停止。
1194
- 2、WithTranscoding:如果需要将多路音视频流混合到一路时,WithTranscoding必须设置为1。
1195
- 3、AudioParams:转推任务音频参数和视频参数是分开设置的,若您想要将指定的用户音频进行混音时,需要明确设置AudioParams.SubscribeAudioList。若您不设置AudioParams.SubscribeAudioList,混音引擎会自动将TRTC房间中所有用户的音频混合。若您想要混合TRTC房间除指定用户之外的所有用户的声音,可以通过AudioParams.UnSubscribeAudioList设置音频黑名单列表。
1196
- 4、VideoParams:若您想要将用户的视频混合,可以通过VideoParams设置,若只想要混纯音频,则不用设置VideoParams参数。您可以通过VideoParams.LayoutParams.MixLayoutMode设置画面的布局模式,包括:动态布局(1:悬浮布局(默认),2:屏幕分享布局,3:九宫格布局)和自定义布局。动态布局模式由排版引擎按照固定的布局自动混合,不需要设置VideoParams.LayoutParams.MixLayoutList。当使用悬浮布局和屏幕分享布局时,您可以通过设置VideoParams.LayoutParams.MaxVideoUser参数指定大画面用户。自定义布局模式提供给您自主布局画面的能力,可以通过VideoParams.LayoutParams.MixLayoutList参数指定每个用户所在的布局位置。在每个布局参数中,您可以通过用户媒体流参数(UserMediaStream)指定这个布局位置为指定的用户预留,也可以不设置UserMediaStream,由排版引擎按照用户进入TRTC房间的顺序自动填充,另外您也可以设置每个布局位置的渲染方式(RenderMode)和裁剪方式(CustomCrop)。
1197
- 5、VideoParams.WaterMarkList:若您想要混流画面中叠加水印,可以通过VideoParams.WaterMarkList参数设置,支持图片水印和文字水印,支持透明通道。
1198
- 6、SingleSubscribeParams:若您想要将TRTC房间中的一路单流推到CDN,可以使用SingleSubscribeParams参数设置,此时需要将WithTranscoding参数设置为0。
1199
- 7、PublishCdnParams.N:若您想要推流到CDN,可以使用PublishCdnParams.N参数设置,支持最多同时推流到10个CDN地址。若转推地址是腾讯云CDN时,请将IsTencentCdn明确设置为1;若您有转推非腾讯云CDN的需求时,请联系腾讯云技术支持开通,转推非腾讯云会产生转推费用,费用说明请参考官网文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)。
1200
- 8、FeedBackRoomParams.N:若您想要将混合的音视频流回推到TRTC房间,可以使用FeedBackRoomParams.N参数设置,支持最多同时推10路流回TRTC房间。您需要指定回推的TRTC房间号和机器人ID(UserId),机器人ID不能与普通用户ID冲突,否则会导致转推任务由于机器人用户被踢出TRTC房间而异常结束,您可以通过增加特殊前缀的方式规避。
1201
- 9、SeiParams:若您想要混合的音视频流中增加SEI信息时,可以使用SeiParams参数设置,支持音量布局SEI和叠加转推请求中的SEI,其中音量布局SEI的内容是固定的json结构,具体请看本章节后续的SEI说明。您可以通过FollowIdr参数设置SEI跟随关键帧一起发送。音量布局sei的说明如下:
1202
- 如果您的CDN观众端需要识别到参与混流的主播位置,以及需要识别到参与混流的主播的音量信息,可以通过音量布局sei实现。音量布局sei的payload内容及参数说明如下:
1203
-
1204
- ```
1205
- {
1206
- "app_data":"",
1207
- "canvas":{
1208
- "w":1080,
1209
- "h":960
1210
- },
1211
- "regions":[
1212
- {
1213
- "uid":"65949987242835883c",
1214
- "zorder":2,
1215
- "volume":45,
1216
- "x":270,
1217
- "y":480,
1218
- "w":540,
1219
- "h":480
1220
- },
1221
- {
1222
- "uid":"659c9d8d242b328d31",
1223
- "zorder":2,
1224
- "volume":0,
1225
- "x":0,
1226
- "y":0,
1227
- "w":540,
1228
- "h":480
1229
- },
1230
- {
1231
- "uid":"64989a82272b308c",
1232
- "zorder":2,
1233
- "volume":91,
1234
- "x":540,
1235
- "y":0,
1236
- "w":540,
1237
- "h":480
1238
- }
1239
- ],
1240
- "ver":"1.0",
1241
- "ts":1648544726
1242
- }
1243
- ```
1244
- canvas:这个是混流信令中VideoEncode设置的宽高,即:混流输出的整个画布宽高。
1245
- regions:里面是真实混入的用户id和对应的子画面位置,若参与混流的用户未进入TRTC房间或者未开启视频上行,regions中不会包含该用户。
1246
- uid:代表参与混流的用户ID。
1247
- zorder:参与混流userid在混流输出的层级。
1248
- x/y:参与混流userid的子画面在画布的坐标。
1249
- w/h:参与混流userid的子画面的大小。
1250
- volume:代表混流用户的音量,取值范围为0-100,值越大,代表该用户参与混流时的音量越大。
1251
- ts:是输出sei的服务器本地秒级时戳。
1252
- ver:可以忽略。
1253
-
1254
- 其它使用注意事项:
1255
- 1、使用混流转推接口时,您需要先调用启动转推任务接口(StartPublishCdnStream),获取启动转推任务响应中的任务ID标识(TaskId)。后续传入任务ID标识(TaskId)来更新转推任务(UpdatePublishCdnStream)和停止转推任务(StopPublishCdnStream)。
1256
- 2、转推API不支持发起到TRTC控制台配置的自动旁路任务,以及通过TRTC SDK进房接口中设置的自定义流ID的旁路任务。
1257
- 3、为了确保转推链接的稳定,同一个转推任务不支持纯音频、音视频、纯视频之间的切换。
1258
- 4、为了确保转推链接的稳定,不支持update时更新视频参数(codec)和音频参数(codec、采样率、码率、声道数)。
1259
- 5、发起单流旁路任务时,AudioParams和VideoParams都填写表示音视频旁路,如果仅填写AudioParams表示纯音频旁路,任务进行过程中不支持纯音频到音视频的切换。音视频旁路时,VideoParams中的Width、Height、Fps、BitRate、Gop需要按照真实上行参数填写。
1260
- 6、更新请求中必须携带SequenceNumber参数,用于防止请求乱序。客户保证对同一个任务更新时的SequenceNumber参数递增,否则会导致混流任务更新失败。
1261
- 7、调用api时region选择说明:如果应用id是1400xxx时,region可填北京、上海、广州、香港,如果您的cdn观众主要在海外,请选择香港;如果应用id是200xxx或400xxx时,region请选择新加坡。
1262
- 8、回推到TRTC房间的流不会参与其他回推房间任务的混流,满足下面条件之一时,可以参与其他转推cdn任务的混流: (1) 转推cdn任务在视频参数中通过具名方式指定推流机器人参与混流;(2) 转推cdn任务在音频参数中通过白名单方式指定推流机器人参与混流;(3) 转推cdn任务参与混流用户的房间号与回推机器人对应混流用户的房间号完全不同。
1263
- 9、您可以在主播进房前,提前创建转推任务,结束转推任务时需要主动调用停止接口。如果您没有调用停止转推任务接口时,腾讯云后台会按照所有参与混流的用户没有任何数据上行的时间算起,直到超过启动转推任务时设置的超时时间(AgentParams.MaxIdleTime)为止,自动停止混流转推任务。
1157
+ """接口说明:
1158
+ 启动一个混流转推任务,将 TRTC 房间的多路音视频流混成一路音视频流,编码后推到直播 CDN 或者回推到 TRTC 房间。也支持不转码直接转推 TRTC 房间的单路流。启动成功后,会返回一个 SdkAppid 维度唯一的任务 Id(TaskId)。您需要保存该 TaskId,后续需要依赖此 TaskId 更新和结束任务。可以参考文档: [功能说明](https://cloud.tencent.com/document/product/647/84721#b9a855f4-e38c-4616-9b07-fc44e0e8282a) 和 [常见问题](https://cloud.tencent.com/document/product/647/62620)
1159
+
1160
+ 注意:
1161
+ 您可以在控制台开通旁路转推回调功能,对转推 CDN 状态的事件进行监控,回调请参考文档:[旁路转推回调说明](https://cloud.tencent.com/document/product/647/88552)
1162
+ 您发起混流转推任务时,可能会产生如下费用:
1163
+ MCU 混流转码费用,请参考文档:[云端混流转码计费说明](https://cloud.tencent.com/document/product/647/49446)
1164
+ 转推非腾讯云 CDN 费用,请参考文档:[云端转推计费说明](https://cloud.tencent.com/document/product/647/82155)
1264
1165
 
1265
1166
  :param request: Request instance for StartPublishCdnStream.
1266
1167
  :type request: :class:`tencentcloud.trtc.v20190722.models.StartPublishCdnStreamRequest`
@@ -1423,7 +1324,8 @@ class TrtcClient(AbstractClient):
1423
1324
 
1424
1325
 
1425
1326
  def StopPublishCdnStream(self, request):
1426
- """停止转推任务。
1327
+ """接口说明:
1328
+ 停止指定的混流转推任务。如果没有调用 Stop 接口停止任务,所有参与混流转推的主播离开 TRTC 房间超过 AgentParams.MaxIdleTime 设置的时间后,任务也会自动停止。
1427
1329
 
1428
1330
  :param request: Request instance for StopPublishCdnStream.
1429
1331
  :type request: :class:`tencentcloud.trtc.v20190722.models.StopPublishCdnStreamRequest`
@@ -1516,9 +1418,33 @@ class TrtcClient(AbstractClient):
1516
1418
  raise TencentCloudSDKException(type(e).__name__, str(e))
1517
1419
 
1518
1420
 
1421
+ def UpdateAIConversation(self, request):
1422
+ """更新AIConversation参数
1423
+
1424
+ :param request: Request instance for UpdateAIConversation.
1425
+ :type request: :class:`tencentcloud.trtc.v20190722.models.UpdateAIConversationRequest`
1426
+ :rtype: :class:`tencentcloud.trtc.v20190722.models.UpdateAIConversationResponse`
1427
+
1428
+ """
1429
+ try:
1430
+ params = request._serialize()
1431
+ headers = request.headers
1432
+ body = self.call("UpdateAIConversation", params, headers=headers)
1433
+ response = json.loads(body)
1434
+ model = models.UpdateAIConversationResponse()
1435
+ model._deserialize(response["Response"])
1436
+ return model
1437
+ except Exception as e:
1438
+ if isinstance(e, TencentCloudSDKException):
1439
+ raise
1440
+ else:
1441
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1442
+
1443
+
1519
1444
  def UpdatePublishCdnStream(self, request):
1520
- """更新转推任务。
1521
- 注:请参见启动转推任务的接口说明和使用说明。
1445
+ """接口说明:
1446
+ 成功发起混流转推后,可以使用此接口来更新任务。仅在任务进行时有效,任务退出后更新将会返回错误。更新操作为增量更新模式。
1447
+ 注意:为了保障推流的稳定性,更新不支持任务在纯音频、音视频、纯视频之间进行切换。
1522
1448
 
1523
1449
  :param request: Request instance for UpdatePublishCdnStream.
1524
1450
  :type request: :class:`tencentcloud.trtc.v20190722.models.UpdatePublishCdnStreamRequest`
@@ -1533,6 +1459,29 @@ class TrtcClient(AbstractClient):
1533
1459
  model = models.UpdatePublishCdnStreamResponse()
1534
1460
  model._deserialize(response["Response"])
1535
1461
  return model
1462
+ except Exception as e:
1463
+ if isinstance(e, TencentCloudSDKException):
1464
+ raise
1465
+ else:
1466
+ raise TencentCloudSDKException(type(e).__name__, str(e))
1467
+
1468
+
1469
+ def UpdateStreamIngest(self, request):
1470
+ """更新输入在线媒体流任务的StreamUrl
1471
+
1472
+ :param request: Request instance for UpdateStreamIngest.
1473
+ :type request: :class:`tencentcloud.trtc.v20190722.models.UpdateStreamIngestRequest`
1474
+ :rtype: :class:`tencentcloud.trtc.v20190722.models.UpdateStreamIngestResponse`
1475
+
1476
+ """
1477
+ try:
1478
+ params = request._serialize()
1479
+ headers = request.headers
1480
+ body = self.call("UpdateStreamIngest", params, headers=headers)
1481
+ response = json.loads(body)
1482
+ model = models.UpdateStreamIngestResponse()
1483
+ model._deserialize(response["Response"])
1484
+ return model
1536
1485
  except Exception as e:
1537
1486
  if isinstance(e, TencentCloudSDKException):
1538
1487
  raise
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-trtc
3
- Version: 3.0.1194
3
+ Version: 3.0.1241
4
4
  Summary: Tencent Cloud Trtc SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common (==3.0.1194)
18
+ Requires-Dist: tencentcloud-sdk-python-common (==3.0.1241)
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -0,0 +1,10 @@
1
+ tencentcloud/__init__.py,sha256=7YHkkSBCNOjELjN1ynJWAt_FnYcvQf9jufkU5ttUaK8,631
2
+ tencentcloud/trtc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ tencentcloud/trtc/v20190722/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ tencentcloud/trtc/v20190722/errorcodes.py,sha256=WNu9Hx8kn4lpbc342xXM1lw4uTQIx2JCvZchRlUXBL8,10987
5
+ tencentcloud/trtc/v20190722/models.py,sha256=izGCPCS09gxLizUTIEXXgtUOU32fFtwXVRLU3zqwoa8,400324
6
+ tencentcloud/trtc/v20190722/trtc_client.py,sha256=sTzamtT7sp-ul08Ekv4xEa9sWm03AEDqQMcioZX4LtE,78132
7
+ tencentcloud_sdk_python_trtc-3.0.1241.dist-info/METADATA,sha256=G0RPV2vWX7a8M_GlrCPs_QI8HSpJxJK9hgfLy9aWpbo,1497
8
+ tencentcloud_sdk_python_trtc-3.0.1241.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
9
+ tencentcloud_sdk_python_trtc-3.0.1241.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
10
+ tencentcloud_sdk_python_trtc-3.0.1241.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- tencentcloud/__init__.py,sha256=F7_UQmf01p5Of0ObNxg9OjJNvlw8iF5kgvthsDv1vw0,631
2
- tencentcloud/trtc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- tencentcloud/trtc/v20190722/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- tencentcloud/trtc/v20190722/errorcodes.py,sha256=K4q7UWQkdedEyrQJFz67cH3xzyKo78PS0EseWry0JXo,10898
5
- tencentcloud/trtc/v20190722/models.py,sha256=FmIDZpKXHZ0A1MGHEKMSMw5AhS8kFVYygYRIYwdCH-M,385436
6
- tencentcloud/trtc/v20190722/trtc_client.py,sha256=ZQTZDqcrIEAvi2AxxnciId-HHZQ595o3NmMGbZQ2HlE,88258
7
- tencentcloud_sdk_python_trtc-3.0.1194.dist-info/METADATA,sha256=NW4DRf8IsAOfV-7PqcvvHps4OlfzP6uaQev7TKMSZjU,1497
8
- tencentcloud_sdk_python_trtc-3.0.1194.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
9
- tencentcloud_sdk_python_trtc-3.0.1194.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
10
- tencentcloud_sdk_python_trtc-3.0.1194.dist-info/RECORD,,