An Azure service that integrates speech processing into apps and services.
Hello @Adrian Acurero
Thanks for providing the detailed test matrix. Based on your results, this does not appear to be a general audio file-size, authentication, or endpoint issue.
Your testing isolates the problem quite well:
- MAI-Transcribe-2 successfully transcribes the complete 2,864-second recording when diarization is disabled.
- Native diarization succeeds through 1,880 seconds (31:20).
- It consistently fails at 1,995 seconds (33:15) and above.
- Re-encoding the same audio from WAV (~67 MB) to MP3 (~17 MB) doesn't change the behavior.
- The returned error specifically originates from the diarization component: diarization_unavailable.
Microsoft’s published Azure Speech quotas don't document a ~32-minute limit. In fact, the documented maximum audio length for transcription with diarization is substantially higher (up to 240 minutes in the applicable Speech scenarios).
MAI-Transcribe-2 was released in public preview and specifically adds native speaker diarization and word-level timestamps. Given the repeatable boundary you've demonstrated, treat this as a likely preview-service limitation or defect in the MAI-Transcribe-2 native diarization path, rather than assume 32 minutes is an intentional supported limit.
Regarding your questions:
1. Is there a duration limit?
I can't find a Microsoft-published MAI-Transcribe-2-specific ~32-minute diarization limit. Your results strongly suggest an implementation limit or issue, but Microsoft would need to confirm this internally.
2. Is chunking a suitable workaround?
Yes, as a temporary workaround, but speaker IDs generated independently for each chunk shouldn't be assumed to represent the same speaker across chunks. If you need consistent speaker identity across the full recording, your existing workaround, MAI-Transcribe-2 for transcription followed by a separate diarization process, may be safer than independently diarizing chunks.
3. Should this return 4xx rather than 503?
If there is an intentional documented duration constraint, I would expect the request to be rejected as an invalid/unsupported request rather than surface an internal diarization 400 as an outer 503 ServiceUnavailable. The current response further suggests the failure is occurring downstream in the diarization service, not during request validation.
4. Would another region/API version help?
I don't recommend changing API versions or regions as a definitive fix unless Microsoft confirms a regional deployment difference. Your request is already using the documented 2025-10-15 Speech API, and the same behavior across both endpoint forms makes the endpoint hostname unlikely to be the cause.
At this stage, I'd recommend opening an Azure support case and including the successful 1,880-second and failing 1,995-second requests, timestamps, region, resource ID, and request/correlation IDs. Ask support specifically to confirm whether there is an undocumented MAI-Transcribe-2 native diarization duration limit in East US or whether this should be investigated as a preview-service defect.
Your reproducible ~31–33 minute boundary should give the engineering team a very useful starting point.
References:
MAI-Transcribe-2 model information
Azure Speech quotas and limits
Fast transcription API and diarization
Help make this community better for everyone: if this answer resolved your issue, please accept it or upvote it. If not, share more details in a comment so we can continue the discussion and find the right solution.