package com.sonic.cow.client.input.voicechat.domain;

import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ASRProviderParams {
    @ApiModelProperty("必填：模型类型。该参数固定取值：bigmodel，表示火山引擎语音识别大模型。")
    @JSONField(name="Mode")
    private String Mode;
    @ApiModelProperty("必填：AppId String   示例值：93****21\n" +
            "开通火山引擎流式语音识别大模型服务后获取的 App ID，用于标识应用。你可登录豆包语音控制台获取。")
    @JSONField(name="AppId")
    private String AppId;
    @ApiModelProperty("必填：与开通流式语音识别大模型服务 App ID 对应的 AccessToken，用于身份认证。你可登录豆包语音控制台获取。\n" +
            "Access Token 查找方式，可参看如何获取 Token。")
    @JSONField(name="AccessToken")
    private String AccessToken;
//    @ApiModelProperty("火山引擎流式语音识别大模型服务开通类型：\n" +
//            "volc.bigasr.sauc.duration：小时版。\n" +
//            "volc.bigasr.sauc.concurrent：并发版。\n" +
//            "默认值为 volc.bigasr.sauc.duration。")
//    private String ApiResourceId;
@JSONField(name="StreamMode")
@ApiModelProperty("语音识别结果输出模式：\n" +
            "0：流式输出。即识别结果会分段、实时地返回。该模式下识别速度更快，适用于实时字幕场景。\n" +
            "1：非流式输出。即在完整接收并处理完整个语音片段后，一次性返回最终的识别结果。该模式下识别准确率更高，适用于不需要即时反馈的离线转录场景（如会议录音）。\n" +
            "默认值为 0。")
    private int StreamMode;

    @ApiModelProperty(" Example: zh-CN\n" +
            "Language code, supported values:\n" +
            "zh-CN: Chinese (Simplified)\n" +
            "en-US: English (United States)")
    @JSONField(name="Language")
    private String Language;
}