<body><div id="root"><script nonce="">((T,M,N,I,j,L,w,W)=>{let K=document.documentElement,X=["light","dark"];function Ae(se){(Array.isArray(T)?T:[T]).forEach(ae=>{let J=ae==="class",re=J&&L?j.map(he=>L[he]||he):j;J?(K.classList.remove(...re),K.classList.add(L&&L[se]?L[se]:se)):K.setAttribute(ae,se)}),pe(se)}function pe(se){W&&X.includes(se)&&(K.style.colorScheme=se)}function De(){return window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}if(I)Ae(I);else try{let se=localStorage.getItem(M)||N,ae=w&&se==="system"?De():se;Ae(ae)}catch{}})("class","theme","system",null,["light","dark"],null,true,true)</script><div style="width: 100%; height: 100%;"><div class="flex flex-col h-full"><div id="page-container"></div><nav class="bg-white border-b border-[#dee0e3] border-solid flex items-center justify-between w-full h-[52px] lg:h-[64px] px-[16px] py-[8px] lg:py-0"><div class="flex items-center justify-between w-full lg:hidden"><div class="flex gap-[19px] items-center"><div class="flex flex-col items-center justify-center overflow-clip shrink-0"><button class="flex items-center justify-center w-[18px] h-[18px] cursor-pointer" aria-label="Menu" type="button"><img alt="Menu" class="block max-w-none size-full" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDE4IDE4IiBmaWxsPSJub25lIj4KICA8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEuODc1IDIuNjI1TDE2LjEyNSAyLjYyNUwxNi4xMjUgNC4xMjVMMS44NzUgNC4xMjVMMS44NzUgMi42MjVaTTEuODc1IDguMjVMMTIuOTM3NSA4LjI1TDEyLjkzNzUgOS43NUwxLjg3NSA5Ljc1TDEuODc1IDguMjVaTTEuODc1IDEzLjg3NUw3LjEyNSAxMy44NzVMNy4xMjUgMTUuMzc1TDEuODc1IDE1LjM3NUwxLjg3NSAxMy44NzVaIiBmaWxsPSIjMUYyMzI5Ii8+Cjwvc3ZnPgo="></button></div><a class="inline-grid grid-cols-[max-content] grid-rows-[max-content] leading-[0] place-items-start cursor-pointer hover:opacity-80 transition-opacity shrink-0" title="返回首页" aria-label="返回首页" href="/"><div class="h-[36px] w-[131px]"><svg class="w-full h-full" width="132" height="16" viewBox="0 0 132 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g><path d="M64.9008 0.00138769C64.6875 -0.00400695 64.4753 0.0339904 64.2771 0.113075C64.0789 0.192159 63.8988 0.310682 63.7478 0.461454C63.5968 0.612226 63.478 0.792105 63.3985 0.990178C63.3191 1.18825 63.2808 1.40039 63.2858 1.61373C63.2858 2.04553 63.4574 2.45964 63.7627 2.76497C64.068 3.0703 64.4821 3.24183 64.9139 3.24183C65.3457 3.24183 65.7599 3.0703 66.0652 2.76497C66.3705 2.45964 66.542 2.04553 66.542 1.61373C66.5473 1.39811 66.5082 1.18371 66.4271 0.983812C66.3461 0.783917 66.2249 0.602783 66.0711 0.451629C65.9172 0.300476 65.734 0.182523 65.5327 0.105076C65.3314 0.027629 65.1163 -0.00766247 64.9008 0.00138769Z" fill="#1F2329"></path><path d="M66.1689 4.55469H63.6296V15.7255H66.1689V4.55469Z" fill="#1F2329"></path><path d="M38.8643 4.06641C35.3586 4.06641 33.0872 6.76065 33.0872 10.0326C33.0872 13.3045 35.3717 16.0014 38.8643 16.0014C42.3568 16.0014 44.6414 13.3072 44.6414 10.0326C44.6414 6.75802 42.3673 4.06641 38.8643 4.06641ZM38.8643 13.6932C37.0261 13.6932 35.5844 12.3408 35.5844 10.0326C35.5844 7.72437 37.0261 6.37463 38.8643 6.37463C40.7025 6.37463 42.1415 7.727 42.1415 10.0326C42.1415 12.3382 40.7025 13.6932 38.8643 13.6932Z" fill="#1F2329"></path><path d="M17.7909 0.000890693C17.5765 -0.00632181 17.3629 0.0303305 17.1631 0.108601C16.9634 0.186872 16.7817 0.305111 16.6293 0.456073C16.4768 0.607034 16.3568 0.787536 16.2766 0.986515C16.1964 1.18549 16.1577 1.39876 16.1628 1.61323C16.1628 2.04503 16.3343 2.45914 16.6397 2.76447C16.945 3.0698 17.3591 3.24133 17.7909 3.24133C18.2227 3.24133 18.6368 3.0698 18.9421 2.76447C19.2475 2.45914 19.419 2.04503 19.419 1.61323C19.4241 1.39876 19.3854 1.18549 19.3052 0.986515C19.225 0.787536 19.105 0.607034 18.9525 0.456073C18.8001 0.305111 18.6184 0.186872 18.4187 0.108601C18.2189 0.0303305 18.0053 -0.00632181 17.7909 0.000890693Z" fill="#1F2329"></path><path d="M11.7564 15.7252L0.359741 1.61328H3.51615L15.1124 15.7252H11.7564Z" fill="#1F2329"></path><path d="M3.35861 15.7252L14.7527 1.61328H11.5963L0 15.7252H3.35861Z" fill="#1F2329"></path><path d="M19.0618 4.55469H16.5225V15.7255H19.0618V4.55469Z" fill="#1F2329"></path><path d="M26.5905 3.78906C24.5055 3.78906 23.0454 4.31426 21.7009 5.36464L22.6988 7.20282C23.6328 6.41651 24.8055 5.96948 26.0259 5.93448C27.7354 5.93448 28.7543 6.82993 28.7543 8.38975H26.8347C23.0139 8.38975 20.9184 10.2699 21.1442 12.8539C21.4068 15.921 24.6158 16.005 24.9808 16.005C26.5563 16.005 28.0321 15.4799 28.7543 14.5214V15.7188H31.2936V8.37662C31.2936 7.12404 30.7001 3.78906 26.5905 3.78906ZM28.7543 11.1418C28.7231 11.8658 28.4128 12.5496 27.8885 13.05C27.3642 13.5503 26.6666 13.8282 25.9419 13.8255C24.7392 13.8255 23.9304 13.2504 23.8411 12.3366C23.7518 11.4227 24.5921 10.2831 27.5174 10.2831H28.7569L28.7543 11.1418Z" fill="#1F2329"></path><path d="M57.7238 4.11087C57.0499 4.09158 56.3837 4.25893 55.7989 4.59444C55.2141 4.92994 54.7334 5.42054 54.4099 6.01207C53.7954 4.64394 52.7923 4.11087 51.6868 4.11087C51.1688 4.13165 50.6626 4.2713 50.2072 4.51901C49.7519 4.76672 49.3596 5.11585 49.0608 5.5394V4.55203H46.5215V15.7255H49.0608V9.11859C49.0608 8.25464 49.0608 6.40071 50.8044 6.40071C52.5481 6.40071 52.5481 8.25465 52.5481 8.72732V15.7255H55.0139V8.72732C55.0139 8.25465 55.0139 6.40071 56.7575 6.40071C58.5011 6.40071 58.5038 8.25464 58.5038 9.11859V15.7255H61.0404V8.4017C61.0536 5.3976 59.6093 4.11087 57.7238 4.11087Z" fill="#1F2329"></path><path d="M73.7449 15.9987C73.4083 15.998 73.0857 15.8638 72.8479 15.6256C72.6101 15.3873 72.4766 15.0644 72.4766 14.7278V7.165C72.4914 6.83757 72.632 6.52848 72.869 6.30203C73.1059 6.07559 73.4211 5.94922 73.7488 5.94922C74.0766 5.94922 74.3918 6.07559 74.6287 6.30203C74.8657 6.52848 75.0062 6.83757 75.0211 7.165V14.7278C75.0208 14.895 74.9875 15.0606 74.9232 15.215C74.8588 15.3693 74.7647 15.5095 74.6462 15.6276C74.5277 15.7456 74.3871 15.8391 74.2325 15.9028C74.0778 15.9665 73.9122 15.9991 73.7449 15.9987Z" fill="#1F2329"></path><path d="M87.3607 15.9993C87.0234 15.9993 86.6998 15.8655 86.4611 15.6272C86.2223 15.389 86.0878 15.0657 86.0871 14.7284V4.67881L81.4654 9.45281C81.2304 9.69657 80.9081 9.83697 80.5695 9.84312C80.231 9.84928 79.9038 9.72069 79.6601 9.48563C79.4163 9.25058 79.2759 8.92832 79.2697 8.58976C79.2667 8.42211 79.2967 8.25551 79.358 8.09947C79.4194 7.94342 79.5108 7.80098 79.6272 7.68028L86.4469 0.661082C86.6229 0.478921 86.8494 0.35354 87.0973 0.301033C87.3451 0.248526 87.603 0.271291 87.8378 0.366403C88.0727 0.461516 88.2737 0.624637 88.4151 0.834827C88.5566 1.04502 88.632 1.29268 88.6317 1.54603V14.7284C88.6317 15.0655 88.4978 15.3887 88.2594 15.6271C88.021 15.8654 87.6978 15.9993 87.3607 15.9993Z" fill="#1F2329"></path><path d="M80.5514 9.82621C80.3824 9.82749 80.2149 9.79518 80.0584 9.73117C79.902 9.66716 79.7599 9.57272 79.6402 9.45332L72.8337 2.4315C72.599 2.18948 72.4701 1.86414 72.4752 1.52705C72.4804 1.18996 72.6193 0.868726 72.8613 0.634023C73.1033 0.399319 73.4287 0.270369 73.7658 0.27554C74.1028 0.280711 74.4241 0.419579 74.6588 0.661595L81.4653 7.66767C81.6389 7.84735 81.7558 8.07413 81.8015 8.31977C81.8472 8.56541 81.8196 8.81906 81.7222 9.04914C81.6248 9.27922 81.4618 9.47557 81.2537 9.61374C81.0455 9.75191 80.8013 9.8258 80.5514 9.82621Z" fill="#1F2329"></path><path d="M98.3029 15.9992C97.9659 15.9992 97.6426 15.8653 97.4042 15.627C97.1659 15.3886 97.032 15.0654 97.032 14.7283V7.1655C97.032 6.82842 97.1659 6.50514 97.4042 6.26679C97.6426 6.02844 97.9659 5.89453 98.3029 5.89453C98.64 5.89453 98.9633 6.02844 99.2017 6.26679C99.44 6.50514 99.5739 6.82842 99.5739 7.1655V14.7283C99.5739 15.0654 99.44 15.3886 99.2017 15.627C98.9633 15.8653 98.64 15.9992 98.3029 15.9992Z" fill="#1F2329"></path><path d="M111.916 16.0004C111.579 16.0004 111.256 15.8664 111.017 15.6281C110.779 15.3897 110.645 15.0665 110.645 14.7294V4.67982L106.023 9.45382C105.788 9.69584 105.467 9.83457 105.129 9.83949C104.792 9.84442 104.466 9.71513 104.224 9.48008C103.982 9.24503 103.844 8.92346 103.839 8.58613C103.834 8.24879 103.963 7.92331 104.198 7.6813L111.005 0.662093C111.181 0.483575 111.407 0.361405 111.653 0.311007C111.899 0.260609 112.155 0.284243 112.387 0.378925C112.62 0.473608 112.819 0.635093 112.96 0.842994C113.101 1.05089 113.177 1.29589 113.179 1.54704V14.7294C113.178 15.0649 113.045 15.3866 112.809 15.6246C112.572 15.8625 112.251 15.9976 111.916 16.0004Z" fill="#1F2329"></path><path d="M105.109 9.82618C104.94 9.82746 104.773 9.79516 104.616 9.73115C104.46 9.66713 104.318 9.57269 104.198 9.45329L97.3917 2.43147C97.2687 2.31326 97.1708 2.1715 97.1037 2.01463C97.0367 1.85777 97.0019 1.68901 97.0015 1.51842C97.001 1.34783 97.0349 1.1789 97.1012 1.02169C97.1674 0.864476 97.2646 0.722207 97.387 0.603357C97.5093 0.484507 97.6544 0.391509 97.8135 0.329905C97.9725 0.268302 98.1424 0.239353 98.3129 0.244785C98.4834 0.250217 98.6511 0.289918 98.8059 0.361522C98.9607 0.433126 99.0996 0.535168 99.2141 0.661566L106.023 7.66764C106.197 7.84732 106.314 8.0741 106.359 8.31974C106.405 8.56538 106.378 8.81903 106.28 9.04911C106.183 9.27919 106.02 9.47554 105.812 9.61371C105.603 9.75189 105.359 9.82577 105.109 9.82618Z" fill="#1F2329"></path><path d="M92.8305 15.9997C92.4935 15.9997 92.1702 15.8658 91.9318 15.6274C91.6935 15.3891 91.5596 15.0658 91.5596 14.7287V1.54636C91.5596 1.20928 91.6935 0.886001 91.9318 0.647648C92.1702 0.409296 92.4935 0.275391 92.8305 0.275391C93.1676 0.275391 93.4909 0.409296 93.7292 0.647648C93.9676 0.886001 94.1015 1.20928 94.1015 1.54636V14.7287C94.1015 14.8956 94.0686 15.0609 94.0048 15.2151C93.9409 15.3693 93.8473 15.5094 93.7292 15.6274C93.6112 15.7454 93.4711 15.839 93.3169 15.9029C93.1627 15.9668 92.9974 15.9997 92.8305 15.9997Z" fill="#1F2329"></path><path d="M123.42 15.9814C122.03 15.9865 120.663 15.6287 119.454 14.9433C118.244 14.2579 117.235 13.2687 116.525 12.0735C115.815 10.8783 115.43 9.5185 115.407 8.12863C115.384 6.73875 115.724 5.36692 116.393 4.1488C116.561 3.86356 116.833 3.65487 117.152 3.56707C117.471 3.47927 117.811 3.51928 118.101 3.67859C118.391 3.8379 118.608 4.10397 118.704 4.42026C118.801 4.73656 118.771 5.07816 118.62 5.3725C118.053 6.40664 117.836 7.59693 118.003 8.76468C118.169 9.93243 118.71 11.0147 119.544 11.8489C120.378 12.6831 121.46 13.2244 122.628 13.3914C123.795 13.5584 124.986 13.3421 126.02 12.7751C126.315 12.6125 126.663 12.5738 126.987 12.6676C127.311 12.7614 127.584 12.98 127.747 13.2753C127.909 13.5706 127.948 13.9184 127.854 14.2422C127.76 14.566 127.542 14.8393 127.246 15.0019C126.074 15.6455 124.758 15.9824 123.42 15.9814Z" fill="#1F2329"></path><path d="M129.287 12.5052C129.071 12.5044 128.86 12.4484 128.672 12.3424C128.378 12.1795 128.159 11.9066 128.066 11.5833C127.972 11.26 128.009 10.9126 128.171 10.6171C128.738 9.58297 128.955 8.39268 128.788 7.22493C128.622 6.05718 128.081 4.97496 127.247 4.14073C126.413 3.30649 125.331 2.76525 124.163 2.59825C122.996 2.43125 121.805 2.64749 120.771 3.21452C120.624 3.30059 120.462 3.3564 120.293 3.37863C120.125 3.40087 119.954 3.38908 119.79 3.34397C119.626 3.29886 119.473 3.22134 119.339 3.116C119.206 3.01066 119.095 2.87964 119.013 2.73069C118.931 2.58174 118.88 2.41788 118.863 2.24882C118.845 2.07975 118.862 1.90891 118.912 1.7464C118.962 1.58389 119.044 1.43301 119.153 1.3027C119.262 1.17238 119.396 1.06527 119.547 0.987704C121.064 0.155491 122.809 -0.162266 124.522 0.0821474C126.234 0.326561 127.822 1.11995 129.045 2.34319C130.268 3.56642 131.061 5.15347 131.306 6.86604C131.55 8.5786 131.232 10.3242 130.4 11.8408C130.291 12.0411 130.13 12.2084 129.934 12.3253C129.739 12.4422 129.515 12.5043 129.287 12.5052Z" fill="#1F2329"></path></g></svg></div></a></div><div class="flex flex-col items-center justify-center overflow-clip shrink-0"><style>
.language-dropdown-overlay {
padding: 0 !important;
border-radius: 6px !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
.language-dropdown-overlay .ant-dropdown {
padding: 0 !important;
}
.language-dropdown-overlay .ant-dropdown-menu {
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
border: none !important;
border-radius: 0 !important;
}
</style><div class="lg:hidden"><button class="relative shrink-0 w-[20px] h-[20px] cursor-pointer flex items-center justify-center" aria-label="Toggle language" type="button"><img alt="Language" class="block max-w-none size-full" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTUgOC4zMzQxN0wxOC42Njc1IDE3LjUwMDhIMTYuODcxN0wxNS44NzE3IDE1LjAwMDhIMTIuNDYyNUwxMS40NjI1IDE3LjUwMDhIOS42Njc1TDEzLjMzNDIgOC4zMzQxN0gxNVpNMTQuMTY3NSAxMC43MzgzTDEzLjEyNzUgMTMuMzMzM0gxNS4yMDVMMTQuMTY3NSAxMC43MzY3VjEwLjczODNaTTQuMTY2NjcgMTIuNVYxNC4xNjY3QzQuMTY2NzQgMTQuNTg3IDQuMzI1NjQgMTQuOTkxOCA0LjYxMTUzIDE1LjI5OTlDNC44OTc0MiAxNS42MDgxIDUuMjg5MTggMTUuNzk2OCA1LjcwODMzIDE1LjgyODNMNS44MzMzMyAxNS44MzMzSDguMzMzMzNWMTcuNUg1LjgzMzMzQzQuOTQ5MjggMTcuNSA0LjEwMTQzIDE3LjE0ODggMy40NzYzMSAxNi41MjM3QzIuODUxMTkgMTUuODk4NiAyLjUgMTUuMDUwNyAyLjUgMTQuMTY2N1YxMi41SDQuMTY2NjdaTTE0LjE2NjcgMi41QzE1LjA1MDcgMi41IDE1Ljg5ODYgMi44NTExOSAxNi41MjM3IDMuNDc2MzFDMTcuMTQ4OCA0LjEwMTQzIDE3LjUgNC45NDkyOCAxNy41IDUuODMzMzNWNy41SDE1LjgzMzNWNS44MzMzM0MxNS44MzMzIDUuMzkxNDUgMTUuNjU3OSA0Ljk2NzY1IDE1LjM0NTUgNC42NTUxMkMxNS4wMzMxIDQuMzQyNTggMTQuNjA5NCA0LjE2Njg5IDE0LjE2NzUgNC4xNjY2N0gxMS42Njc1VjIuNUgxNC4xNjc1SDE0LjE2NjdaIiBmaWxsPSIjNjQ2QTczIi8+CiAgPHBhdGggZD0iTTYuNjY1MDQgMS42NjYwMlYzLjMzMzUySDkuOTk4MzdWOS4xNjYwMkg2LjY2NTA0VjExLjY2Nkg0Ljk5ODM3VjkuMTY2MDJIMS42NjUwNFYzLjMzMzUySDQuOTk4MzdWMS42NjYwMkg2LjY2NTA0Wk00Ljk5ODM3IDQuOTk5MzVIMy4zMzE3MVY3LjQ5OTM1SDUuMDAwMDRWNS4wMDAxOEg0Ljk5ODM3VjQuOTk5MzVaTTguMzMxNyA0Ljk5OTM1SDYuNjY1MDRWNy40OTkzNUg4LjMzMTdWNS4wMDAxOFY0Ljk5OTM1WiIgZmlsbD0iIzE1MTUxNSIvPgo8L3N2Zz4K"></button></div><div class="hidden lg:block"><div class="ant-dropdown-trigger flex items-center px-[8px] py-[6px]"><div class="flex items-center gap-[2px] cursor-pointer h-[28px]"><p class="text-[14px] leading-[22px] font-normal whitespace-pre flex items-center text-[#1f2329]">中文</p><div class="flex items-center justify-center h-[28px] w-[12px] relative"><img alt="" class="block max-w-none w-full h-full" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAxMiAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzc2XzIxNjc0KSI+CjxwYXRoIGQ9Ik02LjcyMzAyIDE1LjkwNjZDNi42MDg2OSAxNi4wMzExIDYuMzkxMzEgMTYuMDMxMSA2LjI3Njk4IDE1LjkwNjZMMy4wNjMxMiAxMi40MDQ1QzIuOTEzNTIgMTIuMjQxNSAzLjA0NjY2IDEyIDMuMjg2MTQgMTJMOS43MTM4NiAxMkM5Ljk1MzM0IDEyIDEwLjA4NjUgMTIuMjQxNSA5LjkzNjg4IDEyLjQwNDVMNi43MjMwMiAxNS45MDY2WiIgZmlsbD0iIzFGMjMyOSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzc2XzIxNjc0Ij4KPHJlY3Qgd2lkdGg9IjEyIiBoZWlnaHQ9IjgiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDEwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="></div></div></div></div></div></div><div class="hidden lg:flex items-center justify-between w-full h-[64px]"><div class="flex items-center gap-[8px] px-[8px] py-[9px]"><a class="inline-grid grid-cols-[max-content] grid-rows-[max-content] leading-[0] place-items-start cursor-pointer hover:opacity-80 transition-opacity" title="返回首页" aria-label="返回首页" href="/"><div class="h-[16px] w-[131.382px]"><svg class="w-full h-full" width="132" height="16" viewBox="0 0 132 16" fill="none" xmlns="http://www.w3.org/2000/svg"><g><path d="M64.9008 0.00138769C64.6875 -0.00400695 64.4753 0.0339904 64.2771 0.113075C64.0789 0.192159 63.8988 0.310682 63.7478 0.461454C63.5968 0.612226 63.478 0.792105 63.3985 0.990178C63.3191 1.18825 63.2808 1.40039 63.2858 1.61373C63.2858 2.04553 63.4574 2.45964 63.7627 2.76497C64.068 3.0703 64.4821 3.24183 64.9139 3.24183C65.3457 3.24183 65.7599 3.0703 66.0652 2.76497C66.3705 2.45964 66.542 2.04553 66.542 1.61373C66.5473 1.39811 66.5082 1.18371 66.4271 0.983812C66.3461 0.783917 66.2249 0.602783 66.0711 0.451629C65.9172 0.300476 65.734 0.182523 65.5327 0.105076C65.3314 0.027629 65.1163 -0.00766247 64.9008 0.00138769Z" fill="#1F2329"></path><path d="M66.1689 4.55469H63.6296V15.7255H66.1689V4.55469Z" fill="#1F2329"></path><path d="M38.8643 4.06641C35.3586 4.06641 33.0872 6.76065 33.0872 10.0326C33.0872 13.3045 35.3717 16.0014 38.8643 16.0014C42.3568 16.0014 44.6414 13.3072 44.6414 10.0326C44.6414 6.75802 42.3673 4.06641 38.8643 4.06641ZM38.8643 13.6932C37.0261 13.6932 35.5844 12.3408 35.5844 10.0326C35.5844 7.72437 37.0261 6.37463 38.8643 6.37463C40.7025 6.37463 42.1415 7.727 42.1415 10.0326C42.1415 12.3382 40.7025 13.6932 38.8643 13.6932Z" fill="#1F2329"></path><path d="M17.7909 0.000890693C17.5765 -0.00632181 17.3629 0.0303305 17.1631 0.108601C16.9634 0.186872 16.7817 0.305111 16.6293 0.456073C16.4768 0.607034 16.3568 0.787536 16.2766 0.986515C16.1964 1.18549 16.1577 1.39876 16.1628 1.61323C16.1628 2.04503 16.3343 2.45914 16.6397 2.76447C16.945 3.0698 17.3591 3.24133 17.7909 3.24133C18.2227 3.24133 18.6368 3.0698 18.9421 2.76447C19.2475 2.45914 19.419 2.04503 19.419 1.61323C19.4241 1.39876 19.3854 1.18549 19.3052 0.986515C19.225 0.787536 19.105 0.607034 18.9525 0.456073C18.8001 0.305111 18.6184 0.186872 18.4187 0.108601C18.2189 0.0303305 18.0053 -0.00632181 17.7909 0.000890693Z" fill="#1F2329"></path><path d="M11.7564 15.7252L0.359741 1.61328H3.51615L15.1124 15.7252H11.7564Z" fill="#1F2329"></path><path d="M3.35861 15.7252L14.7527 1.61328H11.5963L0 15.7252H3.35861Z" fill="#1F2329"></path><path d="M19.0618 4.55469H16.5225V15.7255H19.0618V4.55469Z" fill="#1F2329"></path><path d="M26.5905 3.78906C24.5055 3.78906 23.0454 4.31426 21.7009 5.36464L22.6988 7.20282C23.6328 6.41651 24.8055 5.96948 26.0259 5.93448C27.7354 5.93448 28.7543 6.82993 28.7543 8.38975H26.8347C23.0139 8.38975 20.9184 10.2699 21.1442 12.8539C21.4068 15.921 24.6158 16.005 24.9808 16.005C26.5563 16.005 28.0321 15.4799 28.7543 14.5214V15.7188H31.2936V8.37662C31.2936 7.12404 30.7001 3.78906 26.5905 3.78906ZM28.7543 11.1418C28.7231 11.8658 28.4128 12.5496 27.8885 13.05C27.3642 13.5503 26.6666 13.8282 25.9419 13.8255C24.7392 13.8255 23.9304 13.2504 23.8411 12.3366C23.7518 11.4227 24.5921 10.2831 27.5174 10.2831H28.7569L28.7543 11.1418Z" fill="#1F2329"></path><path d="M57.7238 4.11087C57.0499 4.09158 56.3837 4.25893 55.7989 4.59444C55.2141 4.92994 54.7334 5.42054 54.4099 6.01207C53.7954 4.64394 52.7923 4.11087 51.6868 4.11087C51.1688 4.13165 50.6626 4.2713 50.2072 4.51901C49.7519 4.76672 49.3596 5.11585 49.0608 5.5394V4.55203H46.5215V15.7255H49.0608V9.11859C49.0608 8.25464 49.0608 6.40071 50.8044 6.40071C52.5481 6.40071 52.5481 8.25465 52.5481 8.72732V15.7255H55.0139V8.72732C55.0139 8.25465 55.0139 6.40071 56.7575 6.40071C58.5011 6.40071 58.5038 8.25464 58.5038 9.11859V15.7255H61.0404V8.4017C61.0536 5.3976 59.6093 4.11087 57.7238 4.11087Z" fill="#1F2329"></path><path d="M73.7449 15.9987C73.4083 15.998 73.0857 15.8638 72.8479 15.6256C72.6101 15.3873 72.4766 15.0644 72.4766 14.7278V7.165C72.4914 6.83757 72.632 6.52848 72.869 6.30203C73.1059 6.07559 73.4211 5.94922 73.7488 5.94922C74.0766 5.94922 74.3918 6.07559 74.6287 6.30203C74.8657 6.52848 75.0062 6.83757 75.0211 7.165V14.7278C75.0208 14.895 74.9875 15.0606 74.9232 15.215C74.8588 15.3693 74.7647 15.5095 74.6462 15.6276C74.5277 15.7456 74.3871 15.8391 74.2325 15.9028C74.0778 15.9665 73.9122 15.9991 73.7449 15.9987Z" fill="#1F2329"></path><path d="M87.3607 15.9993C87.0234 15.9993 86.6998 15.8655 86.4611 15.6272C86.2223 15.389 86.0878 15.0657 86.0871 14.7284V4.67881L81.4654 9.45281C81.2304 9.69657 80.9081 9.83697 80.5695 9.84312C80.231 9.84928 79.9038 9.72069 79.6601 9.48563C79.4163 9.25058 79.2759 8.92832 79.2697 8.58976C79.2667 8.42211 79.2967 8.25551 79.358 8.09947C79.4194 7.94342 79.5108 7.80098 79.6272 7.68028L86.4469 0.661082C86.6229 0.478921 86.8494 0.35354 87.0973 0.301033C87.3451 0.248526 87.603 0.271291 87.8378 0.366403C88.0727 0.461516 88.2737 0.624637 88.4151 0.834827C88.5566 1.04502 88.632 1.29268 88.6317 1.54603V14.7284C88.6317 15.0655 88.4978 15.3887 88.2594 15.6271C88.021 15.8654 87.6978 15.9993 87.3607 15.9993Z" fill="#1F2329"></path><path d="M80.5514 9.82621C80.3824 9.82749 80.2149 9.79518 80.0584 9.73117C79.902 9.66716 79.7599 9.57272 79.6402 9.45332L72.8337 2.4315C72.599 2.18948 72.4701 1.86414 72.4752 1.52705C72.4804 1.18996 72.6193 0.868726 72.8613 0.634023C73.1033 0.399319 73.4287 0.270369 73.7658 0.27554C74.1028 0.280711 74.4241 0.419579 74.6588 0.661595L81.4653 7.66767C81.6389 7.84735 81.7558 8.07413 81.8015 8.31977C81.8472 8.56541 81.8196 8.81906 81.7222 9.04914C81.6248 9.27922 81.4618 9.47557 81.2537 9.61374C81.0455 9.75191 80.8013 9.8258 80.5514 9.82621Z" fill="#1F2329"></path><path d="M98.3029 15.9992C97.9659 15.9992 97.6426 15.8653 97.4042 15.627C97.1659 15.3886 97.032 15.0654 97.032 14.7283V7.1655C97.032 6.82842 97.1659 6.50514 97.4042 6.26679C97.6426 6.02844 97.9659 5.89453 98.3029 5.89453C98.64 5.89453 98.9633 6.02844 99.2017 6.26679C99.44 6.50514 99.5739 6.82842 99.5739 7.1655V14.7283C99.5739 15.0654 99.44 15.3886 99.2017 15.627C98.9633 15.8653 98.64 15.9992 98.3029 15.9992Z" fill="#1F2329"></path><path d="M111.916 16.0004C111.579 16.0004 111.256 15.8664 111.017 15.6281C110.779 15.3897 110.645 15.0665 110.645 14.7294V4.67982L106.023 9.45382C105.788 9.69584 105.467 9.83457 105.129 9.83949C104.792 9.84442 104.466 9.71513 104.224 9.48008C103.982 9.24503 103.844 8.92346 103.839 8.58613C103.834 8.24879 103.963 7.92331 104.198 7.6813L111.005 0.662093C111.181 0.483575 111.407 0.361405 111.653 0.311007C111.899 0.260609 112.155 0.284243 112.387 0.378925C112.62 0.473608 112.819 0.635093 112.96 0.842994C113.101 1.05089 113.177 1.29589 113.179 1.54704V14.7294C113.178 15.0649 113.045 15.3866 112.809 15.6246C112.572 15.8625 112.251 15.9976 111.916 16.0004Z" fill="#1F2329"></path><path d="M105.109 9.82618C104.94 9.82746 104.773 9.79516 104.616 9.73115C104.46 9.66713 104.318 9.57269 104.198 9.45329L97.3917 2.43147C97.2687 2.31326 97.1708 2.1715 97.1037 2.01463C97.0367 1.85777 97.0019 1.68901 97.0015 1.51842C97.001 1.34783 97.0349 1.1789 97.1012 1.02169C97.1674 0.864476 97.2646 0.722207 97.387 0.603357C97.5093 0.484507 97.6544 0.391509 97.8135 0.329905C97.9725 0.268302 98.1424 0.239353 98.3129 0.244785C98.4834 0.250217 98.6511 0.289918 98.8059 0.361522C98.9607 0.433126 99.0996 0.535168 99.2141 0.661566L106.023 7.66764C106.197 7.84732 106.314 8.0741 106.359 8.31974C106.405 8.56538 106.378 8.81903 106.28 9.04911C106.183 9.27919 106.02 9.47554 105.812 9.61371C105.603 9.75189 105.359 9.82577 105.109 9.82618Z" fill="#1F2329"></path><path d="M92.8305 15.9997C92.4935 15.9997 92.1702 15.8658 91.9318 15.6274C91.6935 15.3891 91.5596 15.0658 91.5596 14.7287V1.54636C91.5596 1.20928 91.6935 0.886001 91.9318 0.647648C92.1702 0.409296 92.4935 0.275391 92.8305 0.275391C93.1676 0.275391 93.4909 0.409296 93.7292 0.647648C93.9676 0.886001 94.1015 1.20928 94.1015 1.54636V14.7287C94.1015 14.8956 94.0686 15.0609 94.0048 15.2151C93.9409 15.3693 93.8473 15.5094 93.7292 15.6274C93.6112 15.7454 93.4711 15.839 93.3169 15.9029C93.1627 15.9668 92.9974 15.9997 92.8305 15.9997Z" fill="#1F2329"></path><path d="M123.42 15.9814C122.03 15.9865 120.663 15.6287 119.454 14.9433C118.244 14.2579 117.235 13.2687 116.525 12.0735C115.815 10.8783 115.43 9.5185 115.407 8.12863C115.384 6.73875 115.724 5.36692 116.393 4.1488C116.561 3.86356 116.833 3.65487 117.152 3.56707C117.471 3.47927 117.811 3.51928 118.101 3.67859C118.391 3.8379 118.608 4.10397 118.704 4.42026C118.801 4.73656 118.771 5.07816 118.62 5.3725C118.053 6.40664 117.836 7.59693 118.003 8.76468C118.169 9.93243 118.71 11.0147 119.544 11.8489C120.378 12.6831 121.46 13.2244 122.628 13.3914C123.795 13.5584 124.986 13.3421 126.02 12.7751C126.315 12.6125 126.663 12.5738 126.987 12.6676C127.311 12.7614 127.584 12.98 127.747 13.2753C127.909 13.5706 127.948 13.9184 127.854 14.2422C127.76 14.566 127.542 14.8393 127.246 15.0019C126.074 15.6455 124.758 15.9824 123.42 15.9814Z" fill="#1F2329"></path><path d="M129.287 12.5052C129.071 12.5044 128.86 12.4484 128.672 12.3424C128.378 12.1795 128.159 11.9066 128.066 11.5833C127.972 11.26 128.009 10.9126 128.171 10.6171C128.738 9.58297 128.955 8.39268 128.788 7.22493C128.622 6.05718 128.081 4.97496 127.247 4.14073C126.413 3.30649 125.331 2.76525 124.163 2.59825C122.996 2.43125 121.805 2.64749 120.771 3.21452C120.624 3.30059 120.462 3.3564 120.293 3.37863C120.125 3.40087 119.954 3.38908 119.79 3.34397C119.626 3.29886 119.473 3.22134 119.339 3.116C119.206 3.01066 119.095 2.87964 119.013 2.73069C118.931 2.58174 118.88 2.41788 118.863 2.24882C118.845 2.07975 118.862 1.90891 118.912 1.7464C118.962 1.58389 119.044 1.43301 119.153 1.3027C119.262 1.17238 119.396 1.06527 119.547 0.987704C121.064 0.155491 122.809 -0.162266 124.522 0.0821474C126.234 0.326561 127.822 1.11995 129.045 2.34319C130.268 3.56642 131.061 5.15347 131.306 6.86604C131.55 8.5786 131.232 10.3242 130.4 11.8408C130.291 12.0411 130.13 12.2084 129.934 12.3253C129.739 12.4422 129.515 12.5043 129.287 12.5052Z" fill="#1F2329"></path></g></svg></div></a></div><div class="flex items-center"><div class="flex items-center"><div class="flex items-center px-[8px] py-0"><a class="text-[#1f2329] hover:text-[var(--color-highlight)] transition-colors " href="/contact" style="padding: 0px; font-size: 14px; line-height: 22px; font-weight: 400; white-space: pre;">联系我们</a></div><div class="flex items-center px-[8px] py-0"><a class="text-[#1f2329] hover:text-[var(--color-highlight)] transition-colors " href="/docs/welcome" style="padding: 0px; font-size: 14px; line-height: 22px; font-weight: 400; white-space: pre;">文档</a></div><div class="flex items-center px-[8px] py-0"><a class="text-[#1f2329] hover:text-[var(--color-highlight)] transition-colors nav-menu_sp__cb8750bb" href="/token-plan" style="padding: 0px; font-size: 14px; line-height: 22px; font-weight: 400; white-space: pre;">Token Plan<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10.6688 6.27614L4.93109 12.0139L3.98828 11.0711L9.72601 5.33333H4.66883V4H12.0021V11.3333H10.6688V6.27614Z" fill="#7A6229"></path></svg></a></div><div class="flex items-center px-[8px] py-0"><a class="text-[#1f2329] hover:text-[var(--color-highlight)] transition-colors " href="/console/balance" style="padding: 0px; font-size: 14px; line-height: 22px; font-weight: 400; white-space: pre;">控制台</a></div><div class="flex items-center px-[8px] py-0"><a class="text-[#1f2329] hover:text-[var(--color-highlight)] transition-colors " rel="noopener noreferrer" href="https://mimo.xiaomi.com" target="_blank" style="padding: 0px; font-size: 14px; line-height: 22px; font-weight: 400; white-space: pre;">博客</a></div></div><style>
.language-dropdown-overlay {
padding: 0 !important;
border-radius: 6px !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
.language-dropdown-overlay .ant-dropdown {
padding: 0 !important;
}
.language-dropdown-overlay .ant-dropdown-menu {
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
border: none !important;
border-radius: 0 !important;
}
</style><div class="lg:hidden"><button class="relative shrink-0 w-[20px] h-[20px] cursor-pointer flex items-center justify-center" aria-label="Toggle language" type="button"><img alt="Language" class="block max-w-none size-full" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMTUgOC4zMzQxN0wxOC42Njc1IDE3LjUwMDhIMTYuODcxN0wxNS44NzE3IDE1LjAwMDhIMTIuNDYyNUwxMS40NjI1IDE3LjUwMDhIOS42Njc1TDEzLjMzNDIgOC4zMzQxN0gxNVpNMTQuMTY3NSAxMC43MzgzTDEzLjEyNzUgMTMuMzMzM0gxNS4yMDVMMTQuMTY3NSAxMC43MzY3VjEwLjczODNaTTQuMTY2NjcgMTIuNVYxNC4xNjY3QzQuMTY2NzQgMTQuNTg3IDQuMzI1NjQgMTQuOTkxOCA0LjYxMTUzIDE1LjI5OTlDNC44OTc0MiAxNS42MDgxIDUuMjg5MTggMTUuNzk2OCA1LjcwODMzIDE1LjgyODNMNS44MzMzMyAxNS44MzMzSDguMzMzMzNWMTcuNUg1LjgzMzMzQzQuOTQ5MjggMTcuNSA0LjEwMTQzIDE3LjE0ODggMy40NzYzMSAxNi41MjM3QzIuODUxMTkgMTUuODk4NiAyLjUgMTUuMDUwNyAyLjUgMTQuMTY2N1YxMi41SDQuMTY2NjdaTTE0LjE2NjcgMi41QzE1LjA1MDcgMi41IDE1Ljg5ODYgMi44NTExOSAxNi41MjM3IDMuNDc2MzFDMTcuMTQ4OCA0LjEwMTQzIDE3LjUgNC45NDkyOCAxNy41IDUuODMzMzNWNy41SDE1LjgzMzNWNS44MzMzM0MxNS44MzMzIDUuMzkxNDUgMTUuNjU3OSA0Ljk2NzY1IDE1LjM0NTUgNC42NTUxMkMxNS4wMzMxIDQuMzQyNTggMTQuNjA5NCA0LjE2Njg5IDE0LjE2NzUgNC4xNjY2N0gxMS42Njc1VjIuNUgxNC4xNjc1SDE0LjE2NjdaIiBmaWxsPSIjNjQ2QTczIi8+CiAgPHBhdGggZD0iTTYuNjY1MDQgMS42NjYwMlYzLjMzMzUySDkuOTk4MzdWOS4xNjYwMkg2LjY2NTA0VjExLjY2Nkg0Ljk5ODM3VjkuMTY2MDJIMS42NjUwNFYzLjMzMzUySDQuOTk4MzdWMS42NjYwMkg2LjY2NTA0Wk00Ljk5ODM3IDQuOTk5MzVIMy4zMzE3MVY3LjQ5OTM1SDUuMDAwMDRWNS4wMDAxOEg0Ljk5ODM3VjQuOTk5MzVaTTguMzMxNyA0Ljk5OTM1SDYuNjY1MDRWNy40OTkzNUg4LjMzMTdWNS4wMDAxOFY0Ljk5OTM1WiIgZmlsbD0iIzE1MTUxNSIvPgo8L3N2Zz4K"></button></div><div class="hidden lg:block"><div class="ant-dropdown-trigger flex items-center px-[8px] py-[6px]"><div class="flex items-center gap-[2px] cursor-pointer h-[28px]"><p class="text-[14px] leading-[22px] font-normal whitespace-pre flex items-center text-[#1f2329]">中文</p><div class="flex items-center justify-center h-[28px] w-[12px] relative"><img alt="" class="block max-w-none w-full h-full" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMjgiIHZpZXdCb3g9IjAgMCAxMiAyOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzc2XzIxNjc0KSI+CjxwYXRoIGQ9Ik02LjcyMzAyIDE1LjkwNjZDNi42MDg2OSAxNi4wMzExIDYuMzkxMzEgMTYuMDMxMSA2LjI3Njk4IDE1LjkwNjZMMy4wNjMxMiAxMi40MDQ1QzIuOTEzNTIgMTIuMjQxNSAzLjA0NjY2IDEyIDMuMjg2MTQgMTJMOS43MTM4NiAxMkM5Ljk1MzM0IDEyIDEwLjA4NjUgMTIuMjQxNSA5LjkzNjg4IDEyLjQwNDVMNi43MjMwMiAxNS45MDY2WiIgZmlsbD0iIzFGMjMyOSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzc2XzIxNjc0Ij4KPHJlY3Qgd2lkdGg9IjEyIiBoZWlnaHQ9IjgiIGZpbGw9IndoaXRlIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDEwKSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="></div></div></div></div><a href="https://huggingface.co/XiaomiMiMo" rel="noopener noreferrer" target="_blank" class="px-[6px] "><img class="w-[28px] h-[26px]" src="/static/hugging-face.303f7249.svg"></a><style>
.user-dropdown-overlay {
padding: 0 !important;
border-radius: 6px !important;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
}
.user-dropdown-overlay .ant-dropdown {
padding: 0 !important;
}
.user-dropdown-overlay .ant-dropdown-menu {
background: transparent !important;
box-shadow: none !important;
padding: 0 !important;
border: none !important;
border-radius: 0 !important;
}
</style><div class="ant-dropdown-trigger flex items-center gap-[10px] px-[8px] pr-[0px] py-[14px] cursor-pointer"><span class="ant-avatar ant-avatar-circle ant-avatar-image rounded-full css-1f8ilbp" style="width: 32px; height: 32px; font-size: 18px;"><img src="/static/avatar.ed36425b.png"></span></div></div></div></nav><main class="flex-1 overflow-auto flex flex-col w-full items-center"><div class="flex flex-1 flex-shrink-0 items-start flex-start w-full"><aside class="sticky top-0 hidden overflow-x-hidden max-w-[272px] min-w-[272px] flex-col overflow-y-auto lg:flex min-h-min" aria-label="Page navigation" style="height: calc(-64px + 100vh);"><div class="bg-white flex-1 flex flex-col items-start justify-between w-full h-full "><div class="px-[18px] py-[16px] w-full"><div class="flex flex-col gap-[10px] w-full relative "><div class="search-dropdown_searchInputWrapper__dea9b910 bg-[#f2f2f2] flex gap-[4px] items-center pr-[12px] rounded-[6px] w-full relative"><div class="ant-dropdown-trigger flex-1"><input placeholder="搜索文档" class="ant-input css-1f8ilbp ant-input-borderless flex-1 bg-transparent border-0" type="text" value="" style="background-color: transparent; outline: none; padding: 0px 0px 0px 12px; font-size: 13px; line-height: 32px; color: rgb(143, 149, 158); box-shadow: none;"></div><div class="bg-white flex gap-[2px] items-center p-[4px] rounded-[4px] shrink-0"><div class="flex items-center justify-center text-[#646a73]" style="font-size: 10px; line-height: 10px; font-weight: 500;">Ctrl</div><div class="flex items-center justify-center overflow-clip w-[10px] h-[10px]"><svg width="10" height="10" viewBox="0 0 10 10" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.20581 1.90892C8.4117 1.69634 8.40668 1.35821 8.1941 1.15232C7.98151 0.946435 7.64338 0.951457 7.4375 1.16404L4.83961 3.84227L4.07129 4.63235V1.53565C4.07129 1.23937 3.83193 1 3.53565 1C3.23937 1 3 1.23937 3 1.53565V7.9634C3 8.25968 3.23937 8.49905 3.53565 8.49905C3.83193 8.49905 4.07129 8.25968 4.07129 7.9634V6.17234L5.1543 5.05585L7.38058 8.26973C7.54965 8.51244 7.88275 8.5727 8.12547 8.40531C8.36818 8.23792 8.42844 7.90314 8.26105 7.66043L5.91425 4.27079L8.20581 1.90892Z" fill="#646A73"></path></svg></div></div></div></div></div><div class="flex flex-col items-start min-w-[272px] overflow-auto px-[18px] py-0 sticky top-0 w-full flex-1"><div class="flex flex-col gap-[2px] items-start w-full"><div data-doc-nav-href="/docs/welcome" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/welcome" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">欢迎使用</p></div></a></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/quick-start"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_4_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">快速开始</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_4_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/quick-start/first-api-call" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/quick-start/first-api-call" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">首次调用 API</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/quick-start/model-hyperparameters" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/quick-start/model-hyperparameters" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">模型超参</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/quick-start/error-codes" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/quick-start/error-codes" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">错误码</p></div></a></div></div></div></div></div></div></div><div data-doc-nav-href="/docs/pricing" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/pricing" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">定价与限速</p></div></a></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/news"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_5_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">新闻</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_5_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/v2.5-tts-release" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/v2.5-tts-release" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo-V2.5-TTS-Series + ASR 正式发布:你的声音,随心所“驭”</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/v2.5-news" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/v2.5-news" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo-V2.5 系列大模型开启公测</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/hermes-free" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/hermes-free" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo 现已接入全球顶级 Agent 框架 Hermes Agent,并限免两周</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/token-plan-release" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/token-plan-release" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo Token Plan 正式发布</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/free-trial-extension" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/free-trial-extension" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo Agent 框架调用限免活动延长一周</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/first-week-free" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/first-week-free" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo 联合全球顶级 Agent 框架开启首周限免</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/v2-pro-release" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/v2-pro-release" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo-V2-Pro 发布:面向 Agent 时代的旗舰基座</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/v2-omni-release" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/v2-omni-release" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo-V2-Omni 发布:看得清,听得懂,能动手的全模态 Agent 基座</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/v2-tts-release" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/v2-tts-release" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo-V2-TTS 发布:能说会唱的语音合成大模型</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/news20260303" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/news20260303" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">MiMo-V2-Flash 更新日志 2026/03/03</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/news20260212" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/news20260212" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">MiMo-V2-Flash 更新日志 2026/02/04</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/billing" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/billing" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo API 开放平台计费即将启动</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/recharge" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/recharge" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Xiaomi MiMo API 开放平台充值功能开放通知</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/news20260112" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/news20260112" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">MiMo-V2-Flash 更新日志 2026/01/12</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/beta-free" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/beta-free" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">MiMo 模型公测限免延长公告</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/news/news20251216" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/news/news20251216" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">MiMo-V2-Flash 发布 2025/12/16</p></div></a></div></div></div></div></div></div></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/api"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_6_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">API 文档</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_6_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div class="flex w-full flex-col" data-doc-nav-href="/docs/api/chat"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_7_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">对话</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_7_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex border-l border-neutral-200 flex-col gap-[2px] ml-[12px] my-[4px] pl-[16px]"><div data-doc-nav-href="/docs/api/chat/openai-api" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/api/chat/openai-api" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">OpenAI API</p></div></a></div><div data-doc-nav-href="/docs/api/chat/anthropic-api" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/api/chat/anthropic-api" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">Anthropic API</p></div></a></div></div></div></div></div></div></div></div></div></div></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/tokenplan"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_8_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">Token Plan</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_8_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/tokenplan/subscription" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/tokenplan/subscription" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">订阅说明</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/tokenplan/quick-access" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/tokenplan/quick-access" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">快速接入</p></div></a></div></div></div></div></div></div></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/integration"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_9_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">集成扩展</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_9_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/tools-overview" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/tools-overview" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">AI 工具总览</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/opencode" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/opencode" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">OpenCode 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/claudecode" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/claudecode" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Claude Code 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/openclaw" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/openclaw" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">OpenClaw 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/cline" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/cline" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Cline 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/kilocode" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/kilocode" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Kilo Code 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/roocode" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/roocode" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Roo Code 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/codex" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/codex" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Codex 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/cherrystudio" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/cherrystudio" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Cherry Studio 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/zed" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/zed" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Zed 配置</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/integration/qwencode" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/integration/qwencode" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">Qwen Code 配置</p></div></a></div></div></div></div></div></div></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/usage-guide"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_a_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">使用指南</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_a_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div class="flex w-full flex-col" data-doc-nav-href="/docs/usage-guide/tool-calling"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_b_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">工具调用</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_b_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex border-l border-neutral-200 flex-col gap-[2px] ml-[12px] my-[4px] pl-[16px]"><div data-doc-nav-href="/docs/usage-guide/tool-calling/web-search" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/tool-calling/web-search" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">联网搜索</p></div></a></div></div></div></div></div></div><div class="flex flex-col gap-px pl-[16px]"><div class="flex w-full flex-col" data-doc-nav-href="/docs/usage-guide/multimodal-understanding"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_c_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">多模态理解</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_c_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex border-l border-neutral-200 flex-col gap-[2px] ml-[12px] my-[4px] pl-[16px]"><div data-doc-nav-href="/docs/usage-guide/multimodal-understanding/image-understanding" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/multimodal-understanding/image-understanding" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">图片理解</p></div></a></div><div data-doc-nav-href="/docs/usage-guide/multimodal-understanding/audio-understanding" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/multimodal-understanding/audio-understanding" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">音频理解</p></div></a></div><div data-doc-nav-href="/docs/usage-guide/multimodal-understanding/video-understanding" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/multimodal-understanding/video-understanding" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(100, 106, 115);">视频理解</p></div></a></div></div></div></div></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/usage-guide/speech-synthesis-v2.5" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-[var(--color-primary-background)]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/speech-synthesis-v2.5" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: var(--color-highlight);">语音合成(MiMo-V2.5-TTS 系列)</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/usage-guide/speech-synthesis" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/usage-guide/speech-synthesis" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">语音合成(MiMo-V2-TTS)</p></div></a></div></div></div></div></div></div></div><div data-doc-nav-href="/docs/faq" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/faq" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">常见问题</p></div></a></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/updates"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_d_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">更新日志</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_d_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/updates/model" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/updates/model" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">模型发布</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/updates/feature" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/updates/feature" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">功能更新</p></div></a></div></div></div></div></div></div></div><div class="flex w-full flex-col" data-doc-nav-href="/docs/terms"><div data-state="open" data-slot="collapsible"><div class="flex gap-[4px] h-[32px] items-center px-[8px] py-0 w-full transition-colors cursor-pointer rounded-[6px] bg-white hover:bg-[#f5f5f5]" type="button" aria-controls="radix-_r_e_" aria-expanded="true" data-state="open" data-slot="collapsible-trigger"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden text-[14px]" style="color: rgb(31, 35, 41);"><p class="leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">条款与协议</p></div><div class="flex items-center justify-center overflow-clip"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down w-[14px] h-[14px] transition-transform" aria-hidden="true" style="color: rgb(100, 106, 115);"><path d="m6 9 6 6 6-6"></path></svg></div></div><div data-state="open" id="radix-_r_e_" data-slot="collapsible-content" class="CollapsibleContent" style="transition-duration: 0s; animation-name: none;"><div class="flex flex-col gap-[10px] pl-[12px] my-[4px] "><div class="border-l border-neutral-200 flex flex-col gap-[2px] "><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/terms/user-agreement" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/terms/user-agreement" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">服务协议</p></div></a></div></div><div class="flex flex-col gap-px pl-[16px]"><div data-doc-nav-href="/docs/terms/privacy-policy" class="flex gap-[4px] items-center px-[8px] py-[6px] w-full transition-colors rounded-[6px] bg-white hover:bg-[#f5f5f5]"><a class="flex-1 flex gap-[10px] items-start rounded-[6px]" href="/docs/terms/privacy-policy" style="font-size: 14px; line-height: 20px; font-weight: 400;"><div class="flex-1 flex flex-col justify-center leading-[0] overflow-ellipsis overflow-hidden"><p class="leading-[20px] overflow-ellipsis overflow-hidden" style="color: rgb(31, 35, 41);">隐私政策</p></div></a></div></div></div></div></div></div></div></div></div><div class="p-[18px] w-full"><div class="flex flex-col gap-[2px] items-start pt-0 w-full"><style>
.menu-bottom-popover {
padding: 0 !important;
}
.menu-bottom-popover .ant-popover-inner {
padding: 0 !important;
background: transparent !important;
box-shadow: none !important;
border: none !important;
}
.menu-bottom-popover .ant-popover-inner-content {
padding: 0 !important;
}
.menu-bottom-popover .ant-popover-arrow {
display: none !important;
}
</style><div class="group bg-white flex gap-[4px] h-[32px] items-center px-[8px] py-0 rounded-[6px] w-full text-[#1f2329] cursor-pointer transition-colors hover:text-[#0F8BE8]" aria-describedby="_r_f_"><div class="flex items-start rounded-[2px] shrink-0"><p class="text-[14px] leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">开发者交流群</p></div><div class="relative shrink-0 w-[16px] h-[16px]"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg" class="text-[#646A73] group-hover:text-[#0F8BE8] transition-colors"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.6665 1.6665H8.6665V8.6665H1.6665V1.6665ZM2.99984 2.99984V7.33317H7.33317V2.99984H2.99984ZM9.99984 1.6665H14.3332V5.99984H9.99984V1.6665ZM11.3332 2.99984V4.6665H12.9998V2.99984H11.3332ZM3.99984 3.99984H6.33317V6.33317H3.99984V3.99984ZM12.3332 7.33317H14.3332V8.6665H12.3332V7.33317ZM1.6665 9.99984H5.99984V14.3332H1.6665V9.99984ZM9.99984 7.33317H11.3332V8.6665H9.99984V7.33317ZM2.99984 11.3332V12.9998H4.6665V11.3332H2.99984ZM9.99984 9.99984H14.3332V14.3332H9.99984V9.99984ZM11.3332 11.3332V12.9998H12.9998V11.3332H11.3332ZM7.33317 11.3332V9.99984H8.6665V11.3332H7.33317ZM7.33317 14.3332V12.3332H8.6665V14.3332H7.33317Z" fill="currentColor"></path></svg></div></div><a href="https://aistudio.xiaomimimo.com/open-apis/v1/genLoginUrl" target="_blank" class="group bg-white flex gap-[4px] h-[32px] items-center px-[8px] py-0 rounded-[6px] w-full text-[#1f2329] cursor-pointer transition-colors hover:text-[#0F8BE8]" rel="noreferrer"><div class="flex items-center gap-[4px] shrink-0"><p class="text-[14px] leading-[20px] overflow-ellipsis overflow-hidden whitespace-nowrap">免费体验 MiMo Claw</p><div class="flex items-center justify-center px-[5px] py-[1px] rounded-[2px] shrink-0 bg-gradient-to-r from-[rgba(251,66,20,0.2)] to-[rgba(252,53,163,0.2)]" data-node-id="5223:59799"><span class="font-bold italic text-[9px] leading-[13.5px] tracking-[0.167px] whitespace-nowrap text-[#ff323d]">HOT</span></div></div></a></div></div></div></aside><div class="flex-1 md:flex-[6] px-[16px] lg:px-[40px] py-[22px] pb-0 w-full overflow-hidden"><div class="mb-[16px] lg:mb-[32px]"><div class="flex items-center"><nav aria-label="breadcrumb" data-slot="breadcrumb"><ol data-slot="breadcrumb-list" class="text-muted-foreground flex flex-wrap items-center text-sm break-words gap-0"><li data-slot="breadcrumb-item" class="inline-flex items-center gap-1.5"><a class="hover:text-foreground transition-colors px-[4px] py-0" data-slot="breadcrumb-link" href="/docs" style="font-size: 14px; line-height: 22px; font-weight: 400; color: rgb(100, 106, 115);">文档</a></li><li data-slot="breadcrumb-separator" role="presentation" aria-hidden="true" class="[&>svg]:size-3.5 w-[12px] h-[12px] mx-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-full h-full" aria-hidden="true" style="color: rgb(143, 149, 158);"><path d="m9 18 6-6-6-6"></path></svg></li><li data-slot="breadcrumb-item" class="inline-flex items-center gap-1.5"><span data-slot="breadcrumb-page" role="link" aria-disabled="true" aria-current="page" class="text-foreground font-normal px-[4px] py-0 rounded-[6px]" style="font-size: 14px; line-height: 22px; font-weight: 400; color: rgb(31, 35, 41);">使用指南</span></li><li data-slot="breadcrumb-separator" role="presentation" aria-hidden="true" class="[&>svg]:size-3.5 w-[12px] h-[12px] mx-0"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-full h-full" aria-hidden="true" style="color: rgb(143, 149, 158);"><path d="m9 18 6-6-6-6"></path></svg></li><li data-slot="breadcrumb-item" class="inline-flex items-center gap-1.5"><span data-slot="breadcrumb-page" role="link" aria-disabled="true" aria-current="page" class="text-foreground font-normal px-[4px] py-0 rounded-[6px]" style="font-size: 14px; line-height: 22px; font-weight: 400; color: rgb(31, 35, 41);">语音合成(MiMo-V2.5-TTS 系列)</span></li></ol></nav></div></div><div class="w-full flex flex-col gap-[16px]"><div class="mdxContent"><h1 id="语音合成mimo-v25-tts-系列" class="mdx-h1">语音合成(MiMo-V2.5-TTS 系列)</h1>
<p class="mdx-p">语音合成(文本转语音)支持将输入的文本自动转换为自然流畅的语音输出。您可通过配置发音风格、音色等参数,生成自然生动的语音内容。</p>
<p class="mdx-p"><strong class="mdx-strong">核心能力</strong></p>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">预置音色开箱即用</strong>:内置多种精品音色,无需额外配置即可快速使用。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">音色设计与克隆</strong>:支持通过文本描述设计音色,或基于音频样本复刻任意音色。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">多样化发音风格</strong>:支持语速、情绪、角色扮演、方言等多种风格控制,语音表达更生动自然。</p>
</li>
</ul>
<h2 id="支持的模型列表" class="mdx-h2">支持的模型列表</h2>
<p class="mdx-p">当前支持 MiMo-V2.5-TTS 系列的三种模型,模型列表如下:</p>
<div class="relative w-full overflow-x-auto" data-slot="table-container"><table class="mdx-table">
<thead class="mdx-thead">
<tr class="mdx-tr">
<th class="mdx-th">模型名称</th>
<th class="mdx-th">Model ID</th>
<th class="mdx-th">功能</th>
<th class="mdx-th">音色</th>
<th class="mdx-th">注意事项</th>
</tr>
</thead>
<tbody class="mdx-tbody">
<tr class="mdx-tr">
<td class="mdx-td">MiMo-V2.5-TTS</td>
<td class="mdx-td"><code class="mdx-code-inline">mimo-v2.5-tts</code></td>
<td class="mdx-td">使用预置精品音色进行语音合成</td>
<td class="mdx-td">使用预置音色列表中的精品音色</td>
<td class="mdx-td">支持唱歌模式;不支持音色设计与音色复刻</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">MiMo-V2.5-TTS-VoiceDesign</td>
<td class="mdx-td"><code class="mdx-code-inline">mimo-v2.5-tts-voicedesign</code></td>
<td class="mdx-td">通过文本描述定制音色</td>
<td class="mdx-td">通过文本描述自动生成音色,无需预置或音频样本</td>
<td class="mdx-td">不支持唱歌模式、预置音色与音色复刻</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">MiMo-V2.5-TTS-VoiceClone</td>
<td class="mdx-td"><code class="mdx-code-inline">mimo-v2.5-tts-voiceclone</code></td>
<td class="mdx-td">基于音频样本复刻任意音色</td>
<td class="mdx-td">通过音频样本精准复刻音色,实现任意声音的语音合成</td>
<td class="mdx-td">不支持唱歌模式、预置音色与音色设计</td>
</tr>
</tbody>
</table></div>
<h2 id="准备工作" class="mdx-h2">准备工作</h2>
<p class="mdx-p">获取 API Key 等准备工作,请参考 <a href="https://platform.xiaomimimo.com/#/docs/quick-start/first-api-call" class="mdx-a">首次调用 API</a>。</p>
<h2 id="通用注意事项" class="mdx-h2">通用注意事项</h2>
<div class="mdx-highlight"><p class="mdx-p"><strong class="mdx-strong">调用规则</strong></p><ul class="mdx-ul">
<li class="mdx-li">语音合成的目标文本需填写在 <code class="mdx-code-inline">role</code> 为 <code class="mdx-code-inline">assistant</code> 的消息中,不可放在 <code class="mdx-code-inline">user</code> 角色的消息内。</li>
<li class="mdx-li"><code class="mdx-code-inline">user</code> 角色的消息为可选参数,可以传入指令来调整语音合成的语气与风格,也可以是对话历史(消息内容不会出现在合成的语音中)。使用 <code class="mdx-code-inline">mimo-v2.5-tts-voicedesign</code> 模型时,为必填参数。</li>
<li class="mdx-li">采用流式调用时,输出音频的格式请指定为 <code class="mdx-code-inline">pcm16</code>,以便拼接成完整音频。拼接示例可参考各章节的 Python 调用方式。</li>
</ul></div>
<h2 id="风格控制" class="mdx-h2">风格控制</h2>
<p class="mdx-p">模型的指令遵循能力足以 cover 以下这些复杂控制(一条自然语言指令即可生效):</p>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">多风格切换</strong>:同一角色在同一段语音内完成 <em>播报 → 低语 → 嘶吼</em> 的风格转场,过渡自然不突兀。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">多情绪混合</strong>:支持"压抑的愤怒"、"带着哽咽的笑意"、"温柔但疲惫"、"狂躁中的温柔"等复合情绪,而非只能选单一情绪。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">多粒度控制</strong>:从<em>段落级</em>(整体基调)→ <em>句子级</em>(节奏)→ <em>词级</em>(重音)→ <em>字粒度</em>(某一个字的哽咽、拖音、气音),都可在指令中指定。</p>
</li>
</ul>
<p class="mdx-p">我们目前提供两种控制方法:<strong class="mdx-strong">自然语言控制</strong> 和 <strong class="mdx-strong">标签控制</strong>。两种方式的内容在 <code class="mdx-code-inline">messages</code> 中的放置位置不同:</p>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">自然语言控制</strong> → 放在 <code class="mdx-code-inline">role: user</code> 的 <code class="mdx-code-inline">content</code> 中</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">音频标签控制</strong> → 放在 <code class="mdx-code-inline">role: assistant</code> 的 <code class="mdx-code-inline">content</code> 中</p>
</li>
</ul>
<h3 id="自然语言控制" class="mdx-h3">自然语言控制</h3>
<p class="mdx-p">通过自然语言描述,让模型理解并生成对应风格的语音。<strong class="mdx-strong">内容放在</strong> <code class="mdx-code-inline">messages</code> <strong class="mdx-strong">中</strong> <code class="mdx-code-inline">role: user</code> <strong class="mdx-strong">的</strong> <code class="mdx-code-inline">content</code> <strong class="mdx-strong">字段。</strong> 可以直接用一句话描述想要的语音风格。</p>
<p class="mdx-p"><strong class="mdx-strong">示例:</strong></p>
<blockquote class="mdx-blockquote">
<p class="mdx-p">用轻快上扬的语调向领导报喜,语速稍快,带着查到成绩后压抑不住的激动与小骄傲,声音明亮有活力。</p>
</blockquote>
<blockquote class="mdx-blockquote">
<p class="mdx-p">看着刚解决的难题成果忍不住得意忘形地惊呼,声音高亢明亮,语速偏快,语气中带着满满的自信与难以置信。</p>
</blockquote>
<blockquote class="mdx-blockquote">
<p class="mdx-p">用明亮活泼的青少年嗓音,带着恶作剧得逞后的得意与戏谑,语速偏快且咬字轻巧,在强调赌注时语气微微上扬。</p>
</blockquote>
<p class="mdx-p">在此基础上,我们还支持一种更复杂、更精细的<strong class="mdx-strong">导演模式</strong>——像给演员写剧本一样,从<strong class="mdx-strong">角色、场景、指导</strong>三个维度全方位刻画人物与声线,模型能据此生成更富层次、更具演绎感的语音。</p>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">【角色】</strong> 写清人物的身份、性格底色、外形气质与说话习惯。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">【场景】</strong> 交代此刻发生了什么、和谁说话、情绪处在什么位置。越具体越好——时间、地点、事件、对方反应都可以写进来。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">【指导】</strong> 像导演给演员下达演绎要领:语速、气息、停顿、重音、共鸣位置、音色质感、情绪起伏。可以写得细腻,模型会按这些"舞台提示"来演。</p>
</li>
</ul>
<p class="mdx-p"><strong class="mdx-strong">示例:</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash">角色:百年门阀岑家的现任大当家。自出生便被过继给祖庙的守门老人抚养,被塑造成一尊完美无瑕、绝情断欲的家族图腾。常年深居简出,对人有着极强的阶级疏离感。
场景:在祠堂的阴影里,看着那个不顾一切冲破保安防线来找她、企图带她私奔的男人。她要用最冷硬的阶级壁垒,绞杀对方,也绞杀自己刚刚萌芽、却足以燎原的感情。
指导:
冰冷、慵懒却极具威压的低音御姐。发声通道非常松弛,没有任何剑拔弩张,却有着让人骨里生寒的压迫感。
- 语速与顿挫:极慢,每个字都像是在舌尖滚过才吐出来,带着上位者漫不经心的傲慢。句与句之间留下极长的、令人不安的空白。
- 气声与实声:大部分时间,她的声音没有明显的声调起伏,实音重且硬,像是一条平缓却冰冷的暗河。但一定要在某些尾音处(如“真心”),加入极其轻微的气音收束,透出一丝连她自己都没察觉到的疲惫与渴望。
- 咬字肌理:文白杂糅的用词带着旧时代的痕迹,唇齿音发得极轻但极清晰(如“冲撞”“廉价”),显得既清雅又锋利,刀刀见血。
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p">导演模式适合对语音表演要求较高的场景,例如角色配音、影视级内容生成等。</p>
<h3 id="音频标签控制" class="mdx-h3">音频标签控制</h3>
<p class="mdx-p">通过在文本中嵌入风格标签与音频标签,直接对语音进行精细控制。开头是整体风格标签,中间可以插入细粒度控制标签。<strong class="mdx-strong">所有标签控制内容放在</strong> <code class="mdx-code-inline">messages</code> <strong class="mdx-strong">中</strong> <code class="mdx-code-inline">role: assistant</code> <strong class="mdx-strong">的</strong> <code class="mdx-code-inline">content</code> <strong class="mdx-strong">字段。</strong></p>
<p class="mdx-p">在目标文本<strong class="mdx-strong">开头</strong>添加 <code class="mdx-code-inline">(风格)</code> 标签,即可指定语音的发音风格。支持同时设置多种风格,将多个风格名称置于同一对括号内,分隔符不限。</p>
<p class="mdx-p"><strong class="mdx-strong">支持的括号格式:</strong> 可使用半角 <code class="mdx-code-inline">()</code>、全角 <code class="mdx-code-inline">()</code> 或 <code class="mdx-code-inline">[]</code>。</p>
<p class="mdx-p"><strong class="mdx-strong">格式示例:</strong> <code class="mdx-code-inline">(风格1 风格2)待合成内容</code></p>
<p class="mdx-p">以下是一些推荐风格,同时也支持使用未在列表中的自定义风格。</p>
<div class="mdx-highlight"><p class="mdx-p"><strong class="mdx-strong">注意事项</strong></p><ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p">如需体验更佳的唱歌风格,必须在目标文本最开头添加 <code class="mdx-code-inline">(唱歌)</code> 标签,格式为:<code class="mdx-code-inline">(唱歌)歌词</code>。<code class="mdx-code-inline">歌词</code> 建议采用中文,可获得更优合成效果。标签内标识支持以下取值,效果等效:</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><code class="mdx-code-inline">唱歌</code>、<code class="mdx-code-inline">sing</code>、<code class="mdx-code-inline">singing</code></p>
</li>
</ul></div>
<div class="relative w-full overflow-x-auto" data-slot="table-container"><table class="mdx-table">
<thead class="mdx-thead">
<tr class="mdx-tr">
<th class="mdx-th"><strong class="mdx-strong">风格类型</strong></th>
<th class="mdx-th"><strong class="mdx-strong">风格示例</strong></th>
</tr>
</thead>
<tbody class="mdx-tbody">
<tr class="mdx-tr">
<td class="mdx-td">基础情绪</td>
<td class="mdx-td"><em>开心/悲伤/愤怒/恐惧/惊讶/兴奋/委屈/平静/冷漠</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">复合情绪</td>
<td class="mdx-td"><em>怅然/欣慰/无奈/愧疚/释然/嫉妒/厌倦/忐忑/动情</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">整体语调</td>
<td class="mdx-td"><em>温柔/高冷/活泼/严肃/慵懒/俏皮/深沉/干练/凌厉</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">音色定位</td>
<td class="mdx-td"><em>磁性/醇厚/清亮/空灵/稚嫩/苍老/甜美/沙哑/醇雅</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">人设腔调</td>
<td class="mdx-td"><em>夹子音/御姐音/正太音/大叔音/台湾腔</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">方言</td>
<td class="mdx-td"><em>东北话/四川话/河南话/粤语</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">角色扮演</td>
<td class="mdx-td"><em>孙悟空/林黛玉</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">唱歌</td>
<td class="mdx-td"><em>唱歌</em></td>
</tr>
</tbody>
</table></div>
<p class="mdx-p"><strong class="mdx-strong">样例:</strong></p>
<ul class="mdx-ul">
<li class="mdx-li"><code class="mdx-code-inline">(怅然)这么多年过去了,再走过那条街,心里一下子空了一块。</code></li>
<li class="mdx-li"><code class="mdx-code-inline">(慵懒)再让我睡五分钟……就五分钟,真的,最后一次。</code></li>
<li class="mdx-li"><code class="mdx-code-inline">(磁性)夜已经深了,城市还在呼吸。我是今晚陪你的人,欢迎收听《午夜电台》。</code></li>
<li class="mdx-li"><code class="mdx-code-inline">(东北话)哎呀妈呀,这天儿也忒冷了吧!你说这风,嗖嗖的,跟刀子似的,割脸啊!</code></li>
<li class="mdx-li"><code class="mdx-code-inline">(粤语)呢个真係好正啊!食过一次就唔会忘记!</code></li>
<li class="mdx-li"><code class="mdx-code-inline">(唱歌)原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒,Oh no。背弃了理想,谁人都可以,哪会怕有一天只你共我。</code></li>
</ul>
<p class="mdx-p">在此基础上,我们还支持在文本中任意位置插入 <code class="mdx-code-inline">[音频标签]</code>。通过 [音频标签] ,你可以对声音进行细粒度控制,精准调节语气、情绪和表达风格——无论是低声耳语、放声大笑,还是带点小情绪的小吐槽,也可以灵活插入呼吸声,停顿,咳嗽等,都能轻松实现。语速同样可以灵活调整,让每句话都有它该有的节奏。</p>
<div class="relative w-full overflow-x-auto" data-slot="table-container"><table class="mdx-table">
<thead class="mdx-thead">
<tr class="mdx-tr">
<th class="mdx-th"><strong class="mdx-strong">风格类型</strong></th>
<th class="mdx-th"><strong class="mdx-strong">风格示例</strong></th>
</tr>
</thead>
<tbody class="mdx-tbody">
<tr class="mdx-tr">
<td class="mdx-td">语速与节奏</td>
<td class="mdx-td"><em>吸气/深呼吸/叹气/长叹一口气/喘息/屏息</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">情绪状态</td>
<td class="mdx-td"><em>紧张/害怕/激动/疲惫/委屈/撒娇/心虚/震惊/不耐烦</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">语音特征</td>
<td class="mdx-td"><em>颤抖/声音颤抖/变调/破音/鼻音/气声/沙哑</em></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">哭笑表达</td>
<td class="mdx-td"><em>笑/轻笑/大笑/冷笑/抽泣/呜咽/哽咽/嚎啕大哭</em></td>
</tr>
</tbody>
</table></div>
<p class="mdx-p"><strong class="mdx-strong">样例:</strong></p>
<ul class="mdx-ul">
<li class="mdx-li">(紧张,深呼吸)呼……冷静,冷静。不就是一个面试吗……(语速加快,碎碎念)自我介绍已经背了五十遍了,应该没问题的。加油,你可以的……(小声)哎呀,领带歪没歪?</li>
<li class="mdx-li">(极其疲惫,有气无力)师傅……到地方了叫我一声……(长叹一口气)我先眯一会儿,这班加得我魂儿都要散了。</li>
<li class="mdx-li">如果我当时……(沉默片刻)哪怕再坚持一秒钟,结果是不是就不一样了?(苦笑)呵,没如果了。</li>
<li class="mdx-li">(寒冷导致的急促呼吸)呼——呼——这、这大兴安岭的雪……(咳嗽)简直能把人骨头冻透了……别、别停下,走,快走。</li>
<li class="mdx-li">(提高音量喊话)大姐!这鱼新鲜着呢!早上刚捞上来的!哎!那个谁,别乱翻,压坏了你赔啊?!</li>
</ul>
<h2 id="使用预置音色进行语音合成" class="mdx-h2">使用预置音色进行语音合成</h2>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p">内置多种精品音色,无需额外配置即可直接使用。当前仅支持 <code class="mdx-code-inline">mimo-v2.5-tts</code> 模型</p>
</li>
<li class="mdx-li">
<p class="mdx-p">支持通过在 user message 中传入自然语言指令来控制合成语音的风格</p>
</li>
<li class="mdx-li">
<p class="mdx-p">支持通过音频标签来控制合成语音的风格</p>
</li>
</ul>
<h3 id="预置音色列表" class="mdx-h3">预置音色列表</h3>
<p class="mdx-p">使用时,可在 <code class="mdx-code-inline">{"audio": {"voice": "mimo_default"}}</code> 中设置预置音色。</p>
<div class="relative w-full overflow-x-auto" data-slot="table-container"><table class="mdx-table">
<thead class="mdx-thead">
<tr class="mdx-tr">
<th class="mdx-th"><strong class="mdx-strong">音色名</strong></th>
<th class="mdx-th"><strong class="mdx-strong">Voice ID</strong></th>
<th class="mdx-th">语言</th>
<th class="mdx-th">性别</th>
</tr>
</thead>
<tbody class="mdx-tbody">
<tr class="mdx-tr">
<td class="mdx-td">MiMo-默认</td>
<td class="mdx-td">mimo_default</td>
<td class="mdx-td">因部署集群而异,中国集群默认为 <code class="mdx-code-inline">冰糖</code>,其他集群默认为 <code class="mdx-code-inline">Mia</code></td>
<td class="mdx-td"></td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">冰糖</td>
<td class="mdx-td">冰糖</td>
<td class="mdx-td">中文</td>
<td class="mdx-td">女性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">茉莉</td>
<td class="mdx-td">茉莉</td>
<td class="mdx-td">中文</td>
<td class="mdx-td">女性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">苏打</td>
<td class="mdx-td">苏打</td>
<td class="mdx-td">中文</td>
<td class="mdx-td">男性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">白桦</td>
<td class="mdx-td">白桦</td>
<td class="mdx-td">中文</td>
<td class="mdx-td">男性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">Mia</td>
<td class="mdx-td">Mia</td>
<td class="mdx-td">英文</td>
<td class="mdx-td">女性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">Chloe</td>
<td class="mdx-td">Chloe</td>
<td class="mdx-td">英文</td>
<td class="mdx-td">女性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">Milo</td>
<td class="mdx-td">Milo</td>
<td class="mdx-td">英文</td>
<td class="mdx-td">男性</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td">Dean</td>
<td class="mdx-td">Dean</td>
<td class="mdx-td">英文</td>
<td class="mdx-td">男性</td>
</tr>
</tbody>
</table></div>
<h3 id="调用示例" class="mdx-h3">调用示例</h3>
<h4 id="非流式调用" class="mdx-h4">非流式调用</h4>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts",
"messages": [
{
"role": "user",
"content": "Bright, bouncy, slightly sing-song tone — like you are bursting with good news you can barely hold in. Fast pace, rising pitch at the end."
},
{
"role": "assistant",
"content": "Hey boss — guess what, guess what? I just got the results back and I actually passed! Not just passed, I got a distinction! I know, I know — you told me I was cutting it close, but hey, here we are. Drinks are on me tonight, okay?"
}
],
"audio": {
"format": "wav",
"voice": "Chloe"
}
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> os
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
<span class="token keyword">import</span> base64
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span>
<span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Bright, bouncy, slightly sing-song tone — like you're bursting with good news you can barely hold in. Fast pace, rising pitch at the end."</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Hey boss — guess what, guess what? I just got the results back and I actually passed! Not just passed, I got a distinction! I know, I know — you told me I was cutting it close, but hey, here we are. Drinks are on me tonight, okay?"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"wav"</span><span class="token punctuation">,</span>
<span class="token string">"voice"</span><span class="token punctuation">:</span> <span class="token string">"Chloe"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">)</span>
message <span class="token operator">=</span> completion<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>message
audio_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>message<span class="token punctuation">.</span>audio<span class="token punctuation">.</span>data<span class="token punctuation">)</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"audio_file.wav"</span><span class="token punctuation">,</span> <span class="token string">"wb"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>audio_bytes<span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h4 id="流式调用" class="mdx-h4">流式调用</h4>
<div class="mdx-highlight"><ul class="mdx-ul">
<li class="mdx-li">MiMo-V2.5-TTS 系列的低延迟流式输出功能暂未上线,如有相关需求,请关注近期的功能更新。</li>
<li class="mdx-li">流式调用接口目前降级为兼容模式,<strong class="mdx-strong">仅在所有推理完成后</strong>以流式格式返回<strong class="mdx-strong">一次</strong>结果。</li>
</ul></div>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts",
"messages": [
{
"role": "user",
"content": "Bright, bouncy, slightly sing-song tone — like you are bursting with good news you can barely hold in. Fast pace, rising pitch at the end."
},
{
"role": "assistant",
"content": "Hey boss — guess what, guess what? I just got the results back and I actually passed! Not just passed, I got a distinction! I know, I know — you told me I was cutting it close, but hey, here we are. Drinks are on me tonight, okay?"
}
],
"audio": {
"format": "pcm16",
"voice": "Chloe"
},
"stream": true
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> base64
<span class="token keyword">import</span> os
<span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> soundfile <span class="token keyword">as</span> sf
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span>
<span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Bright, bouncy, slightly sing-song tone — like you're bursting with good news you can barely hold in. Fast pace, rising pitch at the end."</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Hey boss — guess what, guess what? I just got the results back and I actually passed! Not just passed, I got a distinction! I know, I know — you told me I was cutting it close, but hey, here we are. Drinks are on me tonight, okay?"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"pcm16"</span><span class="token punctuation">,</span>
<span class="token string">"voice"</span><span class="token punctuation">:</span> <span class="token string">"Chloe"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
stream<span class="token operator">=</span><span class="token boolean">True</span>
<span class="token punctuation">)</span>
<span class="token comment"># 24kHz PCM16LE mono audio</span>
collected_chunks<span class="token punctuation">:</span> np<span class="token punctuation">.</span>ndarray <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span>
<span class="token keyword">for</span> chunk <span class="token keyword">in</span> completion<span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">:</span>
<span class="token keyword">continue</span>
delta <span class="token operator">=</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>delta
audio <span class="token operator">=</span> <span class="token builtin">getattr</span><span class="token punctuation">(</span>delta<span class="token punctuation">,</span> <span class="token string">"audio"</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> audio <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
<span class="token keyword">assert</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>audio<span class="token punctuation">,</span> <span class="token builtin">dict</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string-interpolation"><span class="token string">f"Expected audio to be a dict, got </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>audio<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span>
pcm_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>audio<span class="token punctuation">[</span><span class="token string">"data"</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
np_pcm <span class="token operator">=</span> np<span class="token punctuation">.</span>frombuffer<span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>int16<span class="token punctuation">)</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">32768.0</span>
collected_chunks <span class="token operator">=</span> np<span class="token punctuation">.</span>concatenate<span class="token punctuation">(</span><span class="token punctuation">(</span>collected_chunks<span class="token punctuation">,</span> np_pcm<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Received audio chunk of size </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> bytes"</span></span><span class="token punctuation">)</span>
<span class="token comment"># Save the collected audio to a file</span>
os<span class="token punctuation">.</span>makedirs<span class="token punctuation">(</span><span class="token string">"tmp"</span><span class="token punctuation">,</span> exist_ok<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
sf<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">"tmp/output.wav"</span><span class="token punctuation">,</span> collected_chunks<span class="token punctuation">,</span> samplerate<span class="token operator">=</span><span class="token number">24000</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Audio saved to tmp/output.wav"</span><span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h2 id="使用文本设计音色进行语音合成" class="mdx-h2">使用文本设计音色进行语音合成</h2>
<p class="mdx-p">无需提供音频文件,只需在角色为 <code class="mdx-code-inline">user</code> 的消息中添加音色描述文本,即可生成定制化的语音音色。当前仅支持 <code class="mdx-code-inline">mimo-v2.5-tts-voicedesign</code> 模型。</p>
<h3 id="如何写好音色描述voice-design-prompt" class="mdx-h3">如何写好音色描述(voice design prompt)</h3>
<p class="mdx-p">使用 <code class="mdx-code-inline">mimo-v2.5-tts-voicedesign</code> 模型时,<code class="mdx-code-inline">user</code> 消息中的文本就是音色设计描述。描述越具体、越生动,生成的音色越贴近预期。</p>
<h4 id="关键维度" class="mdx-h4">关键维度</h4>
<p class="mdx-p">一条好的音色描述通常涵盖以下多个维度(不需要面面俱到):</p>
<div class="relative w-full overflow-x-auto" data-slot="table-container"><table class="mdx-table">
<thead class="mdx-thead">
<tr class="mdx-tr">
<th class="mdx-th">维度</th>
<th class="mdx-th">示例</th>
</tr>
</thead>
<tbody class="mdx-tbody">
<tr class="mdx-tr">
<td class="mdx-td"><strong class="mdx-strong">性别与年龄</strong></td>
<td class="mdx-td">"young woman in her mid-20s"、"五十多岁的中年男性"</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td"><strong class="mdx-strong">音色/质感</strong></td>
<td class="mdx-td">"deep and gravelly"、"丝滑醇厚、带着磁性"</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td"><strong class="mdx-strong">情绪/语气</strong></td>
<td class="mdx-td">"warm and confident"、"温柔但带着一丝疲惫"</td>
</tr>
<tr class="mdx-tr">
<td class="mdx-td"><strong class="mdx-strong">语速/节奏</strong></td>
<td class="mdx-td">"slow and deliberate"、"语速极快,像连珠炮"</td>
</tr>
</tbody>
</table></div>
<p class="mdx-p">以下维度可选择性加入,增加丰富度:</p>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">角色/人设</strong>:narrator, podcast host, 评书先生, 深夜电台DJ</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">说话风格</strong>:casual and colloquial, 一本正经地, 压低嗓音像在密谋</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">场景描写</strong>:narrating a nature documentary, 在给投资人路演</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">年代参照</strong>:1940s film noir, 八十年代译制片配音</p>
</li>
</ul>
<h4 id="写法建议" class="mdx-h4">写法建议</h4>
<p class="mdx-p"><strong class="mdx-strong">简洁描述型</strong> -- 用关键词或一句话快速勾勒声音轮廓</p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash">Heavy Russian accent, gruff middle-aged male, blunt and matter-of-fact.
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">专业描述型</strong> -- 通过场景、人设或多维度细节立体刻画声音</p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash">Young female, extreme close-up with a binaural, ear-to-ear ASMR feel. Audible breathing, subtle swallowing, and soft natural lip sounds. She speaks very slowly, creating a deeply relaxing and immersive experience.
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash">一位年迈的老先生,说带北方口音的普通话,语速缓慢而沉稳,嗓音略带沙哑和沧桑感,仿佛一位饱经风霜的老爷爷在讲故事,充满岁月的智慧。
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h4 id="注意事项" class="mdx-h4">注意事项</h4>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">长度</strong>:1-4 句即可,不需要写长文。核心特征描述清楚比堆砌维度更重要</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">避免冲突</strong>:不要同时要求矛盾的特征(如"稚嫩的童声 + CEO气场")</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">避免音质效果词</strong>:不要写混响、回声、EQ、压缩等后期处理相关描述</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">避免模糊词</strong>:不要用"普通的""正常的""外国的"等缺乏具体指向的描述</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">中英文均可</strong>:模型同时支持中英文音色描述,选择你最能精确表达的语言</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><strong class="mdx-strong">合成文本要贴合音色</strong>:<code class="mdx-code-inline">assistant</code> 消息中的合成文本(text)应与音色描述相匹配,才能获得最佳效果。例如为"温柔治愈系女声"搭配一段晚安独白,而非一段激烈的体育解说。建议使用 LLM 根据你的音色描述自动生成适配的合成文本;在 Studio 页面上,输入音色描述后可直接点击「生成文本」按钮</p>
</li>
</ul>
<h3 id="调用示例-1" class="mdx-h3">调用示例</h3>
<h4 id="非流式调用-1" class="mdx-h4">非流式调用</h4>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts-voicedesign",
"messages": [
{
"role": "user",
"content": "Give me a young male tone."
},
{
"role": "assistant",
"content": "Yes, I had a sandwich."
}
],
"audio": {
"format": "wav"
}
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> os
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
<span class="token keyword">import</span> base64
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span>
<span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts-voicedesign"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Give me a young male tone."</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Yes, I had a sandwich."</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"wav"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">)</span>
message <span class="token operator">=</span> completion<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>message
audio_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>message<span class="token punctuation">.</span>audio<span class="token punctuation">.</span>data<span class="token punctuation">)</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"audio_file.wav"</span><span class="token punctuation">,</span> <span class="token string">"wb"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>audio_bytes<span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h4 id="流式调用-1" class="mdx-h4">流式调用</h4>
<div class="mdx-highlight"><ul class="mdx-ul">
<li class="mdx-li">MiMo-V2.5-TTS 系列的低延迟流式输出功能暂未上线,如有相关需求,请关注近期的功能更新。</li>
<li class="mdx-li">流式调用接口目前降级为兼容模式,<strong class="mdx-strong">仅在所有推理完成后</strong>以流式格式返回<strong class="mdx-strong">一次</strong>结果。</li>
</ul></div>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts-voicedesign",
"messages": [
{
"role": "user",
"content": "Give me a young male tone."
},
{
"role": "assistant",
"content": "You are UN-BE-LIEVABLE! I am sooooo done with your constant lies. GET. OUT!"
}
],
"audio": {
"format": "pcm16"
},
"stream": true
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> base64
<span class="token keyword">import</span> os
<span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> soundfile <span class="token keyword">as</span> sf
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span>
<span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts-voicedesign"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Give me a young male tone."</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"You are UN-BE-LIEVABLE! I am sooooo done with your constant lies. GET. OUT!"</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"pcm16"</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
stream<span class="token operator">=</span><span class="token boolean">True</span>
<span class="token punctuation">)</span>
<span class="token comment"># 24kHz PCM16LE mono audio</span>
collected_chunks<span class="token punctuation">:</span> np<span class="token punctuation">.</span>ndarray <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span>
<span class="token keyword">for</span> chunk <span class="token keyword">in</span> completion<span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">:</span>
<span class="token keyword">continue</span>
delta <span class="token operator">=</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>delta
audio <span class="token operator">=</span> <span class="token builtin">getattr</span><span class="token punctuation">(</span>delta<span class="token punctuation">,</span> <span class="token string">"audio"</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> audio <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
<span class="token keyword">assert</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>audio<span class="token punctuation">,</span> <span class="token builtin">dict</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token string-interpolation"><span class="token string">f"Expected audio to be a dict, got </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>audio<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span>
pcm_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>audio<span class="token punctuation">[</span><span class="token string">"data"</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
np_pcm <span class="token operator">=</span> np<span class="token punctuation">.</span>frombuffer<span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>int16<span class="token punctuation">)</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">32768.0</span>
collected_chunks <span class="token operator">=</span> np<span class="token punctuation">.</span>concatenate<span class="token punctuation">(</span><span class="token punctuation">(</span>collected_chunks<span class="token punctuation">,</span> np_pcm<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Received audio chunk of size </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> bytes"</span></span><span class="token punctuation">)</span>
<span class="token comment"># Save the collected audio to a file</span>
os<span class="token punctuation">.</span>makedirs<span class="token punctuation">(</span><span class="token string">"tmp"</span><span class="token punctuation">,</span> exist_ok<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
sf<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">"tmp/output.wav"</span><span class="token punctuation">,</span> collected_chunks<span class="token punctuation">,</span> samplerate<span class="token operator">=</span><span class="token number">24000</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Audio saved to tmp/output.wav"</span><span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h2 id="使用音色复刻进行语音合成" class="mdx-h2">使用音色复刻进行语音合成</h2>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p">通过传入音频样本,即可精准复刻目标音色并生成语音。当前仅支持 <code class="mdx-code-inline">mimo-v2.5-tts-voiceclone</code> 模型</p>
</li>
<li class="mdx-li">
<p class="mdx-p">支持通过在 user message 中传入自然语言指令来控制合成语音的风格</p>
</li>
<li class="mdx-li">
<p class="mdx-p">支持通过音频标签来控制合成语音的风格</p>
</li>
</ul>
<h3 id="调用示例-2" class="mdx-h3">调用示例</h3>
<p class="mdx-p">将音频文件样本转换为 Base64 编码字符串后传入。转换后的 Base64 编码的字符串大小不能超过 10 MB,目前仅支持传入 <code class="mdx-code-inline">mp3</code> 和 <code class="mdx-code-inline">wav</code> 格式的音频样本文件。</p>
<div class="mdx-highlight"><p class="mdx-p"><strong class="mdx-strong">注意事项</strong></p><ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p">请在 Base64 编码前携带前缀:<code class="mdx-code-inline">data:{MIME_TYPE};base64,$BASE64_AUDIO</code></p>
</li>
<li class="mdx-li">
<p class="mdx-p"><code class="mdx-code-inline">{MIME_TYPE}</code>:音频的 MIME 类型(媒体类型),用于标识音频格式,需替换为实际音频对应的 MIME 值。这里的取值可以为:<code class="mdx-code-inline">audio/mpeg</code>(或 <code class="mdx-code-inline">audio/mp3</code>),<code class="mdx-code-inline">audio/wav</code>。</p>
</li>
<li class="mdx-li">
<p class="mdx-p"><code class="mdx-code-inline">$BASE64_AUDIO</code>:音频文件的纯 Base64 编码字符串(不含任何前缀)。</p>
</li>
</ul></div>
<h4 id="非流式调用-2" class="mdx-h4">非流式调用</h4>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts-voiceclone",
"messages": [
{
"role": "user",
"content": ""
},
{
"role": "assistant",
"content": "Yes, I had a sandwich."
}
],
"audio": {
"format": "wav",
"voice": "data:{MIME_TYPE};base64,$BASE64_AUDIO"
}
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> base64
<span class="token keyword">import</span> os
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"voice.mp3"</span><span class="token punctuation">,</span> <span class="token string">"rb"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
voice_bytes <span class="token operator">=</span> f<span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
voice_base64 <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64encode<span class="token punctuation">(</span>voice_bytes<span class="token punctuation">)</span><span class="token punctuation">.</span>decode<span class="token punctuation">(</span><span class="token string">"utf-8"</span><span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts-voiceclone"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">""</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Yes, I had a sandwich."</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"wav"</span><span class="token punctuation">,</span>
<span class="token string">"voice"</span><span class="token punctuation">:</span> <span class="token string-interpolation"><span class="token string">f"data:audio/mpeg;base64,</span><span class="token interpolation"><span class="token punctuation">{</span>voice_base64<span class="token punctuation">}</span></span><span class="token string">"</span></span>
<span class="token punctuation">}</span>
<span class="token punctuation">)</span>
message <span class="token operator">=</span> completion<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>message
audio_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>message<span class="token punctuation">.</span>audio<span class="token punctuation">.</span>data<span class="token punctuation">)</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"audio_file.wav"</span><span class="token punctuation">,</span> <span class="token string">"wb"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
f<span class="token punctuation">.</span>write<span class="token punctuation">(</span>audio_bytes<span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h4 id="流式调用-2" class="mdx-h4">流式调用</h4>
<div class="mdx-highlight"><ul class="mdx-ul">
<li class="mdx-li">MiMo-V2.5-TTS 系列的低延迟流式输出功能暂未上线,如有相关需求,请关注近期的功能更新。</li>
<li class="mdx-li">流式调用接口目前降级为兼容模式,<strong class="mdx-strong">仅在所有推理完成后</strong>以流式格式返回<strong class="mdx-strong">一次</strong>结果。</li>
</ul></div>
<p class="mdx-p"><strong class="mdx-strong">Curl</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-bash" tabindex="0"><code class="code-highlight language-bash"><span class="token function">curl</span> <span class="token parameter variable">--location</span> <span class="token parameter variable">--request</span> POST <span class="token string">'https://api.xiaomimimo.com/v1/chat/completions'</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">"api-key: <span class="token variable">$MIMO_API_KEY</span>"</span> <span class="token punctuation">\</span>
<span class="token parameter variable">--header</span> <span class="token string">'Content-Type: application/json'</span> <span class="token punctuation">\</span>
--data-raw <span class="token string">'{
"model": "mimo-v2.5-tts-voiceclone",
"messages": [
{
"role": "user",
"content": ""
},
{
"role": "assistant",
"content": "You are UN-BE-LIEVABLE! I am sooooo done with your constant lies. GET. OUT!"
}
],
"audio": {
"format": "pcm16",
"voice": "data:{MIME_TYPE};base64,$BASE64_AUDIO"
},
"stream": true
}'</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<p class="mdx-p"><strong class="mdx-strong">Python</strong></p>
<mimo-code-block data-initialized="true" style="display: block; position: relative;"><pre class="mdx-pre language-python" tabindex="0"><code class="code-highlight language-python"><span class="token keyword">import</span> base64
<span class="token keyword">import</span> os
<span class="token keyword">import</span> numpy <span class="token keyword">as</span> np
<span class="token keyword">import</span> soundfile <span class="token keyword">as</span> sf
<span class="token keyword">from</span> openai <span class="token keyword">import</span> OpenAI
client <span class="token operator">=</span> OpenAI<span class="token punctuation">(</span>
api_key<span class="token operator">=</span>os<span class="token punctuation">.</span>environ<span class="token punctuation">.</span>get<span class="token punctuation">(</span><span class="token string">"MIMO_API_KEY"</span><span class="token punctuation">)</span><span class="token punctuation">,</span>
base_url<span class="token operator">=</span><span class="token string">"https://api.xiaomimimo.com/v1"</span><span class="token punctuation">,</span>
<span class="token punctuation">)</span>
<span class="token keyword">with</span> <span class="token builtin">open</span><span class="token punctuation">(</span><span class="token string">"voice.mp3"</span><span class="token punctuation">,</span> <span class="token string">"rb"</span><span class="token punctuation">)</span> <span class="token keyword">as</span> f<span class="token punctuation">:</span>
voice_bytes <span class="token operator">=</span> f<span class="token punctuation">.</span>read<span class="token punctuation">(</span><span class="token punctuation">)</span>
voice_base64 <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64encode<span class="token punctuation">(</span>voice_bytes<span class="token punctuation">)</span><span class="token punctuation">.</span>decode<span class="token punctuation">(</span><span class="token string">"utf-8"</span><span class="token punctuation">)</span>
completion <span class="token operator">=</span> client<span class="token punctuation">.</span>chat<span class="token punctuation">.</span>completions<span class="token punctuation">.</span>create<span class="token punctuation">(</span>
model<span class="token operator">=</span><span class="token string">"mimo-v2.5-tts-voiceclone"</span><span class="token punctuation">,</span>
messages<span class="token operator">=</span><span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"user"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">""</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
<span class="token punctuation">{</span>
<span class="token string">"role"</span><span class="token punctuation">:</span> <span class="token string">"assistant"</span><span class="token punctuation">,</span>
<span class="token string">"content"</span><span class="token punctuation">:</span> <span class="token string">"Yes, I had a sandwich."</span>
<span class="token punctuation">}</span>
<span class="token punctuation">]</span><span class="token punctuation">,</span>
audio<span class="token operator">=</span><span class="token punctuation">{</span>
<span class="token string">"format"</span><span class="token punctuation">:</span> <span class="token string">"wav"</span><span class="token punctuation">,</span>
<span class="token string">"voice"</span><span class="token punctuation">:</span> <span class="token string-interpolation"><span class="token string">f"data:audio/mpeg;base64,</span><span class="token interpolation"><span class="token punctuation">{</span>voice_base64<span class="token punctuation">}</span></span><span class="token string">"</span></span><span class="token punctuation">,</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span>
stream<span class="token operator">=</span><span class="token boolean">True</span>
<span class="token punctuation">)</span>
<span class="token comment"># 24kHz PCM16LE mono audio</span>
collected_chunks<span class="token punctuation">:</span> np<span class="token punctuation">.</span>ndarray <span class="token operator">=</span> np<span class="token punctuation">.</span>array<span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span>
<span class="token keyword">for</span> chunk <span class="token keyword">in</span> completion<span class="token punctuation">:</span>
<span class="token keyword">if</span> <span class="token keyword">not</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">:</span>
<span class="token keyword">continue</span>
delta <span class="token operator">=</span> chunk<span class="token punctuation">.</span>choices<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span><span class="token punctuation">.</span>delta
audio <span class="token operator">=</span> <span class="token builtin">getattr</span><span class="token punctuation">(</span>delta<span class="token punctuation">,</span> <span class="token string">"audio"</span><span class="token punctuation">,</span> <span class="token boolean">None</span><span class="token punctuation">)</span>
<span class="token keyword">if</span> audio <span class="token keyword">is</span> <span class="token keyword">not</span> <span class="token boolean">None</span><span class="token punctuation">:</span>
<span class="token keyword">assert</span> <span class="token builtin">isinstance</span><span class="token punctuation">(</span>audio<span class="token punctuation">,</span> <span class="token builtin">dict</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>
<span class="token string-interpolation"><span class="token string">f"Expected audio to be a dict, got </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">type</span><span class="token punctuation">(</span>audio<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string">"</span></span>
<span class="token punctuation">)</span>
pcm_bytes <span class="token operator">=</span> base64<span class="token punctuation">.</span>b64decode<span class="token punctuation">(</span>audio<span class="token punctuation">[</span><span class="token string">"data"</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
np_pcm <span class="token operator">=</span> np<span class="token punctuation">.</span>frombuffer<span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">,</span> dtype<span class="token operator">=</span>np<span class="token punctuation">.</span>int16<span class="token punctuation">)</span><span class="token punctuation">.</span>astype<span class="token punctuation">(</span>np<span class="token punctuation">.</span>float32<span class="token punctuation">)</span> <span class="token operator">/</span> <span class="token number">32768.0</span>
collected_chunks <span class="token operator">=</span> np<span class="token punctuation">.</span>concatenate<span class="token punctuation">(</span><span class="token punctuation">(</span>collected_chunks<span class="token punctuation">,</span> np_pcm<span class="token punctuation">)</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string-interpolation"><span class="token string">f"Received audio chunk of size </span><span class="token interpolation"><span class="token punctuation">{</span><span class="token builtin">len</span><span class="token punctuation">(</span>pcm_bytes<span class="token punctuation">)</span><span class="token punctuation">}</span></span><span class="token string"> bytes"</span></span><span class="token punctuation">)</span>
<span class="token comment"># Save the collected audio to a file</span>
os<span class="token punctuation">.</span>makedirs<span class="token punctuation">(</span><span class="token string">"tmp"</span><span class="token punctuation">,</span> exist_ok<span class="token operator">=</span><span class="token boolean">True</span><span class="token punctuation">)</span>
sf<span class="token punctuation">.</span>write<span class="token punctuation">(</span><span class="token string">"tmp/output.wav"</span><span class="token punctuation">,</span> collected_chunks<span class="token punctuation">,</span> samplerate<span class="token operator">=</span><span class="token number">24000</span><span class="token punctuation">)</span>
<span class="token keyword">print</span><span class="token punctuation">(</span><span class="token string">"Audio saved to tmp/output.wav"</span><span class="token punctuation">)</span>
</code><span class="mdx-pre-scroll-tail" aria-hidden="true"></span></pre><button class="absolute top-2 right-2 p-1.5 rounded-md border border-[#e5e5e5] bg-white hover:bg-gray-100 transition-all z-[10] shadow-sm" aria-label="Copy code" style="cursor: pointer; display: flex; align-items: center; justify-content: center;">
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="#5C5C62" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<rect x="9" y="9" width="13" height="13" rx="2" ry="2"></rect>
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path>
</svg>
</button></mimo-code-block>
<h2 id="计费说明" class="mdx-h2">计费说明</h2>
<ul class="mdx-ul">
<li class="mdx-li">
<p class="mdx-p">计费:限时免费。</p>
</li>
<li class="mdx-li">
<p class="mdx-p">查看账单:您可以在控制台的 <a href="https://platform.xiaomimimo.com/#/console/usage" class="mdx-a">账单明细</a> 页面查看用量。</p>
</li>
</ul>
<h2 id="" class="mdx-h2"></h2></div></div><div class="border-t border-neutral-200 w-full min-h-[90px] flex items-center justify-end mt-[32px]"><div class="flex items-start justify-between w-full"><a class="flex max-w-[50%] items-start gap-[4px] pr-[6px] py-[16px] max-w-[416px] rounded-[4px] transition-colors text-[#646a73] hover:text-[var(--color-highlight)] active:text-[var(--color-primary)]" href="/docs/usage-guide/multimodal-understanding/video-understanding" style="font-size: 18px; line-height: 27px; font-weight: 500;"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left w-5 h-5 mt-[3.5px] min-w-[20px]" aria-hidden="true"><path d="m15 18-6-6 6-6"></path></svg><span>视频理解</span></a><a class="flex max-w-[50%] items-start text-right gap-[4px] pl-[6px] pr-0 py-[16px] max-w-[416px] rounded-[4px] transition-colors text-[#646a73] hover:text-[var(--color-highlight)] active:text-[var(--color-primary)]" href="/docs/usage-guide/speech-synthesis" style="font-size: 18px; line-height: 27px; font-weight: 500;"><span>语音合成(MiMo-V2-TTS)</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right w-5 h-5 mt-[3.5px] min-w-[20px]" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></a></div></div></div><aside class="toc sticky top-0 hidden pr-[24px] w-[230px] gap-[44px] xl:flex xl:flex-col" aria-label="Table of contents"><div class="flex max-w-[260px] mr-[18px] w-full flex-col mt-[22px] gap-[8px] pl-[8px] pr-0 py-0"><div class="flex flex-col items-start relative shrink-0 w-full"><h3 style="font-size: 14px; line-height: 25px; font-weight: 400; color: rgb(31, 35, 41); margin: 0px;">目录</h3></div><div class="box-border flex flex-col items-start px-0 relative shrink-0 w-full w-[206px]"><div dir="ltr" data-slot="scroll-area" class="relative overflow-x-clip overflow-y-auto w-full" style="position: relative; --radix-scroll-area-corner-width: 0px; --radix-scroll-area-corner-height: 0px;"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" data-slot="scroll-area-viewport" class="focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1" style="overflow: hidden scroll;"><div style="min-width: 100%; display: table;"><div class="style_anchor-container__ceb2c43f flex flex-col gap-[10px] items-start w-full w-[206px]"><div class="style_custom-anchor__ceb2c43f custom-anchor w-full"><div style="display: none;"><div data-anchor-href="#支持的模型列表" data-anchor-title="支持的模型列表" data-anchor-level="2"></div><div data-anchor-href="#准备工作" data-anchor-title="准备工作" data-anchor-level="2"></div><div data-anchor-href="#通用注意事项" data-anchor-title="通用注意事项" data-anchor-level="2"></div><div data-anchor-href="#风格控制" data-anchor-title="风格控制" data-anchor-level="2"></div><div data-anchor-href="#自然语言控制" data-anchor-title="自然语言控制" data-anchor-level="3"></div><div data-anchor-href="#音频标签控制" data-anchor-title="音频标签控制" data-anchor-level="3"></div><div data-anchor-href="#使用预置音色进行语音合成" data-anchor-title="使用预置音色进行语音合成" data-anchor-level="2"></div><div data-anchor-href="#预置音色列表" data-anchor-title="预置音色列表" data-anchor-level="3"></div><div data-anchor-href="#调用示例" data-anchor-title="调用示例" data-anchor-level="3"></div><div data-anchor-href="#使用文本设计音色进行语音合成" data-anchor-title="使用文本设计音色进行语音合成" data-anchor-level="2"></div><div data-anchor-href="#如何写好音色描述voice-design-prompt" data-anchor-title="如何写好音色描述(voice design prompt)" data-anchor-level="3"></div><div data-anchor-href="#调用示例-1" data-anchor-title="调用示例" data-anchor-level="3"></div><div data-anchor-href="#使用音色复刻进行语音合成" data-anchor-title="使用音色复刻进行语音合成" data-anchor-level="2"></div><div data-anchor-href="#调用示例-2" data-anchor-title="调用示例" data-anchor-level="3"></div><div data-anchor-href="#计费说明" data-anchor-title="计费说明" data-anchor-level="2"></div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">支持的模型列表</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">准备工作</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">通用注意事项</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">风格控制</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">自然语言控制</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">音频标签控制</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">使用预置音色进行语音合成</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">预置音色列表</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">调用示例</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">使用文本设计音色进行语音合成</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">如何写好音色描述(voice design prompt)</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">调用示例</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">使用音色复刻进行语音合成</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#646a73] hover:text-[var(--color-highlight)]" style="padding-left: 20px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">调用示例</div></div><div class="style_custom-anchor-link__ceb2c43f custom-anchor-link "><div class="relative shrink-0 w-full text-nowrap transition-colors text-[#1f2329] hover:text-[var(--color-highlight)]" style="padding-left: 0px; font-size: 14px; line-height: 20px; font-weight: 400; text-decoration: none; cursor: pointer; width: 100%; max-width: 206px; white-space: normal;">计费说明</div></div></div></div></div></div></div></div></div><button title="回到顶部" aria-label="回到顶部" type="button" class="text-[#1F2329] ml-2 mt-[5px] flex cursor-pointer items-center self-start text-sm opacity-0 transition undefined"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up mr-1 inline-block h-4 w-4 align-middle" aria-hidden="true"><path d="m5 12 7-7 7 7"></path><path d="M12 19V5"></path></svg><span>回到顶部</span></button></aside><button class="z-[999] lg:hidden cursor-pointer bg-white box-border flex flex-col items-center justify-center p-[4px] rounded-[999px] shadow-[0px_6px_30px_5px_rgba(0,0,0,0.05),0px_16px_24px_2px_rgba(0,0,0,0.04),0px_8px_10px_-5px_rgba(0,0,0,0.08)] w-[40px] h-[40px] transition-opacity duration-300 opacity-0 pointer-events-none" aria-label="回到顶部" type="button" style="position: fixed; bottom: 90px; right: 20px;"><svg class="absolute inset-0 w-full h-full pointer-events-none" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg" style="transform: rotate(-90deg);"><circle cx="20" cy="20" r="18.5" fill="none" stroke="var(--color-primary)" stroke-width="3" stroke-dasharray="116.23892818282235" stroke-dashoffset="116.23892818282235" stroke-linecap="round"></circle></svg><div class="box-border flex flex-col gap-[4px] items-center justify-center p-[8px] relative rounded-[3px] shrink-0 w-[40px] h-[40px] z-10"><div class="relative shrink-0 w-[24px] h-[24px] flex items-center justify-center"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.00012 4H20.0001V6H4.00012V4ZM12.0001 7.58579L18.9143 14.5L17.5001 15.9142L13.0001 11.4142V21H11.0001V11.4142L6.50012 15.9142L5.08591 14.5L12.0001 7.58579Z" fill="#646A73"></path></svg></div></div></button></div><footer class="bg-[#f5f6f8] border-[#e5e6eb] border-solid flex items-center justify-center w-full px-0 py-[22px]"><div class="flex flex-col justify-center items-center text-center "><p class="text-[11px] leading-[20px] font-normal mb-0 flex flex-col md:flex-row md:flex-wrap lg:flex-nowrap md:justify-center md:items-center text-[#8f959e]"><a class="whitespace-nowrap text-inherit" rel="noopener noreferrer" href="/docs/terms/user-agreement" target="_blank">Xiaomi MiMo 开放平台服务协议</a><span class="hidden md:inline"> | </span><a class="whitespace-nowrap text-inherit" rel="noopener noreferrer" href="/docs/terms/privacy-policy" target="_blank">Xiaomi MiMo 开放平台隐私政策</a></p><p class="text-[11px] leading-[20px] font-normal flex flex-col md:flex-row md:flex-wrap xl:flex-nowrap md:justify-center md:items-center text-[#8f959e]"><span class="whitespace-nowrap block md:w-full xl:w-auto xl:flex-shrink-0">Copyright©2025 Xiaomi. All Rights Reserved</span><span class="hidden xl:inline"> | </span><a class="whitespace-nowrap block md:w-full xl:w-auto xl:flex-shrink-0 text-inherit" href="https://mp.weixin.qq.com/s/67LmJeFdhi58UpPk9Wbssg" target="_blank" rel="noopener noreferrer">Xiaomi MiMo : 备案号 Beijing-XiaomiMiMo-202601050182</a><span class="hidden xl:inline"> | </span><a class="word-break-keep-all block md:w-full xl:w-auto xl:flex-shrink-0 text-inherit" href="https://cdn.cnbj3-fusion.fds.api.mi-img.com/chatbot-prod/system/%E5%85%AC%E7%A4%BA%E5%86%85%E5%AE%B9_%E7%BD%91%E4%BF%A1%E7%AE%97%E5%A4%87110108916280901240011%E5%8F%B7.pdf" target="_blank" rel="noopener noreferrer">小米大语言模型算法 : 备案号 网信算备110108916280901240011号</a><span class="hidden xl:inline"> | </span><a href="https://beian.miit.gov.cn/" target="_blank" rel="noopener noreferrer" class="word-break-keep-all block md:w-full xl:w-auto xl:flex-shrink-0 text-inherit">京ICP备17028681号-55</a></p></div></footer></main></div></div></div><script>(function(){var g={},h={};function n(e){var c=h[e];if(c!==void 0)return c.exports;var r=h[e]={exports:{}};return g[e].call(r.exports,r,r.exports,n),r.exports}n.m=g,(function(){n.n=function(e){var c=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(c,{a:c}),c}})(),(function(){var e=Object.getPrototypeOf?function(r){return Object.getPrototypeOf(r)}:function(r){return r.__proto__},c;n.t=function(r,a){if(a&1&&(r=this(r)),a&8||typeof r=="object"&&r&&(a&4&&r.__esModule||a&16&&typeof r.then=="function"))return r;var o=Object.create(null);n.r(o);var i={};c=c||[null,e({}),e([]),e(e)];for(var t=a&2&&r;(typeof t=="object"||typeof t=="function")&&!~c.indexOf(t);t=e(t))Object.getOwnPropertyNames(t).forEach(function(d){i[d]=function(){return r[d]}});return i.default=function(){return r},n.d(o,i),o}})(),(function(){n.d=function(e,c){for(var r in c)n.o(c,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:c[r]})}})(),(function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce(function(c,r){return n.f[r](e,c),c},[]))}})(),(function(){n.u=function(e){return"static/"+(e===8792?"main":e)+"."+{131:"3f1be451",303:"b3889d56",326:"e08bd2ed",440:"5770bf8c",477:"4fe8db94",642:"68cb5473",685:"fea3b832",1229:"981d2f94",1338:"ed6aafbd",1474:"60bebbf7",1704:"cd93dd8f",1919:"7b27a9d3",2076:"bd65f53c",2146:"a2dd7726",2266:"28a0a2e2",2338:"947809a9",2588:"354f7380",2687:"210d2a68",3039:"f536ac3b",3258:"7cce43fb",3437:"b8aa8c7f",3470:"ac1e0d50",3872:"98449acf",3941:"c17ab693",4017:"c0442bce",4363:"19a3f323",4394:"0cdce813",4465:"fcce8bd1",4524:"dcdced7c",4576:"747d96d6",4873:"ac1c746a",4939:"34827ebd",5261:"609bf420",5633:"a4a2fbeb",5668:"9857f915",5674:"7ec80c72",5703:"ac2da06d",5716:"a7267d24",5830:"fb5c5019",5855:"468238bd",5962:"1abab088",6014:"c0b31a89",6081:"f56692e7",6295:"5c913ff3",6380:"79a6075d",6571:"e6cd15f8",6685:"be2a9829",6722:"e650baac",6907:"2da82e60",6930:"e8ed018c",6956:"ae1ba55c",7026:"b3bb7ecc",7054:"031f738e",7115:"771a0700",7145:"7a7da254",7219:"cb2ce260",7298:"5e80be7d",7620:"0632d17d",8207:"faf46494",8235:"66cff5e8",8352:"5343ba14",8596:"9c7aff04",8622:"bb3b2cd8",8732:"b3610c4e",8792:"c30cccb4",8971:"065af445",8977:"72783658",9074:"66766d3a",9134:"694ae072",9357:"6ea38e9b",9424:"fa452350",9607:"b8c8e292",9711:"411f7d39",9818:"cdb68a58",9819:"b9f81b87",9841:"274258c0",9861:"8764b5cd",9880:"e9cf9df1",9949:"7392ef7a"}[e]+".chunk.js"}})(),(function(){n.miniCssF=function(e){return"static/"+({8597:"docs-styles",8792:"main"}[e]||e)+"."+{2687:"47276ca8",4017:"31b24793",5962:"9f618428",6907:"5dc743d8",8207:"0da16249",8597:"635b4b26",8792:"c070fa1f",9819:"5c4009b7"}[e]+".chunk.css"}})(),(function(){n.g=(function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch{if(typeof window=="object")return window}})()})(),(function(){n.o=function(e,c){return Object.prototype.hasOwnProperty.call(e,c)}})(),(function(){var e={},c="mimo_document:";n.l=function(r,a,o,i){if(e[r]){e[r].push(a);return}var t,d;if(o!==void 0)for(var u=document.getElementsByTagName("script"),f=0;f<u.length;f++){var s=u[f];if(s.getAttribute("src")==r||s.getAttribute("data-webpack")==c+o){t=s;break}}t||(d=!0,t=document.createElement("script"),t.charset="utf-8",n.nc&&t.setAttribute("nonce",n.nc),t.setAttribute("data-webpack",c+o),t.src=r,t.src.indexOf(window.location.origin+"/")!==0&&(t.crossOrigin="anonymous")),e[r]=[a];var b=function(m,p){t.onerror=t.onload=null,clearTimeout(l);var _=e[r];if(delete e[r],t.parentNode&&t.parentNode.removeChild(t),_&&_.forEach(function(v){return v(p)}),m)return m(p)},l=setTimeout(b.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=b.bind(null,t.onerror),t.onload=b.bind(null,t.onload),d&&document.head.appendChild(t)}})(),(function(){n.r=function(e){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}})(),(function(){n.p="/"})(),(function(){if(!(typeof document>"u")){var e=function(o,i,t,d,u){var f=document.createElement("link");f.rel="stylesheet",f.type="text/css",n.nc&&(f.nonce=n.nc);var s=function(b){if(f.onerror=f.onload=null,b.type==="load")d();else{var l=b&&b.type,m=b&&b.target&&b.target.href||i,p=new Error("Loading CSS chunk "+o+` failed.
(`+l+": "+m+")");p.name="ChunkLoadError",p.code="CSS_CHUNK_LOAD_FAILED",p.type=l,p.request=m,f.parentNode&&f.parentNode.removeChild(f),u(p)}};return f.onerror=f.onload=s,f.href=i,f.href.indexOf(window.location.origin+"/")!==0&&(f.crossOrigin="anonymous"),t?t.parentNode.insertBefore(f,t.nextSibling):document.head.appendChild(f),f},c=function(o,i){for(var t=document.getElementsByTagName("link"),d=0;d<t.length;d++){var u=t[d],f=u.getAttribute("data-href")||u.getAttribute("href");if(u.rel==="stylesheet"&&(f===o||f===i))return u}for(var s=document.getElementsByTagName("style"),d=0;d<s.length;d++){var u=s[d],f=u.getAttribute("data-href");if(f===o||f===i)return u}},r=function(o){return new Promise(function(i,t){var d=n.miniCssF(o),u=n.p+d;if(c(d,u))return i();e(o,u,null,i,t)})},a={4577:0};n.f.miniCss=function(o,i){var t={2687:1,4017:1,5962:1,6907:1,8207:1,8597:1,8792:1,9819:1};a[o]?i.push(a[o]):a[o]!==0&&t[o]&&i.push(a[o]=r(o).then(function(){a[o]=0},function(d){throw delete a[o],d}))}}})(),(function(){var e={4577:0};n.f.j=function(a,o){var i=n.o(e,a)?e[a]:void 0;if(i!==0)if(i)o.push(i[2]);else if(a!=8597){var t=new Promise(function(s,b){i=e[a]=[s,b]});o.push(i[2]=t);var d=n.p+n.u(a),u=new Error,f=function(s){if(n.o(e,a)&&(i=e[a],i!==0&&(e[a]=void 0),i)){var b=s&&(s.type==="load"?"missing":s.type),l=s&&s.target&&s.target.src;u.message="Loading chunk "+a+` failed.
(`+b+": "+l+")",u.name="ChunkLoadError",u.type=b,u.request=l,i[1](u)}};n.l(d,f,"chunk-"+a,a)}else e[a]=0};var c=function(a,o){var i=o[0],t=o[1],d=o[2],u,f,s=0;if(i.some(function(l){return e[l]!==0})){for(u in t)n.o(t,u)&&(n.m[u]=t[u]);if(d)var b=d(n)}for(a&&a(o);s<i.length;s++)f=i[s],n.o(e,f)&&e[f]&&e[f][0](),e[f]=0},r=self.webpackChunkmimo_document=self.webpackChunkmimo_document||[];r.forEach(c.bind(null,0)),r.push=c.bind(null,r.push.bind(r))})();var y={};Promise.all([n.e(8597),n.e(3470),n.e(8792)]).then(n.bind(n,48585))})();</script><script src="https://ssl-cdn.static.browser.mi-img.com/mistat-data/pubsub-v2/pubsub.js" async=""></script></body>