{
  "aboutHtml": "<p>Microsoft AI MAI-Transcribe 2 là phiên bản chuyển giọng nói từ âm thanh ghi sẵn thành văn bản trong họ chép lời thế hệ thứ hai của Microsoft. Nó chuyển nội dung nói thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển giữa ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian cấp từ và phong cách chép lời có thể chọn. Sản phẩm hữu ích gồm bản chép họp gắn người nói, bản ghi phỏng vấn có thể tìm kiếm, dữ liệu căn chỉnh phụ đề hoặc bản đọc chính tả đã kiểm tra chứa thuật ngữ chuyên môn.</p><p>Chuẩn bị bản ghi giữ nguyên tư liệu lời nói. Nhà sản xuất liệt kê đầu vào WAV, MP3 và FLAC. Giữ âm thanh gốc để đối chiếu từ chưa chắc, tên và số với văn bản nhận diện. Bản ghi có thể có tiếng ồn nền hoặc chất lượng micro thay đổi, vốn là điều mô hình được thiết kế xử lý, nhưng rà soát vẫn cần tập trung đoạn không rõ hoặc chồng lời. Với phỏng vấn, giữ trình tự lượt và khoảng dừng thay vì bỏ ngữ cảnh giúp diễn giải câu trả lời.</p><p>Tự nhận diện ngôn ngữ hữu ích khi chưa biết ngôn ngữ từ trước. Tập 60 ngôn ngữ được mô tả gồm tiếng Anh, Nga, Trung, Nhật, Hàn, Ả Rập, Pháp, Đức, Tây Ban Nha, Indonesia, Mã Lai, Thái và Việt. Khả năng xử lý lời nói chuyển đổi giữa các ngôn ngữ bao phủ những thay đổi ngôn ngữ tự nhiên, gồm các cặp pha như Hinglish hoặc Spanglish. Giao diện nhà sản xuất cũng nhận một gợi ý ngôn ngữ duy nhất, được mô tả là chỉ dẫn mạnh. Chỉ dùng khi bản ghi thực sự bằng ngôn ngữ được chỉ định, thay vì ép hội thoại đa ngôn ngữ vào một ngôn ngữ kỳ vọng.</p><p>Gợi ý ưu tiên từ khóa cung cấp thuật ngữ chuyên ngành, chữ viết tắt, tên sản phẩm và tên riêng có thể khó phân biệt chỉ qua âm thanh. Chuẩn bị danh sách tập trung liên quan bản ghi, như tên dự án, dòng sản phẩm hoặc từ kỹ thuật dùng trong thảo luận. Hướng dẫn phục vụ mô tả chúng là gợi ý nhận diện, không phải khớp bắt buộc. Với bài giảng kỹ thuật, đưa đúng cách viết tên thiết bị và thuật ngữ chuyên môn, rồi kiểm tra bản chép có đặt chúng đúng chỗ thực sự được nói không. Thuật ngữ cung cấp không phải bằng chứng người nói đã nói nó.</p><p>Chọn phong cách đầu ra theo sản phẩm dự định. Verbatim, mặc định được tài liệu mô tả, giữ từ đệm, chỗ bắt đầu rồi bỏ dở và tự sửa lời. Clean bỏ các điểm thiếu trôi chảy để bản chép dễ đọc hơn. Bản ghi dùng xem diễn biến hội thoại có thể giữ do dự và sửa lời; bản chép bài học dễ đọc có thể dùng lời văn đã làm sạch. Giữ âm thanh gốc cạnh cả hai kết quả. Làm sạch cải thiện trình bày lời nói, không nên coi là tóm tắt riêng hoặc diễn giải mới ý định người nói.</p><p>Phân tách người nói chia lượt theo người được phát hiện, còn dấu thời gian cấp từ cung cấp độ lệch và thời lượng từng từ. Giao diện phục vụ cũng có thời gian theo đoạn hoặc không lấy thời gian. Các đoạn chia theo ngôn ngữ và, khi bật phân tách người nói, theo người nói. Trường thời gian dùng mili giây, có thể hỗ trợ điều hướng, tìm kiếm và biên tập. Nhãn phân biệt người nói được phát hiện; ghép nhãn với tên người tham gia là bước rà riêng. Với phụ đề, dùng thời gian từ đã kiểm tra để chuẩn bị nhóm dòng dễ đọc thay vì coi kết quả nhận diện đã là tệp phụ đề hoàn chỉnh.</p><p>Thẻ mô hình liệt kê kích thước tệp tối đa 300 MB và hai giờ. Tài liệu REST đồng bộ liên kết cho giao diện 2025-10-15 được mô tả lại yêu cầu tệp nhỏ hơn 250 MB và ngắn hơn hai giờ. Đây là ràng buộc công bố riêng của thẻ mô hình và giao diện phục vụ; chuẩn bị tệp trong ngân sách phục vụ áp dụng. Hướng dẫn MAI cũng nêu phân tách người nói hỗ trợ bản ghi ngắn hơn chép lời không phân tách. Khi cần gắn người nói, tổ chức tư liệu dài nhiều người thành phần mạch lạc và giữ vị trí từng phần trong bản ghi gốc để rà sau.</p><p>Đầu ra được mô tả là dữ liệu chép lời có cấu trúc: toàn văn, cụm lời và, khi yêu cầu, thông tin người nói cùng thời gian. Cụm có thể mang văn bản, ngôn ngữ, độ lệch và thời lượng; thời gian từ có thể nối từ nhận diện với âm thanh. Với kho có thể tìm kiếm, giữ các quan hệ để thuật ngữ tìm thấy dẫn về bản ghi. Với quy trình họp, bản chép đã kiểm tra trở thành đầu vào cho tóm tắt hoặc trích việc cần làm về sau. Kết quả mô hình giọng nói là nội dung nhận diện, không phải bản ghi quyết định cuộc họp đã được xác minh độc lập.</p><p>Khác biệt phiên bản rất cụ thể. MAI-Transcribe 1.5 bao phủ 43 ngôn ngữ, còn phiên bản này bao phủ 60 và bổ sung các điều khiển phân tách người nói, dấu thời gian từ và clean/verbatim được mô tả. MAI-Transcribe 2 Streaming là mô hình riêng để chép lời tăng dần thời gian thực, có tập tính năng riêng; độ trễ phần đầu tiên của nó không mô tả phiên bản âm thanh ghi sẵn này. Đối chiếu bản chép với âm thanh về tên, số, lượt người nói và đoạn trộn ngôn ngữ trước khi dùng làm nguồn cho phụ đề, trích dẫn hoặc tài liệu phát sinh.</p>",
  "aboutText": "Microsoft AI MAI-Transcribe 2 là phiên bản chuyển giọng nói từ âm thanh ghi sẵn thành văn bản trong họ chép lời thế hệ thứ hai của Microsoft. Nó chuyển nội dung nói thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển giữa ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian cấp từ và phong cách chép lời có thể chọn. Sản phẩm hữu ích gồm bản chép họp gắn người nói, bản ghi phỏng vấn có thể tìm kiếm, dữ liệu căn chỉnh phụ đề hoặc bản đọc chính tả đã kiểm tra chứa thuật ngữ chuyên môn.\n\nChuẩn bị bản ghi giữ nguyên tư liệu lời nói. Nhà sản xuất liệt kê đầu vào WAV, MP3 và FLAC. Giữ âm thanh gốc để đối chiếu từ chưa chắc, tên và số với văn bản nhận diện. Bản ghi có thể có tiếng ồn nền hoặc chất lượng micro thay đổi, vốn là điều mô hình được thiết kế xử lý, nhưng rà soát vẫn cần tập trung đoạn không rõ hoặc chồng lời. Với phỏng vấn, giữ trình tự lượt và khoảng dừng thay vì bỏ ngữ cảnh giúp diễn giải câu trả lời.\n\nTự nhận diện ngôn ngữ hữu ích khi chưa biết ngôn ngữ từ trước. Tập 60 ngôn ngữ được mô tả gồm tiếng Anh, Nga, Trung, Nhật, Hàn, Ả Rập, Pháp, Đức, Tây Ban Nha, Indonesia, Mã Lai, Thái và Việt. Khả năng xử lý lời nói chuyển đổi giữa các ngôn ngữ bao phủ những thay đổi ngôn ngữ tự nhiên, gồm các cặp pha như Hinglish hoặc Spanglish. Giao diện nhà sản xuất cũng nhận một gợi ý ngôn ngữ duy nhất, được mô tả là chỉ dẫn mạnh. Chỉ dùng khi bản ghi thực sự bằng ngôn ngữ được chỉ định, thay vì ép hội thoại đa ngôn ngữ vào một ngôn ngữ kỳ vọng.\n\nGợi ý ưu tiên từ khóa cung cấp thuật ngữ chuyên ngành, chữ viết tắt, tên sản phẩm và tên riêng có thể khó phân biệt chỉ qua âm thanh. Chuẩn bị danh sách tập trung liên quan bản ghi, như tên dự án, dòng sản phẩm hoặc từ kỹ thuật dùng trong thảo luận. Hướng dẫn phục vụ mô tả chúng là gợi ý nhận diện, không phải khớp bắt buộc. Với bài giảng kỹ thuật, đưa đúng cách viết tên thiết bị và thuật ngữ chuyên môn, rồi kiểm tra bản chép có đặt chúng đúng chỗ thực sự được nói không. Thuật ngữ cung cấp không phải bằng chứng người nói đã nói nó.\n\nChọn phong cách đầu ra theo sản phẩm dự định. Verbatim, mặc định được tài liệu mô tả, giữ từ đệm, chỗ bắt đầu rồi bỏ dở và tự sửa lời. Clean bỏ các điểm thiếu trôi chảy để bản chép dễ đọc hơn. Bản ghi dùng xem diễn biến hội thoại có thể giữ do dự và sửa lời; bản chép bài học dễ đọc có thể dùng lời văn đã làm sạch. Giữ âm thanh gốc cạnh cả hai kết quả. Làm sạch cải thiện trình bày lời nói, không nên coi là tóm tắt riêng hoặc diễn giải mới ý định người nói.\n\nPhân tách người nói chia lượt theo người được phát hiện, còn dấu thời gian cấp từ cung cấp độ lệch và thời lượng từng từ. Giao diện phục vụ cũng có thời gian theo đoạn hoặc không lấy thời gian. Các đoạn chia theo ngôn ngữ và, khi bật phân tách người nói, theo người nói. Trường thời gian dùng mili giây, có thể hỗ trợ điều hướng, tìm kiếm và biên tập. Nhãn phân biệt người nói được phát hiện; ghép nhãn với tên người tham gia là bước rà riêng. Với phụ đề, dùng thời gian từ đã kiểm tra để chuẩn bị nhóm dòng dễ đọc thay vì coi kết quả nhận diện đã là tệp phụ đề hoàn chỉnh.\n\nThẻ mô hình liệt kê kích thước tệp tối đa 300 MB và hai giờ. Tài liệu REST đồng bộ liên kết cho giao diện 2025-10-15 được mô tả lại yêu cầu tệp nhỏ hơn 250 MB và ngắn hơn hai giờ. Đây là ràng buộc công bố riêng của thẻ mô hình và giao diện phục vụ; chuẩn bị tệp trong ngân sách phục vụ áp dụng. Hướng dẫn MAI cũng nêu phân tách người nói hỗ trợ bản ghi ngắn hơn chép lời không phân tách. Khi cần gắn người nói, tổ chức tư liệu dài nhiều người thành phần mạch lạc và giữ vị trí từng phần trong bản ghi gốc để rà sau.\n\nĐầu ra được mô tả là dữ liệu chép lời có cấu trúc: toàn văn, cụm lời và, khi yêu cầu, thông tin người nói cùng thời gian. Cụm có thể mang văn bản, ngôn ngữ, độ lệch và thời lượng; thời gian từ có thể nối từ nhận diện với âm thanh. Với kho có thể tìm kiếm, giữ các quan hệ để thuật ngữ tìm thấy dẫn về bản ghi. Với quy trình họp, bản chép đã kiểm tra trở thành đầu vào cho tóm tắt hoặc trích việc cần làm về sau. Kết quả mô hình giọng nói là nội dung nhận diện, không phải bản ghi quyết định cuộc họp đã được xác minh độc lập.\n\nKhác biệt phiên bản rất cụ thể. MAI-Transcribe 1.5 bao phủ 43 ngôn ngữ, còn phiên bản này bao phủ 60 và bổ sung các điều khiển phân tách người nói, dấu thời gian từ và clean/verbatim được mô tả. MAI-Transcribe 2 Streaming là mô hình riêng để chép lời tăng dần thời gian thực, có tập tính năng riêng; độ trễ phần đầu tiên của nó không mô tả phiên bản âm thanh ghi sẵn này. Đối chiếu bản chép với âm thanh về tên, số, lượt người nói và đoạn trộn ngôn ngữ trước khi dùng làm nguồn cho phụ đề, trích dẫn hoặc tài liệu phát sinh.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "a6d830222d6e5b66b4881e67416243ad5a55aa4d118a2638bd2522c4a3e4ec76",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "vi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Microsoft AI: MAI-Transcribe 2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Microsoft AI /</span><code>microsoft/mai-transcribe-2</code><button type=\"button\" id=\"copy-id\">Sao chép ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Các phần của thẻ mô hình\"><button type=\"button\" data-card-jump=\"overview\">Bắt đầu</button><button type=\"button\" data-card-jump=\"methods\">Đầu vào &amp; phương thức</button><button type=\"button\" data-card-jump=\"pricing\">Bảng giá</button><button type=\"button\" data-card-jump=\"examples\">Ví dụ</button><button type=\"button\" data-card-jump=\"results\">Kết quả</button><button type=\"button\" data-card-jump=\"aliases\">Bí danh</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Phương thức API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|transcriptions|/v1/audio/transcriptions|microsoft%2Fmai-transcribe-2\">Nhận dạng</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">Bắt đầu</h3><p class=\"mdesc-full\">Microsoft AI MAI-Transcribe 2 chuyển giọng nói ghi sẵn thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển đổi giữa các ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian theo từ, gợi ý ưu tiên từ khóa và kiểu chép lời làm sạch hoặc nguyên văn cho biên bản họp, phụ đề, âm thanh có thể tìm kiếm và đọc chính tả chuyên ngành.</p><dl class=\"card-io\" data-card-io><div><dt>Đầu vào được chấp nhận</dt><dd>Âm thanh</dd></div><div><dt>Kết quả</dt><dd>Văn bản</dd></div></dl><details class=\"card-about\"><summary>Về mô hình</summary><p class=\"note-s\" data-model-method-boundary>Mô tả này trình bày khả năng của mô hình. Đầu vào, đầu ra và tùy chọn có trên Ailoot được liệt kê bên dưới cho phương thức đã chọn.</p><div class=\"mabout\" id=\"m-about\"><p>Microsoft AI MAI-Transcribe 2 là phiên bản chuyển giọng nói từ âm thanh ghi sẵn thành văn bản trong họ chép lời thế hệ thứ hai của Microsoft. Nó chuyển nội dung nói thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển giữa ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian cấp từ và phong cách chép lời có thể chọn. Sản phẩm hữu ích gồm bản chép họp gắn người nói, bản ghi phỏng vấn có thể tìm kiếm, dữ liệu căn chỉnh phụ đề hoặc bản đọc chính tả đã kiểm tra chứa thuật ngữ chuyên môn.</p><p>Chuẩn bị bản ghi giữ nguyên tư liệu lời nói. Nhà sản xuất liệt kê đầu vào WAV, MP3 và FLAC. Giữ âm thanh gốc để đối chiếu từ chưa chắc, tên và số với văn bản nhận diện. Bản ghi có thể có tiếng ồn nền hoặc chất lượng micro thay đổi, vốn là điều mô hình được thiết kế xử lý, nhưng rà soát vẫn cần tập trung đoạn không rõ hoặc chồng lời. Với phỏng vấn, giữ trình tự lượt và khoảng dừng thay vì bỏ ngữ cảnh giúp diễn giải câu trả lời.</p><p>Tự nhận diện ngôn ngữ hữu ích khi chưa biết ngôn ngữ từ trước. Tập 60 ngôn ngữ được mô tả gồm tiếng Anh, Nga, Trung, Nhật, Hàn, Ả Rập, Pháp, Đức, Tây Ban Nha, Indonesia, Mã Lai, Thái và Việt. Khả năng xử lý lời nói chuyển đổi giữa các ngôn ngữ bao phủ những thay đổi ngôn ngữ tự nhiên, gồm các cặp pha như Hinglish hoặc Spanglish. Giao diện nhà sản xuất cũng nhận một gợi ý ngôn ngữ duy nhất, được mô tả là chỉ dẫn mạnh. Chỉ dùng khi bản ghi thực sự bằng ngôn ngữ được chỉ định, thay vì ép hội thoại đa ngôn ngữ vào một ngôn ngữ kỳ vọng.</p><p>Gợi ý ưu tiên từ khóa cung cấp thuật ngữ chuyên ngành, chữ viết tắt, tên sản phẩm và tên riêng có thể khó phân biệt chỉ qua âm thanh. Chuẩn bị danh sách tập trung liên quan bản ghi, như tên dự án, dòng sản phẩm hoặc từ kỹ thuật dùng trong thảo luận. Hướng dẫn phục vụ mô tả chúng là gợi ý nhận diện, không phải khớp bắt buộc. Với bài giảng kỹ thuật, đưa đúng cách viết tên thiết bị và thuật ngữ chuyên môn, rồi kiểm tra bản chép có đặt chúng đúng chỗ thực sự được nói không. Thuật ngữ cung cấp không phải bằng chứng người nói đã nói nó.</p><p>Chọn phong cách đầu ra theo sản phẩm dự định. Verbatim, mặc định được tài liệu mô tả, giữ từ đệm, chỗ bắt đầu rồi bỏ dở và tự sửa lời. Clean bỏ các điểm thiếu trôi chảy để bản chép dễ đọc hơn. Bản ghi dùng xem diễn biến hội thoại có thể giữ do dự và sửa lời; bản chép bài học dễ đọc có thể dùng lời văn đã làm sạch. Giữ âm thanh gốc cạnh cả hai kết quả. Làm sạch cải thiện trình bày lời nói, không nên coi là tóm tắt riêng hoặc diễn giải mới ý định người nói.</p><p>Phân tách người nói chia lượt theo người được phát hiện, còn dấu thời gian cấp từ cung cấp độ lệch và thời lượng từng từ. Giao diện phục vụ cũng có thời gian theo đoạn hoặc không lấy thời gian. Các đoạn chia theo ngôn ngữ và, khi bật phân tách người nói, theo người nói. Trường thời gian dùng mili giây, có thể hỗ trợ điều hướng, tìm kiếm và biên tập. Nhãn phân biệt người nói được phát hiện; ghép nhãn với tên người tham gia là bước rà riêng. Với phụ đề, dùng thời gian từ đã kiểm tra để chuẩn bị nhóm dòng dễ đọc thay vì coi kết quả nhận diện đã là tệp phụ đề hoàn chỉnh.</p><p>Thẻ mô hình liệt kê kích thước tệp tối đa 300 MB và hai giờ. Tài liệu REST đồng bộ liên kết cho giao diện 2025-10-15 được mô tả lại yêu cầu tệp nhỏ hơn 250 MB và ngắn hơn hai giờ. Đây là ràng buộc công bố riêng của thẻ mô hình và giao diện phục vụ; chuẩn bị tệp trong ngân sách phục vụ áp dụng. Hướng dẫn MAI cũng nêu phân tách người nói hỗ trợ bản ghi ngắn hơn chép lời không phân tách. Khi cần gắn người nói, tổ chức tư liệu dài nhiều người thành phần mạch lạc và giữ vị trí từng phần trong bản ghi gốc để rà sau.</p><p>Đầu ra được mô tả là dữ liệu chép lời có cấu trúc: toàn văn, cụm lời và, khi yêu cầu, thông tin người nói cùng thời gian. Cụm có thể mang văn bản, ngôn ngữ, độ lệch và thời lượng; thời gian từ có thể nối từ nhận diện với âm thanh. Với kho có thể tìm kiếm, giữ các quan hệ để thuật ngữ tìm thấy dẫn về bản ghi. Với quy trình họp, bản chép đã kiểm tra trở thành đầu vào cho tóm tắt hoặc trích việc cần làm về sau. Kết quả mô hình giọng nói là nội dung nhận diện, không phải bản ghi quyết định cuộc họp đã được xác minh độc lập.</p><p>Khác biệt phiên bản rất cụ thể. MAI-Transcribe 1.5 bao phủ 43 ngôn ngữ, còn phiên bản này bao phủ 60 và bổ sung các điều khiển phân tách người nói, dấu thời gian từ và clean/verbatim được mô tả. MAI-Transcribe 2 Streaming là mô hình riêng để chép lời tăng dần thời gian thực, có tập tính năng riêng; độ trễ phần đầu tiên của nó không mô tả phiên bản âm thanh ghi sẵn này. Đối chiếu bản chép với âm thanh về tên, số, lượt người nói và đoạn trộn ngôn ngữ trước khi dùng làm nguồn cho phụ đề, trích dẫn hoặc tài liệu phát sinh.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Có trên Ailoot · đầu vào &amp; phương thức</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Phiên âm</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Đầu vào</dt><dd><code>audio</code></dd></div><div><dt>Đầu ra</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Trường</th><th>Loại</th><th>Yêu cầu</th><th>Giá trị &amp; giới hạn</th><th>Mặc định</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>microsoft/mai-transcribe-2</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">input_audio</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">language</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">temperature</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>number</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>Tối thiểu: 0</div><div>Tối đa: 1</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>json, verbose_json</div></td><td data-cell-label=\"Mặc định\" data-default=\"known\"><span class=\"card-cell-label\">Mặc định</span>json</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">timestamp_granularities</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>array</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">provider</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>object</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Không bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr></tbody></table></div><details class=\"note-s\" data-method-contract><summary>Tham số phương thức và vòng đời</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Tham số</th><th>Hợp đồng</th></tr></thead><tbody><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>content_type</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>application/json</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>required</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>model, input_audio</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>material_types</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>audio</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>material_conditions</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>Đọc tệp WAV thực tế và mã hóa các byte thật cho input_audio JSON đã khai báo; không quảng bá tuyến multipart cho khai báo chính xác chỉ dùng JSON này.</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Bảng giá</h3><div class=\"card-result-process\" data-billing-basis><h5>Cách tính phí cuối cùng</h5><p class=\"note-s\">Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>Thông tin biểu giá không bổ sung tùy chọn yêu cầu. Các tham số được hỗ trợ nằm trong phương thức đã chọn.</p><dl data-price-conditions><dt>Chế độ nhanh</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ nhanh</span></dd><dt>Chế độ Flex</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi chọn chế độ flex</span></dd><dt>Mức độ suy luận tối đa</dt><dd>Chưa chỉ định <span class=\"note-s\">Khi áp dụng mức điều chỉnh mặc định (default) cho mức độ suy luận tối đa</span></dd></dl></div><div data-declared-tariff-pricing><h4>Mức phí ước tính để so sánh</h4><h4>Giá theo cấu hình</h4><p class=\"note-s\">Đối chiếu từng khoản phí với điều kiện hiển thị. Dùng một mức phí cho mỗi nhóm cấu hình thay thế.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Biểu mức phí</th><th>Số lượng dự báo</th><th>Đơn vị tính phí</th><th>Phí</th></tr></thead><tbody><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Giá cơ sở cho token</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>Mức phí cơ bản</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>—</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm, 1 giờ · Ước tính chỉ để so sánh</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div></td></tr><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Giờ âm thanh đầu vào</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>mỗi giờ âm thanh đầu vào</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Giờ âm thanh đầu vào · Ước tính chỉ để so sánh</span> <b>$0.2</b> <span class=\"price-unit\">mỗi giờ âm thanh đầu vào</span></div></td></tr><tr><th data-cell-label=\"Cấu hình\" scope=\"row\"><span class=\"card-cell-label\">Cấu hình</span>Chi phí tạo ước tính</th><td data-cell-label=\"Biểu mức phí\"><span class=\"card-cell-label\">Biểu mức phí</span>—</td><td data-cell-label=\"Số lượng dự báo\"><span class=\"card-cell-label\">Số lượng dự báo</span>ước tính cho một lần tạo</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>—</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu ra · Chi phí tạo ước tính · Ước tính chỉ để so sánh</span> <b>$0.00005555555555555556</b> <span class=\"price-unit\">ước tính trước khi tạo</span></div><p class=\"note-s\">Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất.</p></td></tr></tbody></table></div></div><p class=\"note-s\">Ailoot tạm giữ một khoản ước tính trước yêu cầu. Sau khi có kết quả, phí cuối cùng được quyết toán theo mức sử dụng đo được. Việc quyết toán khi truyền luồng dùng bản ghi mức sử dụng cuối cùng. <a href=\"/docs/vi/billing/reserve/\">Cách hoạt động của cơ chế tạm giữ và quyết toán →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Ví dụ yêu cầu</h3><h4>Ailoot Ultra · Phiên âm</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-1847-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1847-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · nội dung yêu cầu nguyên bản chính xác và kết quả đầy đủ</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1847-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1847-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ[&#39;AILOOT_AUDIO_FILE&#39;]).read_bytes()\nif not (audio[:4]==b&#39;RIFF&#39; and audio[8:12]==b&#39;WAVE&#39;): raise SystemExit(&#39;Supply an actual WAV audio file&#39;)\nif len(audio)&gt;26214400: raise SystemExit(&#39;Use a documented supported large-file flow&#39;)\nrequest={&#39;model&#39;: &#39;microsoft/mai-transcribe-2&#39;, &#39;input_audio&#39;: {&#39;data&#39;: &#39;${BASE64_ACTUAL_WAV_BYTES}&#39;, &#39;format&#39;: &#39;wav&#39;}}\nrequest[&#39;input_audio&#39;][&#39;data&#39;]=base64.b64encode(audio).decode(&#39;ascii&#39;)\nPath(&#39;request.json&#39;).write_text(json.dumps(request,ensure_ascii=False),encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">Nhận và lưu kết quả</h3><h4>Ailoot Ultra · Phiên âm</h4><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><details class=\"card-about\"><summary>Lượt đọc nội dung khác</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-1848-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1848-panel-0\" aria-selected=\"true\" tabindex=\"0\">Đọc tài nguyên hiện có thuộc về bạn</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1848-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1848-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Lưu tất cả kết quả đã hoàn tất</h5><p class=\"note-s\">Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.</p><p class=\"note-s\">Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Nếu cần kiểm tra phản hồi gốc</h5><p class=\"note-s\">Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo.</p></div><details class=\"card-about\" data-output-fields><summary>Trường phản hồi</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Trường</th><th>Loại</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">text</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">segments[]</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">words[]</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">speaker fields</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">timestamps</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Bí danh</h3><h4>Bí danh mô hình</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=microsoft%2Fmai-transcribe-2&amp;route=Ultra&amp;caller=microsoft%2Fmai-transcribe-2&amp;fmt=transcriptions\"><code>microsoft/mai-transcribe-2</code></a></span></p><h4>Bí danh đường dẫn phương thức</h4><p class=\"note-s\">Dùng các đường dẫn phương thức hiển thị ở trên.</p><h4>ID gọi liên quan</h4><p class=\"note-s\"><a href=\"#m=microsoft%2Fmai-transcribe-2&amp;route=Ultra&amp;caller=microsoft%2Fmai-transcribe-2&amp;fmt=transcriptions\"><code>microsoft/mai-transcribe-2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "microsoft/mai-transcribe-2",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|microsoft%2Fmai-transcribe-2",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo."
            },
            "outputs": {
              "all_results": "Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-transcribe-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-transcribe-2"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "microsoft/mai-transcribe-2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Đọc tệp WAV thực tế và mã hóa các byte thật cho input_audio JSON đã khai báo; không quảng bá tuyến multipart cho khai báo chính xác chỉ dùng JSON này."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Chi phí tạo ước tính",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'microsoft/mai-transcribe-2', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Phiên âm",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "stt_hour",
            "label": "input audio hour",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per input audio hour",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "stt_hour"
          },
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "microsoft/mai-transcribe-2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1bccdf50e4020d22059cd8d71963843aaf33247613e386b7a683c081cee6df5e",
    "input_html_sha256": "b2e02f04e83c9fc31812f92b69f8d173c217c88b68c9498c0cada695870f8d4f",
    "private_audit_sha256": "1933283994ebcba4ece534ccf30283dcb99c1d06204c036ce840f2facdcd5b6e",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/microsoft-mai-transcribe-2/",
    "description": "Microsoft AI MAI-Transcribe 2 chuyển giọng nói ghi sẵn thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển đổi giữa các ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian theo từ, gợi ý ưu tiên từ khóa và kiểu chép lời làm sạch hoặc nguyên văn cho biên bản họp, phụ đề, âm thanh có thể tìm kiếm và đọc chính tả chuyên ngành.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/microsoft-mai-transcribe-2/index.md",
    "title": "Microsoft AI: MAI-Transcribe 2 — Ailoot",
    "url": "https://ailoot.ai/models/vi/microsoft-mai-transcribe-2/"
  },
  "rawModel": {
    "about": "Microsoft AI MAI-Transcribe 2 là phiên bản chuyển giọng nói từ âm thanh ghi sẵn thành văn bản trong họ chép lời thế hệ thứ hai của Microsoft. Nó chuyển nội dung nói thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển giữa ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian cấp từ và phong cách chép lời có thể chọn. Sản phẩm hữu ích gồm bản chép họp gắn người nói, bản ghi phỏng vấn có thể tìm kiếm, dữ liệu căn chỉnh phụ đề hoặc bản đọc chính tả đã kiểm tra chứa thuật ngữ chuyên môn.\n\nChuẩn bị bản ghi giữ nguyên tư liệu lời nói. Nhà sản xuất liệt kê đầu vào WAV, MP3 và FLAC. Giữ âm thanh gốc để đối chiếu từ chưa chắc, tên và số với văn bản nhận diện. Bản ghi có thể có tiếng ồn nền hoặc chất lượng micro thay đổi, vốn là điều mô hình được thiết kế xử lý, nhưng rà soát vẫn cần tập trung đoạn không rõ hoặc chồng lời. Với phỏng vấn, giữ trình tự lượt và khoảng dừng thay vì bỏ ngữ cảnh giúp diễn giải câu trả lời.\n\nTự nhận diện ngôn ngữ hữu ích khi chưa biết ngôn ngữ từ trước. Tập 60 ngôn ngữ được mô tả gồm tiếng Anh, Nga, Trung, Nhật, Hàn, Ả Rập, Pháp, Đức, Tây Ban Nha, Indonesia, Mã Lai, Thái và Việt. Khả năng xử lý lời nói chuyển đổi giữa các ngôn ngữ bao phủ những thay đổi ngôn ngữ tự nhiên, gồm các cặp pha như Hinglish hoặc Spanglish. Giao diện nhà sản xuất cũng nhận một gợi ý ngôn ngữ duy nhất, được mô tả là chỉ dẫn mạnh. Chỉ dùng khi bản ghi thực sự bằng ngôn ngữ được chỉ định, thay vì ép hội thoại đa ngôn ngữ vào một ngôn ngữ kỳ vọng.\n\nGợi ý ưu tiên từ khóa cung cấp thuật ngữ chuyên ngành, chữ viết tắt, tên sản phẩm và tên riêng có thể khó phân biệt chỉ qua âm thanh. Chuẩn bị danh sách tập trung liên quan bản ghi, như tên dự án, dòng sản phẩm hoặc từ kỹ thuật dùng trong thảo luận. Hướng dẫn phục vụ mô tả chúng là gợi ý nhận diện, không phải khớp bắt buộc. Với bài giảng kỹ thuật, đưa đúng cách viết tên thiết bị và thuật ngữ chuyên môn, rồi kiểm tra bản chép có đặt chúng đúng chỗ thực sự được nói không. Thuật ngữ cung cấp không phải bằng chứng người nói đã nói nó.\n\nChọn phong cách đầu ra theo sản phẩm dự định. Verbatim, mặc định được tài liệu mô tả, giữ từ đệm, chỗ bắt đầu rồi bỏ dở và tự sửa lời. Clean bỏ các điểm thiếu trôi chảy để bản chép dễ đọc hơn. Bản ghi dùng xem diễn biến hội thoại có thể giữ do dự và sửa lời; bản chép bài học dễ đọc có thể dùng lời văn đã làm sạch. Giữ âm thanh gốc cạnh cả hai kết quả. Làm sạch cải thiện trình bày lời nói, không nên coi là tóm tắt riêng hoặc diễn giải mới ý định người nói.\n\nPhân tách người nói chia lượt theo người được phát hiện, còn dấu thời gian cấp từ cung cấp độ lệch và thời lượng từng từ. Giao diện phục vụ cũng có thời gian theo đoạn hoặc không lấy thời gian. Các đoạn chia theo ngôn ngữ và, khi bật phân tách người nói, theo người nói. Trường thời gian dùng mili giây, có thể hỗ trợ điều hướng, tìm kiếm và biên tập. Nhãn phân biệt người nói được phát hiện; ghép nhãn với tên người tham gia là bước rà riêng. Với phụ đề, dùng thời gian từ đã kiểm tra để chuẩn bị nhóm dòng dễ đọc thay vì coi kết quả nhận diện đã là tệp phụ đề hoàn chỉnh.\n\nThẻ mô hình liệt kê kích thước tệp tối đa 300 MB và hai giờ. Tài liệu REST đồng bộ liên kết cho giao diện 2025-10-15 được mô tả lại yêu cầu tệp nhỏ hơn 250 MB và ngắn hơn hai giờ. Đây là ràng buộc công bố riêng của thẻ mô hình và giao diện phục vụ; chuẩn bị tệp trong ngân sách phục vụ áp dụng. Hướng dẫn MAI cũng nêu phân tách người nói hỗ trợ bản ghi ngắn hơn chép lời không phân tách. Khi cần gắn người nói, tổ chức tư liệu dài nhiều người thành phần mạch lạc và giữ vị trí từng phần trong bản ghi gốc để rà sau.\n\nĐầu ra được mô tả là dữ liệu chép lời có cấu trúc: toàn văn, cụm lời và, khi yêu cầu, thông tin người nói cùng thời gian. Cụm có thể mang văn bản, ngôn ngữ, độ lệch và thời lượng; thời gian từ có thể nối từ nhận diện với âm thanh. Với kho có thể tìm kiếm, giữ các quan hệ để thuật ngữ tìm thấy dẫn về bản ghi. Với quy trình họp, bản chép đã kiểm tra trở thành đầu vào cho tóm tắt hoặc trích việc cần làm về sau. Kết quả mô hình giọng nói là nội dung nhận diện, không phải bản ghi quyết định cuộc họp đã được xác minh độc lập.\n\nKhác biệt phiên bản rất cụ thể. MAI-Transcribe 1.5 bao phủ 43 ngôn ngữ, còn phiên bản này bao phủ 60 và bổ sung các điều khiển phân tách người nói, dấu thời gian từ và clean/verbatim được mô tả. MAI-Transcribe 2 Streaming là mô hình riêng để chép lời tăng dần thời gian thực, có tập tính năng riêng; độ trễ phần đầu tiên của nó không mô tả phiên bản âm thanh ghi sẵn này. Đối chiếu bản chép với âm thanh về tên, số, lượt người nói và đoạn trộn ngôn ngữ trước khi dùng làm nguồn cho phụ đề, trích dẫn hoặc tài liệu phát sinh.",
    "alias_of": null,
    "aliases": [],
    "author": "Microsoft AI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "Giá theo cấu hình được trình bày đầy đủ trong phần chi tiết."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "microsoft/mai-transcribe-2",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "Các đơn giá hiển thị dùng để ước tính chi phí trước khi tạo. Khoản phí cuối cùng được tính dựa trên chi phí ghi nhận cho lượt tạo gốc. Thời lượng đầu ra đo được và số lượng dự kiến không phải là số lượng cuối cùng dùng để tính phí.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "lifecycle": {
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID đã trả về để đối soát. Chỉ truy xuất theo các giá trị task_id/asset_id thực tế đã trả về hoặc từ thư viện nội dung đa phương tiện thuộc quyền sở hữu của bạn; tuyệt đối không tạo URL tác vụ từ ID thao tác và không gửi lại yêu cầu tạo."
            },
            "outputs": {
              "all_results": "Giữ lại toàn bộ phản hồi và các header, mọi đầu ra thực tế, các định danh gốc đã trả về và mọi trường usage. Khôi phục thao tác gốc mà không gửi lại yêu cầu tạo.",
              "family": "text",
              "fields": [
                {
                  "description": null,
                  "name": "text",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": null
                },
                {
                  "description": null,
                  "name": "segments[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "words[]",
                  "type": null
                },
                {
                  "description": null,
                  "name": "speaker fields",
                  "type": null
                },
                {
                  "description": null,
                  "name": "timestamps",
                  "type": null
                }
              ]
            },
            "parameters": [
              {
                "enum": [
                  "microsoft/mai-transcribe-2"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "name": "input_audio",
                "required": true,
                "type": "object"
              },
              {
                "name": "language",
                "required": false,
                "type": "string"
              },
              {
                "maximum": 1,
                "minimum": 0,
                "name": "temperature",
                "required": false,
                "type": "number"
              },
              {
                "default": "json",
                "default_known": true,
                "enum": [
                  "json",
                  "verbose_json"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": false,
                "type": "string"
              },
              {
                "items": {
                  "enum": [
                    "segment",
                    "word"
                  ],
                  "type": "string"
                },
                "name": "timestamp_granularities",
                "required": false,
                "type": "array"
              },
              {
                "name": "provider",
                "required": false,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "enum": [
                        "wav",
                        "mp3",
                        "flac",
                        "m4a",
                        "ogg",
                        "webm",
                        "aac"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "language": {
                  "description": "ISO-639-1 code; omitted means auto-detection",
                  "type": "string"
                },
                "model": {
                  "enum": [
                    "microsoft/mai-transcribe-2"
                  ],
                  "type": "string"
                },
                "provider": {
                  "description": "Data policy and exact provider options; order/only/ignore are not applied to STT",
                  "properties": {
                    "data_collection": {
                      "enum": [
                        "allow",
                        "deny",
                        null
                      ],
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "options": {
                      "type": "object"
                    },
                    "zdr": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    }
                  },
                  "type": "object"
                },
                "response_format": {
                  "default": "json",
                  "description": "verbose_json requires exact model/provider support",
                  "enum": [
                    "json",
                    "verbose_json"
                  ],
                  "type": "string"
                },
                "temperature": {
                  "maximum": 1,
                  "minimum": 0,
                  "type": "number"
                },
                "timestamp_granularities": {
                  "description": "Only used with supported verbose_json",
                  "items": {
                    "enum": [
                      "segment",
                      "word"
                    ],
                    "type": "string"
                  },
                  "type": "array"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "microsoft/mai-transcribe-2"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Đọc tệp WAV thực tế và mã hóa các byte thật cho input_audio JSON đã khai báo; không quảng bá tuyến multipart cho khai báo chính xác chỉ dùng JSON này."
            ],
            "material_types": [
              "audio"
            ],
            "required": [
              "model",
              "input_audio"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Keep the returned X-Client-Request-ID for reconciliation. Read only actual returned task_id/asset_id values or the owned media library; never build a task URL from the operation ID and never resubmit creation."
          },
          "method": {
            "http": "POST",
            "path": "/v1/audio/transcriptions"
          },
          "output": {
            "all_results": "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again.",
            "family": "text",
            "fields": [
              {
                "description": null,
                "name": "text",
                "type": null
              },
              {
                "description": null,
                "name": "usage",
                "type": null
              },
              {
                "description": null,
                "name": "segments[]",
                "type": null
              },
              {
                "description": null,
                "name": "words[]",
                "type": null
              },
              {
                "description": null,
                "name": "speaker fields",
                "type": null
              },
              {
                "description": null,
                "name": "timestamps",
                "type": null
              }
            ]
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "Ước tính này không phải là khoản phí bổ sung hay mức giá cố định cho lượt tạo đã hoàn tất.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Chi phí tạo ước tính",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual WAV recording}\"\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nimport base64\naudio=Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4]==b'RIFF' and audio[8:12]==b'WAVE'): raise SystemExit('Supply an actual WAV audio file')\nif len(audio)>26214400: raise SystemExit('Use a documented supported large-file flow')\nrequest={'model': 'microsoft/mai-transcribe-2', 'input_audio': {'data': '${BASE64_ACTUAL_WAV_BYTES}', 'format': 'wav'}}\nrequest['input_audio']['data']=base64.b64encode(audio).decode('ascii')\nPath('request.json').write_text(json.dumps(request,ensure_ascii=False),encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/transcriptions \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o response.bin\n# Keep the complete original response and headers. Read every returned segment, word and usage field.\n# Preserve actual operation/task/asset IDs; continue reads of the original result without resubmitting.\n",
            "label": "curl · exact native body and complete result",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o owned-assets.json\n# Preserve every returned asset and follow its exact signed content URL. Do not construct a signed token.\n",
            "label": "Read existing owned assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "Use the exact caller model ID and documented input representation.",
          "Retain the complete response and headers, every actual output, original returned identifiers and all usage fields. Recover the original operation without submitting creation again."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "audio"
        ],
        "label": "Phiên âm",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "native_endpoint": "audio_transcriptions",
        "out": null,
        "output": [
          "text"
        ],
        "path": "/v1/audio/transcriptions",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio hour"
            },
            "label": "input audio hour",
            "units": [
              {
                "amount": "0.2",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "stt_hour",
                "label": "input audio hour",
                "native_amount_usd_per_unit": "0.2",
                "native_quantity": 1,
                "public_unit_label": "per input audio hour",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "stt_hour"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.00005555555555555556",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.00005555555555555556",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.2",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "stt_hour",
            "label": "input audio hour",
            "native_amount_usd_per_unit": "0.2",
            "native_quantity": 1,
            "public_unit_label": "per input audio hour",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "stt_hour"
          },
          {
            "amount": "0.00005555555555555556",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.00005555555555555556",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "microsoft/mai-transcribe-2",
        "request_model_id": "microsoft/mai-transcribe-2",
        "route_label": "Ultra"
      }
    ],
    "name": "Microsoft AI: MAI-Transcribe 2",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 5.555555555555556e-05,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 5.555555555555556e-05,
      "varies": false
    },
    "short": "Microsoft AI MAI-Transcribe 2 chuyển giọng nói ghi sẵn thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển đổi giữa các ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian theo từ, gợi ý ưu tiên từ khóa và kiểu chép lời làm sạch hoặc nguyên văn cho biên bản họp, phụ đề, âm thanh có thể tìm kiếm và đọc chính tả chuyên ngành."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Microsoft AI MAI-Transcribe 2 chuyển giọng nói ghi sẵn thành văn bản ở 60 ngôn ngữ, tự nhận diện ngôn ngữ và hỗ trợ lời nói chuyển đổi giữa các ngôn ngữ. Mô hình bổ sung phân tách người nói, thời gian theo từ, gợi ý ưu tiên từ khóa và kiểu chép lời làm sạch hoặc nguyên văn cho biên bản họp, phụ đề, âm thanh có thể tìm kiếm và đọc chính tả chuyên ngành.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0fce29e7ea2e0336c9fe8909d5af48855c19fa94e3b4cfc4ced26ceb3bc1a72c",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "3ab9689fc243ca41d4df0fbe973bdfc862824408f2ce895165a0cd526b1698d6"
}
