ConversationTranscriber compatibility with Custom Speech

Tabarcea, Georgiana 0 Reputation points
2026-08-12T14:37:04.31+00:00

Does ConversationTranscriber in the JavaScript SDK ( microsoft-cognitiveservices-speech-sdk *v1.50.0) respect SpeechConfig.endpointId for custom speech models? The documentation lists endpoint_id as a property, but I want to confirm it works the same as with SpeechRecognizer.

My issue is that I want to introduce Diarization to my conversations and I saw I need to use ConversationTranscriber to do so, but what I found on some sources including something official from Azure is that ConversationTranscriber does not support usage of Custom Speech as SpeechRecognizer does. Tho, I saw in the documentation of the ConversationTranscriber that the property for endpointId for custom speech model is listed. So my question is what is the truth? Is it supported?

If not, what are the possibilities to have both Diarization working but also Custom speech model?*

Azure Speech in Foundry Tools
0 comments No comments

1 answer

Sort by: Most helpful
  1. Jerald Felix 18,760 Reputation points Volunteer Moderator
    2026-08-14T01:50:53.47+00:00

    Hello Tabarcea, Georgiana,

    Greetings! Thanks for raising this question in the Q&A forum.

    The documentation listing endpointId as a property on ConversationTranscriber is technically accurate in that the property exists and can be set, but it does not behave the same way it does on SpeechRecognizer. In practice, ConversationTranscriber does not respect a custom endpoint for a Custom Speech model. It continues to use the default base model endpoint regardless of what you set for endpointId or SpeechConfig.endpointId, and this has been confirmed as a limitation in other Q&A threads reporting the exact same mismatch between the documented property and actual behavior. This is why you are seeing conflicting information: the property is present in the SDK surface, but the underlying real-time diarization pipeline behind ConversationTranscriber was built against the base model service and was never wired up to honor Custom Speech endpoints, unlike SpeechRecognizer.

    Here is what this means for your scenario, and your options:

    Confirm the behavior in your own testing first, since this is not always called out clearly. Set SpeechConfig.endpointId on your ConversationTranscriber instance to a known custom endpoint, then run a phrase that only your custom model would transcribe correctly (a domain-specific term, product name, or acronym). If it comes back using the base model's interpretation rather than your custom one, that confirms the endpoint is being ignored, consistent with the pattern others have reported.

    If you need both diarization and Custom Speech, you cannot get both from a single ConversationTranscriber call today. Your practical options are:

    • Run SpeechRecognizer against your Custom Speech endpoint for accurate transcription, and separately run diarization logic (either your own speaker-segmentation approach, or a secondary pass) to attribute segments to speakers. This is more work but keeps your custom vocabulary accuracy.
      • Use ConversationTranscriber for diarization only, accept base model accuracy, and treat any domain-specific vocabulary gaps as a post-processing correction step (for example, a phrase list correction pass, or PhraseListGrammar which is supported on ConversationTranscriber and can help nudge recognition toward known terms without a full custom model).
        • Consider Fast Transcription API or batch transcription, which does support diarization together with custom models for offline/asynchronous scenarios, if your use case does not require real-time output.
        File this as a documentation gap. Since the endpointId property is listed without a caveat that it is not honored on ConversationTranscriber, it is worth reporting through the Speech SDK GitHub repository so the docs page gets a note added, since other developers are hitting the same confusion.

    If this answer helps you kindly accept the answer which will help others who have similar questions.

    Best Regards,

    Jerald Felix.

    Was this answer helpful?

    1 person found this answer helpful.
    0 comments No comments

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.