# Code generated by lark_sdk_gen. DO NOT EDIT.

from pylark.lark_request import RawRequestReq, _new_method_option
import attr
import typing
import io


@attr.s
class RecognizeSpeechFileReqConfig(object):
    file_id: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 仅包含字母数字和下划线的 16 位字符串作为文件的标识，用户生成, 示例值："qwe12dd34567890w"
    format: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 语音格式，目前仅支持：pcm, 示例值："pcm"
    engine_type: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 引擎类型，目前仅支持：16k_auto 中英混合, 示例值："16k_auto"


@attr.s
class RecognizeSpeechFileReqSpeech(object):
    speech: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # base64 后的音频文件进行, 示例值："base64 后的音频内容"


@attr.s
class RecognizeSpeechFileReq(object):
    speech: RecognizeSpeechFileReqSpeech = attr.ib(
        default=None, metadata={"req_type": "json"}
    )  # 语音资源
    config: RecognizeSpeechFileReqConfig = attr.ib(
        default=None, metadata={"req_type": "json"}
    )  # 配置属性


@attr.s
class RecognizeSpeechFileResp(object):
    recognition_text: str = attr.ib(
        default="", metadata={"req_type": "json"}
    )  # 语音识别后的文本信息


def _gen_recognize_speech_file_req(request, options) -> RawRequestReq:
    return RawRequestReq(
        dataclass=RecognizeSpeechFileResp,
        scope="AI",
        api="RecognizeSpeechFile",
        method="POST",
        url="https://open.feishu.cn/open-apis/speech_to_text/v1/speech/file_recognize",
        body=request,
        method_option=_new_method_option(options),
        need_tenant_access_token=True,
    )
