ModelSell Docs
Audio & MoreMiMo

MiMo Speech Recognition

Transcribe MP3 or WAV audio with MiMo-V2.5-ASR through the ModelSell OpenAI-compatible Chat Completions endpoint.

MiMo-V2.5-ASR accepts Base64 audio through the OpenAI-compatible Chat Completions format and returns the transcript in the assistant message content.

Endpoint

POST /v1/chat/completions

Authenticate every request with your ModelSell API key:

Authorization: Bearer $MODELSELL_API_KEY
Content-Type: application/json

Do not use the audio transcription path

MiMo-V2.5-ASR does not use /v1/audio/transcriptions. Always submit its JSON request to /v1/chat/completions.

Supported Model

ModelInputOutput
mimo-v2.5-asrOne MP3 or WAV audio fileTranscript text

Request Fields

FieldTypeRequiredDescription
modelstringYesMust be mimo-v2.5-asr
messagesarrayYesSupports one audio input in a user message
messages[].content[].typestringYesMust be input_audio
messages[].content[].input_audio.datastringYesA data URL or Base64 audio without a prefix
messages[].content[].input_audio.formatstringConditionalRequired for raw Base64; accepts mp3 or wav. It may be omitted when the data URL declares a MIME type
asr_options.languagestringNoauto, zh, or en; defaults to auto
streambooleanNoReturn SSE chunks when true; defaults to false

If both a data URL MIME type and format are provided, they must match. MP3 accepts audio/mpeg or audio/mp3; WAV uses audio/wav.

Request Example

Encode the audio as single-line Base64:

BASE64_AUDIO=$(base64 < speech.mp3 | tr -d '\n')

Submit the transcription request:

curl -X POST "$MODELSELL_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer $MODELSELL_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{
    \"model\": \"mimo-v2.5-asr\",
    \"messages\": [
      {
        \"role\": \"user\",
        \"content\": [
          {
            \"type\": \"input_audio\",
            \"input_audio\": {
              \"data\": \"data:audio/mpeg;base64,$BASE64_AUDIO\"
            }
          }
        ]
      }
    ],
    \"asr_options\": {
      \"language\": \"auto\"
    }
  }"

When passing raw Base64, declare the audio format:

{
  "type": "input_audio",
  "input_audio": {
    "data": "BASE64_AUDIO_DATA",
    "format": "mp3"
  }
}

Response Example

The non-streaming response uses the Chat Completions structure. Read the transcript from choices[0].message.content:

{
  "id": "chatcmpl_xxxxxxxxxxxxxxxx",
  "object": "chat.completion",
  "created": 1780398283,
  "model": "mimo-v2.5-asr",
  "choices": [
    {
      "index": 0,
      "finish_reason": "stop",
      "message": {
        "role": "assistant",
        "content": "Good morning. What will the weather be like today?"
      }
    }
  ],
  "usage": {
    "prompt_tokens": 126,
    "completion_tokens": 14,
    "total_tokens": 140,
    "prompt_tokens_details": {
      "audio_tokens": 118
    },
    "seconds": 7
  }
}

For streaming, set "stream": true and concatenate choices[0].delta.content from the SSE chunks.

Limits

  • Each request supports one audio input.
  • Input audio must be MP3 or WAV.
  • Base64 significantly increases request size; make sure the client and network accept the resulting payload.
  • Model availability depends on the models enabled for your group on the current ModelSell site.

On this page