{
  "aboutHtml": "<p>Muse Voice Transcribe 1.0 là mô hình cảm nhận âm thanh của Meta để chép lời nói, phát hiện ranh giới phát ngôn và xác định người nói cho từng lượt. Mô hình thuộc dòng Muse Spark và kết hợp nhận dạng giọng nói, phân tách người nói và phát hiện điểm kết thúc lượt nói ngay trong mô hình. Đầu ra là văn bản được nhận dạng, kèm thông tin thời gian và người nói có sẵn trong chế độ đã chọn.</p><p>Mô hình xử lý âm thanh theo từng khối 80 mili giây và quyết định tiếp tục lắng nghe hay xuất văn bản. Cơ chế độ trễ thích ứng cho phép mô hình chờ thêm âm thanh khi một từ khó xác định hơn. Nhờ đó, mô hình tạo văn bản tạm thời trong lúc lời nói tiếp tục đến, rồi trả về kết quả chép lời hoàn chỉnh. Hãy coi giả thuyết tạm thời và lượt nói hoàn chỉnh là hai giai đoạn khác nhau của trải nghiệm nghe.</p><p>Có ba chế độ để lựa chọn. Push-to-talk là chế độ mặc định cho một phát ngôn đơn lẻ có điểm bắt đầu và kết thúc do người dùng kiểm soát, chẳng hạn truy vấn bằng giọng nói hoặc một đoạn đọc chính tả ngắn. Endpointing cho phép mô hình phát hiện ranh giới lượt nói và trả về một bản chép lời hoàn chỉnh cho mỗi đoạn được phát hiện. Diarization gán nhãn người nói cho lời nói được nhận dạng và dành cho bản ghi có nhiều người nói, thay vì tối ưu cho việc luân phiên các lệnh thoại với tốc độ cao nhất.</p><p>Với một đoạn ghi âm, quy trình chép lời từ tệp trả về bản chép lời hoàn chỉnh trong một yêu cầu. Kết quả mặc định là JSON chứa bản chép lời và thời lượng âm thanh, kèm mảng turns trong các chế độ endpointing và diarization. Mỗi lượt có thể chứa mã định danh, thời điểm bắt đầu và kết thúc tính bằng mili giây cùng văn bản được nhận dạng. Nhãn người nói xuất hiện trong chế độ diarization. Push-to-talk tạo bản chép lời hoàn chỉnh mà không có các lượt được phát hiện trong mảng đó. Giao diện xử lý tệp ghi âm của nhà sản xuất cũng có thể trả về văn bản thuần hoặc một luồng sự kiện chép lời. Văn bản thuần giữ các lượt được phát hiện trên những dòng riêng và có thể bao gồm nhãn người nói; luồng sự kiện kết thúc sau sự kiện cuối cùng mà không có bản tổng hợp JSON riêng. Chế độ delta partial của luồng trả về văn bản tăng dần, còn sự kiện bản chép lời cuối cùng chứa toàn bộ câu chữ.</p><p>Chuẩn bị tệp RIFF/WAVE chứa âm thanh PCM số nguyên 16 bit, đơn kênh, ở tần số lấy mẫu 16 hoặc 24 kHz. Tần số gốc của mô hình là 24 kHz và giao diện cũng chấp nhận 16 kHz. Hãy chuyển các định dạng chứa hoặc cách mã hóa khác sang dạng WAV được hỗ trợ này trước khi cung cấp bản ghi. Cấu hình chép lời từ tệp cho phép âm thanh dài tối đa 10 phút và tổng phần thân yêu cầu tối đa 32 MB. Lưu bản ghi gốc và mọi bản chuyển đổi cùng với bản chép lời trả về để có thể nghe lại và đối chiếu sau này.</p><p>Quy trình âm thanh trực tiếp sử dụng PCM thô có dấu 16 bit, little-endian, đơn kênh, với âm thanh 16 hoặc 24 kHz được gửi ở nhịp độ xấp xỉ thời gian thực. Khoảng thời gian phiên được tài liệu quy định là 60 phút. Meta mô tả khả năng tiếp nhận âm thanh gốc dài hơn một giờ; các giới hạn được tài liệu quy định cho tệp và phiên trực tiếp vẫn là những ranh giới riêng của từng giao diện. Chọn quy trình từ tệp ghi âm hoặc quy trình trực tiếp tùy theo âm thanh đã hoàn tất hay vẫn đang được thu, đồng thời gắn kết quả của các phiên riêng với đúng đoạn đầu vào của chúng.</p><p>Muse Voice Transcribe được huấn luyện trên hơn 70 ngôn ngữ, trong khi giao diện nhận dạng được tài liệu mô tả liệt kê 25 ngôn ngữ được hỗ trợ. Trong số đó có tiếng Anh, Pháp, Đức, Tây Ban Nha, Ả Rập, Trung Quốc phổ thông, Hindi, Nhật, Hàn, Ý và Bồ Đào Nha. Mô hình nhận dạng được việc chuyển đổi ngôn ngữ trong cùng một câu hoặc giữa các câu. Gợi ý ngôn ngữ có thể nêu các ngôn ngữ dự kiến xuất hiện trong âm thanh, nhưng chỉ định hướng việc nhận dạng chứ không buộc bản chép lời về một ngôn ngữ duy nhất.</p><p>Gợi ý từ vựng giúp nhận dạng các thuật ngữ sản phẩm, từ viết tắt, tên người hoặc địa danh quan trọng trong bản ghi. Cung cấp đúng những từ và cách viết mà bạn dự kiến sẽ nghe thấy. Danh sách từ khóa định hướng nhận dạng nhưng không bảo đảm cách viết chính xác, vì vậy hãy đối chiếu các thuật ngữ mang tính quyết định với âm thanh. Gợi ý ngôn ngữ và từ khóa được chọn khi bắt đầu chép lời; hãy giữ chúng phù hợp với bản ghi đó thay vì thay đổi ý nghĩa của chúng khi phiên đang chạy.</p><p>Mô hình hỗ trợ phân tách người nói cho các cuộc hội thoại có hơn 20 người nói. Những nhãn như A và B xác định người nói trong phạm vi một lần chép lời. Chúng không phải tên đã được xác minh và không chứng minh rằng cùng một nhãn ở phiên khác chỉ cùng một người. Với một nhiệm vụ phân tích cuộc họp ban đầu, hãy yêu cầu các lượt nói có gán người nói, giữ lại bản ghi và dùng nhãn để tổ chức nội dung thảo luận trước khi gán tên người tham gia thực thông qua quy trình của ứng dụng.</p><p>Bản chép lời tạm thời trong phiên trực tiếp có thể thay đổi khi có thêm lời nói. Ở chế độ cumulative, mỗi kết quả tạm thời thay thế giả thuyết trước đó thay vì cộng thêm một bản sao. Điểm kết thúc lời nói được phát hiện đánh dấu một ranh giới, còn kết quả lượt nói hoàn chỉnh cung cấp văn bản cuối cùng và có thể khác kết quả tạm thời gần nhất. Giữ các lượt chồng lấn gắn với mã định danh của từng lượt và tiếp nhận các kết quả hoàn chỉnh trước khi coi bản chép lời là đã xong. Khi đầu vào trực tiếp kết thúc, hãy báo kết thúc đầu vào và tiếp tục nhận cho đến khi bên tạo kết quả gửi hết những kết quả còn chờ. Đóng kết nối ngay có thể làm mất các kết quả đó; một ranh giới lời nói được phát hiện chỉ kết thúc một lượt, không kết thúc toàn bộ phiên.</p><p>Thông tin thời gian được cung cấp ở cấp lượt nói. Cấu hình này không cung cấp dấu thời gian cho từng từ hoặc điểm tin cậy; tiến độ xử lý âm thanh cũng không phải dấu thời gian của một từ cụ thể. Phát hiện sự kiện âm thanh, phát hiện cảm xúc và định dạng lại bản chép lời cũng nằm ngoài cấu hình đầu ra được tài liệu mô tả. Dùng các khoảng thời gian trả về của từng lượt để tạo dòng thời gian người nói hoặc rà soát theo đoạn, đồng thời giữ nguyên các từ được nhận dạng nếu một bước biên tập riêng về sau tạo ra ghi chú dễ đọc hơn.</p><p>Những kết quả hữu ích bao gồm đoạn đọc chính tả hoàn chỉnh, bản chép truy vấn bằng giọng nói, cuộc hội thoại có gán người nói hoặc dòng thời gian các phát ngôn. Đối chiếu tên, số và thuật ngữ kỹ thuật với bản ghi gốc, giữ mối liên hệ giữa chế độ và thông tin thời gian, đồng thời lưu đầy đủ các lượt để rà soát. Bản chép lời cho biết những gì được nhận dạng trong âm thanh; trả lời câu hỏi được nói, dịch câu hỏi đó hoặc chuyển nội dung thành biên bản họp là công việc của bước ứng dụng tiếp theo.</p>",
  "aboutText": "Muse Voice Transcribe 1.0 là mô hình cảm nhận âm thanh của Meta để chép lời nói, phát hiện ranh giới phát ngôn và xác định người nói cho từng lượt. Mô hình thuộc dòng Muse Spark và kết hợp nhận dạng giọng nói, phân tách người nói và phát hiện điểm kết thúc lượt nói ngay trong mô hình. Đầu ra là văn bản được nhận dạng, kèm thông tin thời gian và người nói có sẵn trong chế độ đã chọn.\n\nMô hình xử lý âm thanh theo từng khối 80 mili giây và quyết định tiếp tục lắng nghe hay xuất văn bản. Cơ chế độ trễ thích ứng cho phép mô hình chờ thêm âm thanh khi một từ khó xác định hơn. Nhờ đó, mô hình tạo văn bản tạm thời trong lúc lời nói tiếp tục đến, rồi trả về kết quả chép lời hoàn chỉnh. Hãy coi giả thuyết tạm thời và lượt nói hoàn chỉnh là hai giai đoạn khác nhau của trải nghiệm nghe.\n\nCó ba chế độ để lựa chọn. Push-to-talk là chế độ mặc định cho một phát ngôn đơn lẻ có điểm bắt đầu và kết thúc do người dùng kiểm soát, chẳng hạn truy vấn bằng giọng nói hoặc một đoạn đọc chính tả ngắn. Endpointing cho phép mô hình phát hiện ranh giới lượt nói và trả về một bản chép lời hoàn chỉnh cho mỗi đoạn được phát hiện. Diarization gán nhãn người nói cho lời nói được nhận dạng và dành cho bản ghi có nhiều người nói, thay vì tối ưu cho việc luân phiên các lệnh thoại với tốc độ cao nhất.\n\nVới một đoạn ghi âm, quy trình chép lời từ tệp trả về bản chép lời hoàn chỉnh trong một yêu cầu. Kết quả mặc định là JSON chứa bản chép lời và thời lượng âm thanh, kèm mảng turns trong các chế độ endpointing và diarization. Mỗi lượt có thể chứa mã định danh, thời điểm bắt đầu và kết thúc tính bằng mili giây cùng văn bản được nhận dạng. Nhãn người nói xuất hiện trong chế độ diarization. Push-to-talk tạo bản chép lời hoàn chỉnh mà không có các lượt được phát hiện trong mảng đó. Giao diện xử lý tệp ghi âm của nhà sản xuất cũng có thể trả về văn bản thuần hoặc một luồng sự kiện chép lời. Văn bản thuần giữ các lượt được phát hiện trên những dòng riêng và có thể bao gồm nhãn người nói; luồng sự kiện kết thúc sau sự kiện cuối cùng mà không có bản tổng hợp JSON riêng. Chế độ delta partial của luồng trả về văn bản tăng dần, còn sự kiện bản chép lời cuối cùng chứa toàn bộ câu chữ.\n\nChuẩn bị tệp RIFF/WAVE chứa âm thanh PCM số nguyên 16 bit, đơn kênh, ở tần số lấy mẫu 16 hoặc 24 kHz. Tần số gốc của mô hình là 24 kHz và giao diện cũng chấp nhận 16 kHz. Hãy chuyển các định dạng chứa hoặc cách mã hóa khác sang dạng WAV được hỗ trợ này trước khi cung cấp bản ghi. Cấu hình chép lời từ tệp cho phép âm thanh dài tối đa 10 phút và tổng phần thân yêu cầu tối đa 32 MB. Lưu bản ghi gốc và mọi bản chuyển đổi cùng với bản chép lời trả về để có thể nghe lại và đối chiếu sau này.\n\nQuy trình âm thanh trực tiếp sử dụng PCM thô có dấu 16 bit, little-endian, đơn kênh, với âm thanh 16 hoặc 24 kHz được gửi ở nhịp độ xấp xỉ thời gian thực. Khoảng thời gian phiên được tài liệu quy định là 60 phút. Meta mô tả khả năng tiếp nhận âm thanh gốc dài hơn một giờ; các giới hạn được tài liệu quy định cho tệp và phiên trực tiếp vẫn là những ranh giới riêng của từng giao diện. Chọn quy trình từ tệp ghi âm hoặc quy trình trực tiếp tùy theo âm thanh đã hoàn tất hay vẫn đang được thu, đồng thời gắn kết quả của các phiên riêng với đúng đoạn đầu vào của chúng.\n\nMuse Voice Transcribe được huấn luyện trên hơn 70 ngôn ngữ, trong khi giao diện nhận dạng được tài liệu mô tả liệt kê 25 ngôn ngữ được hỗ trợ. Trong số đó có tiếng Anh, Pháp, Đức, Tây Ban Nha, Ả Rập, Trung Quốc phổ thông, Hindi, Nhật, Hàn, Ý và Bồ Đào Nha. Mô hình nhận dạng được việc chuyển đổi ngôn ngữ trong cùng một câu hoặc giữa các câu. Gợi ý ngôn ngữ có thể nêu các ngôn ngữ dự kiến xuất hiện trong âm thanh, nhưng chỉ định hướng việc nhận dạng chứ không buộc bản chép lời về một ngôn ngữ duy nhất.\n\nGợi ý từ vựng giúp nhận dạng các thuật ngữ sản phẩm, từ viết tắt, tên người hoặc địa danh quan trọng trong bản ghi. Cung cấp đúng những từ và cách viết mà bạn dự kiến sẽ nghe thấy. Danh sách từ khóa định hướng nhận dạng nhưng không bảo đảm cách viết chính xác, vì vậy hãy đối chiếu các thuật ngữ mang tính quyết định với âm thanh. Gợi ý ngôn ngữ và từ khóa được chọn khi bắt đầu chép lời; hãy giữ chúng phù hợp với bản ghi đó thay vì thay đổi ý nghĩa của chúng khi phiên đang chạy.\n\nMô hình hỗ trợ phân tách người nói cho các cuộc hội thoại có hơn 20 người nói. Những nhãn như A và B xác định người nói trong phạm vi một lần chép lời. Chúng không phải tên đã được xác minh và không chứng minh rằng cùng một nhãn ở phiên khác chỉ cùng một người. Với một nhiệm vụ phân tích cuộc họp ban đầu, hãy yêu cầu các lượt nói có gán người nói, giữ lại bản ghi và dùng nhãn để tổ chức nội dung thảo luận trước khi gán tên người tham gia thực thông qua quy trình của ứng dụng.\n\nBản chép lời tạm thời trong phiên trực tiếp có thể thay đổi khi có thêm lời nói. Ở chế độ cumulative, mỗi kết quả tạm thời thay thế giả thuyết trước đó thay vì cộng thêm một bản sao. Điểm kết thúc lời nói được phát hiện đánh dấu một ranh giới, còn kết quả lượt nói hoàn chỉnh cung cấp văn bản cuối cùng và có thể khác kết quả tạm thời gần nhất. Giữ các lượt chồng lấn gắn với mã định danh của từng lượt và tiếp nhận các kết quả hoàn chỉnh trước khi coi bản chép lời là đã xong. Khi đầu vào trực tiếp kết thúc, hãy báo kết thúc đầu vào và tiếp tục nhận cho đến khi bên tạo kết quả gửi hết những kết quả còn chờ. Đóng kết nối ngay có thể làm mất các kết quả đó; một ranh giới lời nói được phát hiện chỉ kết thúc một lượt, không kết thúc toàn bộ phiên.\n\nThông tin thời gian được cung cấp ở cấp lượt nói. Cấu hình này không cung cấp dấu thời gian cho từng từ hoặc điểm tin cậy; tiến độ xử lý âm thanh cũng không phải dấu thời gian của một từ cụ thể. Phát hiện sự kiện âm thanh, phát hiện cảm xúc và định dạng lại bản chép lời cũng nằm ngoài cấu hình đầu ra được tài liệu mô tả. Dùng các khoảng thời gian trả về của từng lượt để tạo dòng thời gian người nói hoặc rà soát theo đoạn, đồng thời giữ nguyên các từ được nhận dạng nếu một bước biên tập riêng về sau tạo ra ghi chú dễ đọc hơn.\n\nNhững kết quả hữu ích bao gồm đoạn đọc chính tả hoàn chỉnh, bản chép truy vấn bằng giọng nói, cuộc hội thoại có gán người nói hoặc dòng thời gian các phát ngôn. Đối chiếu tên, số và thuật ngữ kỹ thuật với bản ghi gốc, giữ mối liên hệ giữa chế độ và thông tin thời gian, đồng thời lưu đầy đủ các lượt để rà soát. Bản chép lời cho biết những gì được nhận dạng trong âm thanh; trả lời câu hỏi được nói, dịch câu hỏi đó hoặc chuyển nội dung thành biên bản họp là công việc của bước ứng dụng tiếp theo.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "19baa6c896f1bee8eb7c8c60e2d838731fe8a4ce120c1dee0cf09285391bf13f",
    "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\">M</span><h2 id=\"sheet-title\">Meta: Muse Voice Transcribe 1.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Meta /</span><code>meta/muse-voice-transcribe-1.0</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|meta%2Fmuse-voice-transcribe-1.0\">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\">Muse Voice Transcribe 1.0 là mô hình chuyển giọng nói thành văn bản của Meta, dành cho đọc chính tả, phát hiện lượt nói và tạo bản chép lời có phân biệt người nói. Mô hình hỗ trợ gợi ý ngôn ngữ và từ vựng, chuyển đổi ngôn ngữ trong lời nói cùng thông tin thời gian ở cấp lượt nói, với các quy trình riêng cho đoạn ghi âm và âm thanh trực tiếp.</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>Muse Voice Transcribe 1.0 là mô hình cảm nhận âm thanh của Meta để chép lời nói, phát hiện ranh giới phát ngôn và xác định người nói cho từng lượt. Mô hình thuộc dòng Muse Spark và kết hợp nhận dạng giọng nói, phân tách người nói và phát hiện điểm kết thúc lượt nói ngay trong mô hình. Đầu ra là văn bản được nhận dạng, kèm thông tin thời gian và người nói có sẵn trong chế độ đã chọn.</p><p>Mô hình xử lý âm thanh theo từng khối 80 mili giây và quyết định tiếp tục lắng nghe hay xuất văn bản. Cơ chế độ trễ thích ứng cho phép mô hình chờ thêm âm thanh khi một từ khó xác định hơn. Nhờ đó, mô hình tạo văn bản tạm thời trong lúc lời nói tiếp tục đến, rồi trả về kết quả chép lời hoàn chỉnh. Hãy coi giả thuyết tạm thời và lượt nói hoàn chỉnh là hai giai đoạn khác nhau của trải nghiệm nghe.</p><p>Có ba chế độ để lựa chọn. Push-to-talk là chế độ mặc định cho một phát ngôn đơn lẻ có điểm bắt đầu và kết thúc do người dùng kiểm soát, chẳng hạn truy vấn bằng giọng nói hoặc một đoạn đọc chính tả ngắn. Endpointing cho phép mô hình phát hiện ranh giới lượt nói và trả về một bản chép lời hoàn chỉnh cho mỗi đoạn được phát hiện. Diarization gán nhãn người nói cho lời nói được nhận dạng và dành cho bản ghi có nhiều người nói, thay vì tối ưu cho việc luân phiên các lệnh thoại với tốc độ cao nhất.</p><p>Với một đoạn ghi âm, quy trình chép lời từ tệp trả về bản chép lời hoàn chỉnh trong một yêu cầu. Kết quả mặc định là JSON chứa bản chép lời và thời lượng âm thanh, kèm mảng turns trong các chế độ endpointing và diarization. Mỗi lượt có thể chứa mã định danh, thời điểm bắt đầu và kết thúc tính bằng mili giây cùng văn bản được nhận dạng. Nhãn người nói xuất hiện trong chế độ diarization. Push-to-talk tạo bản chép lời hoàn chỉnh mà không có các lượt được phát hiện trong mảng đó. Giao diện xử lý tệp ghi âm của nhà sản xuất cũng có thể trả về văn bản thuần hoặc một luồng sự kiện chép lời. Văn bản thuần giữ các lượt được phát hiện trên những dòng riêng và có thể bao gồm nhãn người nói; luồng sự kiện kết thúc sau sự kiện cuối cùng mà không có bản tổng hợp JSON riêng. Chế độ delta partial của luồng trả về văn bản tăng dần, còn sự kiện bản chép lời cuối cùng chứa toàn bộ câu chữ.</p><p>Chuẩn bị tệp RIFF/WAVE chứa âm thanh PCM số nguyên 16 bit, đơn kênh, ở tần số lấy mẫu 16 hoặc 24 kHz. Tần số gốc của mô hình là 24 kHz và giao diện cũng chấp nhận 16 kHz. Hãy chuyển các định dạng chứa hoặc cách mã hóa khác sang dạng WAV được hỗ trợ này trước khi cung cấp bản ghi. Cấu hình chép lời từ tệp cho phép âm thanh dài tối đa 10 phút và tổng phần thân yêu cầu tối đa 32 MB. Lưu bản ghi gốc và mọi bản chuyển đổi cùng với bản chép lời trả về để có thể nghe lại và đối chiếu sau này.</p><p>Quy trình âm thanh trực tiếp sử dụng PCM thô có dấu 16 bit, little-endian, đơn kênh, với âm thanh 16 hoặc 24 kHz được gửi ở nhịp độ xấp xỉ thời gian thực. Khoảng thời gian phiên được tài liệu quy định là 60 phút. Meta mô tả khả năng tiếp nhận âm thanh gốc dài hơn một giờ; các giới hạn được tài liệu quy định cho tệp và phiên trực tiếp vẫn là những ranh giới riêng của từng giao diện. Chọn quy trình từ tệp ghi âm hoặc quy trình trực tiếp tùy theo âm thanh đã hoàn tất hay vẫn đang được thu, đồng thời gắn kết quả của các phiên riêng với đúng đoạn đầu vào của chúng.</p><p>Muse Voice Transcribe được huấn luyện trên hơn 70 ngôn ngữ, trong khi giao diện nhận dạng được tài liệu mô tả liệt kê 25 ngôn ngữ được hỗ trợ. Trong số đó có tiếng Anh, Pháp, Đức, Tây Ban Nha, Ả Rập, Trung Quốc phổ thông, Hindi, Nhật, Hàn, Ý và Bồ Đào Nha. Mô hình nhận dạng được việc chuyển đổi ngôn ngữ trong cùng một câu hoặc giữa các câu. Gợi ý ngôn ngữ có thể nêu các ngôn ngữ dự kiến xuất hiện trong âm thanh, nhưng chỉ định hướng việc nhận dạng chứ không buộc bản chép lời về một ngôn ngữ duy nhất.</p><p>Gợi ý từ vựng giúp nhận dạng các thuật ngữ sản phẩm, từ viết tắt, tên người hoặc địa danh quan trọng trong bản ghi. Cung cấp đúng những từ và cách viết mà bạn dự kiến sẽ nghe thấy. Danh sách từ khóa định hướng nhận dạng nhưng không bảo đảm cách viết chính xác, vì vậy hãy đối chiếu các thuật ngữ mang tính quyết định với âm thanh. Gợi ý ngôn ngữ và từ khóa được chọn khi bắt đầu chép lời; hãy giữ chúng phù hợp với bản ghi đó thay vì thay đổi ý nghĩa của chúng khi phiên đang chạy.</p><p>Mô hình hỗ trợ phân tách người nói cho các cuộc hội thoại có hơn 20 người nói. Những nhãn như A và B xác định người nói trong phạm vi một lần chép lời. Chúng không phải tên đã được xác minh và không chứng minh rằng cùng một nhãn ở phiên khác chỉ cùng một người. Với một nhiệm vụ phân tích cuộc họp ban đầu, hãy yêu cầu các lượt nói có gán người nói, giữ lại bản ghi và dùng nhãn để tổ chức nội dung thảo luận trước khi gán tên người tham gia thực thông qua quy trình của ứng dụng.</p><p>Bản chép lời tạm thời trong phiên trực tiếp có thể thay đổi khi có thêm lời nói. Ở chế độ cumulative, mỗi kết quả tạm thời thay thế giả thuyết trước đó thay vì cộng thêm một bản sao. Điểm kết thúc lời nói được phát hiện đánh dấu một ranh giới, còn kết quả lượt nói hoàn chỉnh cung cấp văn bản cuối cùng và có thể khác kết quả tạm thời gần nhất. Giữ các lượt chồng lấn gắn với mã định danh của từng lượt và tiếp nhận các kết quả hoàn chỉnh trước khi coi bản chép lời là đã xong. Khi đầu vào trực tiếp kết thúc, hãy báo kết thúc đầu vào và tiếp tục nhận cho đến khi bên tạo kết quả gửi hết những kết quả còn chờ. Đóng kết nối ngay có thể làm mất các kết quả đó; một ranh giới lời nói được phát hiện chỉ kết thúc một lượt, không kết thúc toàn bộ phiên.</p><p>Thông tin thời gian được cung cấp ở cấp lượt nói. Cấu hình này không cung cấp dấu thời gian cho từng từ hoặc điểm tin cậy; tiến độ xử lý âm thanh cũng không phải dấu thời gian của một từ cụ thể. Phát hiện sự kiện âm thanh, phát hiện cảm xúc và định dạng lại bản chép lời cũng nằm ngoài cấu hình đầu ra được tài liệu mô tả. Dùng các khoảng thời gian trả về của từng lượt để tạo dòng thời gian người nói hoặc rà soát theo đoạn, đồng thời giữ nguyên các từ được nhận dạng nếu một bước biên tập riêng về sau tạo ra ghi chú dễ đọc hơn.</p><p>Những kết quả hữu ích bao gồm đoạn đọc chính tả hoàn chỉnh, bản chép truy vấn bằng giọng nói, cuộc hội thoại có gán người nói hoặc dòng thời gian các phát ngôn. Đối chiếu tên, số và thuật ngữ kỹ thuật với bản ghi gốc, giữ mối liên hệ giữa chế độ và thông tin thời gian, đồng thời lưu đầy đủ các lượt để rà soát. Bản chép lời cho biết những gì được nhận dạng trong âm thanh; trả lời câu hỏi được nói, dịch câu hỏi đó hoặc chuyển nội dung thành biên bản họp là công việc của bước ứng dụng tiếp theo.</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>meta/muse-voice-transcribe-1.0</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></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>Ví dụ đọc tệp PCM WAV thực tế, không rỗng của bạn, mã hóa toàn bộ byte của tệp thành base64 và gửi input_audio.format với giá trị wav.</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> · task_id chính xác từ bản ghi đa phương tiện hiện có thuộc quyền sở hữu</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 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í Ailoot</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>Đơ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=\"Đơ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</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu ra · Token đầu ra</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Đọc bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm</span> <b>—</b> <span class=\"price-unit\">/ 1K token</span></div><div><span>Đầu vào · Ghi bộ nhớ đệm, 1 giờ</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ây â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=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>mỗi giây âm thanh đầu vào</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Giây âm thanh đầu vào</span> <b>$0.0001</b> <span class=\"price-unit\">mỗi giây âm thanh đầu vào</span></div></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-1834-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1834-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · tệp WAV thực tế và kết quả gốc đầ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-1834-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1834-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 PCM WAV recording}&quot;\nexport AILOOT_AUDIO_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport base64, io, json, os, wave\nfrom pathlib import Path\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;):\n    raise SystemExit(&#39;Supply your actual PCM WAV audio file&#39;)\nwith wave.open(io.BytesIO(audio), &#39;rb&#39;) as recording:\n    if recording.getcomptype() != &#39;NONE&#39; or recording.getnframes() &lt;= 0:\n        raise SystemExit(&#39;Supply a nonempty PCM WAV recording&#39;)\nrequest = {&#39;model&#39;: &#39;meta/muse-voice-transcribe-1.0&#39;, &#39;input_audio&#39;: {&#39;data&#39;: base64.b64encode(audio).decode(&#39;ascii&#39;), &#39;format&#39;: &#39;wav&#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# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\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><p class=\"note-s\">Toàn bộ nội dung phản hồi gốc, trạng thái và các tiêu đề được chuyển tiếp. Trình xử lý này không bổ sung cấu trúc JSON chung, trường văn bản hoặc cấu trúc bao tác vụ.</p><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><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 thực tế và toàn bộ phản hồi. Đọc các tài sản gốc thuộc quyền sở hữu và URL nội dung đã ký chính xác của chúng; tuyệt đối không gửi lại yêu cầu tạo chưa rõ kết quả.</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 (when present)</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 (when present)</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><details class=\"card-about\" data-method-errors><summary>Lỗi và bước tiếp theo</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Phản hồi</th><th>Điều kiện</th><th>Bước tiếp theo</th></tr></thead><tbody><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Nội dung JSON hoặc ID mô hình chuẩn được chỉ định rõ không hợp lệ.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại phản hồi và sửa trường yêu cầu được chỉ ra.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>401 · <code>authentication_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Khóa API Ailoot không hợp lệ.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Dùng khóa API Ailoot được cấp phép của bạn.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>403 · <code>permission_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Nhóm của khóa không được phép sử dụng phương thức này.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại chi tiết lỗi được trả về.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>404 · <code>not_found_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Phương thức đã chọn chưa có tuyến được phép sử dụng.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại chi tiết lỗi được trả về.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>422 · <code>price_unavailable</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Biểu giá đã chấp nhận không thể xác định số lượng đầu vào hoặc giới hạn cần thiết.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại phản hồi; dùng biểu diễn đầu vào mà biểu giá đã chấp nhận yêu cầu.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>503 · <code></code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Kho lưu trữ, tuyến, giá phương thức hoặc khoản tiền giữ trước cần thiết không khả dụng.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại toàn bộ phản hồi ban đầu. Khoản giữ trước chưa rõ trạng thái không cho phép gửi lại.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span>502 · <code>server_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Kết quả, mức sử dụng hoặc quyết toán ban đầu cần được kiểm tra.</td><td data-cell-label=\"Bước tiếp theo\"><span class=\"card-cell-label\">Bước tiếp theo</span>Giữ lại ID yêu cầu thực tế và phản hồi ban đầu. Đọc bản ghi hiện có thuộc quyền sở hữu; không gửi lại yêu cầu tạo.</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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</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=meta%2Fmuse-voice-transcribe-1.0&amp;route=Ultra&amp;caller=meta%2Fmuse-voice-transcribe-1.0&amp;fmt=transcriptions\"><code>meta/muse-voice-transcribe-1.0</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "meta/muse-voice-transcribe-1.0",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|meta%2Fmuse-voice-transcribe-1.0",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "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.",
            "errors": [
              {
                "code": null,
                "condition": "Nội dung JSON hoặc ID mô hình chuẩn được chỉ định rõ không hợp lệ.",
                "http_status": 400,
                "recovery": "Giữ lại phản hồi và sửa trường yêu cầu được chỉ ra.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Khóa API Ailoot không hợp lệ.",
                "http_status": 401,
                "recovery": "Dùng khóa API Ailoot được cấp phép của bạn.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nhóm của khóa không được phép sử dụng phương thức này.",
                "http_status": 403,
                "recovery": "Giữ lại chi tiết lỗi được trả về.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Phương thức đã chọn chưa có tuyến được phép sử dụng.",
                "http_status": 404,
                "recovery": "Giữ lại chi tiết lỗi được trả về.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Biểu giá đã chấp nhận không thể xác định số lượng đầu vào hoặc giới hạn cần thiết.",
                "http_status": 422,
                "recovery": "Giữ lại phản hồi; dùng biểu diễn đầu vào mà biểu giá đã chấp nhận yêu cầu.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Kho lưu trữ, tuyến, giá phương thức hoặc khoản tiền giữ trước cần thiết không khả dụng.",
                "http_status": 503,
                "recovery": "Giữ lại toàn bộ phản hồi ban đầu. Khoản giữ trước chưa rõ trạng thái không cho phép gửi lại.",
                "type": null
              },
              {
                "code": null,
                "condition": "Kết quả, mức sử dụng hoặc quyết toán ban đầu cần được kiểm tra.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Giữ lại ID yêu cầu thực tế và phản hồi ban đầu. Đọc bản ghi hiện có thuộc quyền sở hữu; không gửi lại yêu cầu tạo.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID thực tế và toàn bộ phản hồi. Đọc các tài sản gốc thuộc quyền sở hữu và URL nội dung đã ký chính xác của chúng; tuyệt đối không gửi lại yêu cầu tạo chưa rõ kết quả."
            },
            "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 (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Toàn bộ nội dung phản hồi gốc, trạng thái và các tiêu đề được chuyển tiếp. Trình xử lý này không bổ sung cấu trúc JSON chung, trường văn bản hoặc cấu trúc bao tác vụ."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Ví dụ đọc tệp PCM WAV thực tế, không rỗng của bạn, mã hóa toàn bộ byte của tệp thành base64 và gửi input_audio.format với giá trị wav."
            ],
            "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id chính xác từ bản ghi đa phương tiện hiện có thuộc quyền sở hữu",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain 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 (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    }
  ],
  "model_id": "meta/muse-voice-transcribe-1.0",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "5a0411aa4a5f5d254e7be29e69dce92fc46106ef983efff38cb46fcd37b1a7b9",
    "input_html_sha256": "0e85fe13c18ca42b882b16acdf4d86064da066d5e285cec14f7e1ef5b3b53fba",
    "private_audit_sha256": "686f507d1d509e209c9fc53c62360eb7418dcb7eab53b7bd0c4548ccc55bf576",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/meta-muse-voice-transcribe-1-0/",
    "description": "Muse Voice Transcribe 1.0 là mô hình chuyển giọng nói thành văn bản của Meta, dành cho đọc chính tả, phát hiện lượt nói và tạo bản chép lời có phân biệt người nói. Mô hình hỗ trợ gợi ý ngôn ngữ và từ vựng, chuyển đổi ngôn ngữ trong lời nói cùng thông tin thời gian ở cấp lượt nói, với các quy trình riêng cho đoạn ghi âm và âm thanh trực tiếp.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/meta-muse-voice-transcribe-1-0/index.md",
    "title": "Meta: Muse Voice Transcribe 1.0 — Ailoot",
    "url": "https://ailoot.ai/models/vi/meta-muse-voice-transcribe-1-0/"
  },
  "rawModel": {
    "about": "Muse Voice Transcribe 1.0 là mô hình cảm nhận âm thanh của Meta để chép lời nói, phát hiện ranh giới phát ngôn và xác định người nói cho từng lượt. Mô hình thuộc dòng Muse Spark và kết hợp nhận dạng giọng nói, phân tách người nói và phát hiện điểm kết thúc lượt nói ngay trong mô hình. Đầu ra là văn bản được nhận dạng, kèm thông tin thời gian và người nói có sẵn trong chế độ đã chọn.\n\nMô hình xử lý âm thanh theo từng khối 80 mili giây và quyết định tiếp tục lắng nghe hay xuất văn bản. Cơ chế độ trễ thích ứng cho phép mô hình chờ thêm âm thanh khi một từ khó xác định hơn. Nhờ đó, mô hình tạo văn bản tạm thời trong lúc lời nói tiếp tục đến, rồi trả về kết quả chép lời hoàn chỉnh. Hãy coi giả thuyết tạm thời và lượt nói hoàn chỉnh là hai giai đoạn khác nhau của trải nghiệm nghe.\n\nCó ba chế độ để lựa chọn. Push-to-talk là chế độ mặc định cho một phát ngôn đơn lẻ có điểm bắt đầu và kết thúc do người dùng kiểm soát, chẳng hạn truy vấn bằng giọng nói hoặc một đoạn đọc chính tả ngắn. Endpointing cho phép mô hình phát hiện ranh giới lượt nói và trả về một bản chép lời hoàn chỉnh cho mỗi đoạn được phát hiện. Diarization gán nhãn người nói cho lời nói được nhận dạng và dành cho bản ghi có nhiều người nói, thay vì tối ưu cho việc luân phiên các lệnh thoại với tốc độ cao nhất.\n\nVới một đoạn ghi âm, quy trình chép lời từ tệp trả về bản chép lời hoàn chỉnh trong một yêu cầu. Kết quả mặc định là JSON chứa bản chép lời và thời lượng âm thanh, kèm mảng turns trong các chế độ endpointing và diarization. Mỗi lượt có thể chứa mã định danh, thời điểm bắt đầu và kết thúc tính bằng mili giây cùng văn bản được nhận dạng. Nhãn người nói xuất hiện trong chế độ diarization. Push-to-talk tạo bản chép lời hoàn chỉnh mà không có các lượt được phát hiện trong mảng đó. Giao diện xử lý tệp ghi âm của nhà sản xuất cũng có thể trả về văn bản thuần hoặc một luồng sự kiện chép lời. Văn bản thuần giữ các lượt được phát hiện trên những dòng riêng và có thể bao gồm nhãn người nói; luồng sự kiện kết thúc sau sự kiện cuối cùng mà không có bản tổng hợp JSON riêng. Chế độ delta partial của luồng trả về văn bản tăng dần, còn sự kiện bản chép lời cuối cùng chứa toàn bộ câu chữ.\n\nChuẩn bị tệp RIFF/WAVE chứa âm thanh PCM số nguyên 16 bit, đơn kênh, ở tần số lấy mẫu 16 hoặc 24 kHz. Tần số gốc của mô hình là 24 kHz và giao diện cũng chấp nhận 16 kHz. Hãy chuyển các định dạng chứa hoặc cách mã hóa khác sang dạng WAV được hỗ trợ này trước khi cung cấp bản ghi. Cấu hình chép lời từ tệp cho phép âm thanh dài tối đa 10 phút và tổng phần thân yêu cầu tối đa 32 MB. Lưu bản ghi gốc và mọi bản chuyển đổi cùng với bản chép lời trả về để có thể nghe lại và đối chiếu sau này.\n\nQuy trình âm thanh trực tiếp sử dụng PCM thô có dấu 16 bit, little-endian, đơn kênh, với âm thanh 16 hoặc 24 kHz được gửi ở nhịp độ xấp xỉ thời gian thực. Khoảng thời gian phiên được tài liệu quy định là 60 phút. Meta mô tả khả năng tiếp nhận âm thanh gốc dài hơn một giờ; các giới hạn được tài liệu quy định cho tệp và phiên trực tiếp vẫn là những ranh giới riêng của từng giao diện. Chọn quy trình từ tệp ghi âm hoặc quy trình trực tiếp tùy theo âm thanh đã hoàn tất hay vẫn đang được thu, đồng thời gắn kết quả của các phiên riêng với đúng đoạn đầu vào của chúng.\n\nMuse Voice Transcribe được huấn luyện trên hơn 70 ngôn ngữ, trong khi giao diện nhận dạng được tài liệu mô tả liệt kê 25 ngôn ngữ được hỗ trợ. Trong số đó có tiếng Anh, Pháp, Đức, Tây Ban Nha, Ả Rập, Trung Quốc phổ thông, Hindi, Nhật, Hàn, Ý và Bồ Đào Nha. Mô hình nhận dạng được việc chuyển đổi ngôn ngữ trong cùng một câu hoặc giữa các câu. Gợi ý ngôn ngữ có thể nêu các ngôn ngữ dự kiến xuất hiện trong âm thanh, nhưng chỉ định hướng việc nhận dạng chứ không buộc bản chép lời về một ngôn ngữ duy nhất.\n\nGợi ý từ vựng giúp nhận dạng các thuật ngữ sản phẩm, từ viết tắt, tên người hoặc địa danh quan trọng trong bản ghi. Cung cấp đúng những từ và cách viết mà bạn dự kiến sẽ nghe thấy. Danh sách từ khóa định hướng nhận dạng nhưng không bảo đảm cách viết chính xác, vì vậy hãy đối chiếu các thuật ngữ mang tính quyết định với âm thanh. Gợi ý ngôn ngữ và từ khóa được chọn khi bắt đầu chép lời; hãy giữ chúng phù hợp với bản ghi đó thay vì thay đổi ý nghĩa của chúng khi phiên đang chạy.\n\nMô hình hỗ trợ phân tách người nói cho các cuộc hội thoại có hơn 20 người nói. Những nhãn như A và B xác định người nói trong phạm vi một lần chép lời. Chúng không phải tên đã được xác minh và không chứng minh rằng cùng một nhãn ở phiên khác chỉ cùng một người. Với một nhiệm vụ phân tích cuộc họp ban đầu, hãy yêu cầu các lượt nói có gán người nói, giữ lại bản ghi và dùng nhãn để tổ chức nội dung thảo luận trước khi gán tên người tham gia thực thông qua quy trình của ứng dụng.\n\nBản chép lời tạm thời trong phiên trực tiếp có thể thay đổi khi có thêm lời nói. Ở chế độ cumulative, mỗi kết quả tạm thời thay thế giả thuyết trước đó thay vì cộng thêm một bản sao. Điểm kết thúc lời nói được phát hiện đánh dấu một ranh giới, còn kết quả lượt nói hoàn chỉnh cung cấp văn bản cuối cùng và có thể khác kết quả tạm thời gần nhất. Giữ các lượt chồng lấn gắn với mã định danh của từng lượt và tiếp nhận các kết quả hoàn chỉnh trước khi coi bản chép lời là đã xong. Khi đầu vào trực tiếp kết thúc, hãy báo kết thúc đầu vào và tiếp tục nhận cho đến khi bên tạo kết quả gửi hết những kết quả còn chờ. Đóng kết nối ngay có thể làm mất các kết quả đó; một ranh giới lời nói được phát hiện chỉ kết thúc một lượt, không kết thúc toàn bộ phiên.\n\nThông tin thời gian được cung cấp ở cấp lượt nói. Cấu hình này không cung cấp dấu thời gian cho từng từ hoặc điểm tin cậy; tiến độ xử lý âm thanh cũng không phải dấu thời gian của một từ cụ thể. Phát hiện sự kiện âm thanh, phát hiện cảm xúc và định dạng lại bản chép lời cũng nằm ngoài cấu hình đầu ra được tài liệu mô tả. Dùng các khoảng thời gian trả về của từng lượt để tạo dòng thời gian người nói hoặc rà soát theo đoạn, đồng thời giữ nguyên các từ được nhận dạng nếu một bước biên tập riêng về sau tạo ra ghi chú dễ đọc hơn.\n\nNhững kết quả hữu ích bao gồm đoạn đọc chính tả hoàn chỉnh, bản chép truy vấn bằng giọng nói, cuộc hội thoại có gán người nói hoặc dòng thời gian các phát ngôn. Đối chiếu tên, số và thuật ngữ kỹ thuật với bản ghi gốc, giữ mối liên hệ giữa chế độ và thông tin thời gian, đồng thời lưu đầy đủ các lượt để rà soát. Bản chép lời cho biết những gì được nhận dạng trong âm thanh; trả lời câu hỏi được nói, dịch câu hỏi đó hoặc chuyển nội dung thành biên bản họp là công việc của bước ứng dụng tiếp theo.",
    "alias_of": null,
    "aliases": [],
    "author": "Meta",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ],
        "summary": "Giá theo cấu hình được trình bày đầy đủ trong phần chi tiết."
      }
    ],
    "ctx": null,
    "formats": [
      "transcriptions"
    ],
    "id": "meta/muse-voice-transcribe-1.0",
    "input": [
      "audio"
    ],
    "kind": "audio",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "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.",
            "errors": [
              {
                "code": null,
                "condition": "Nội dung JSON hoặc ID mô hình chuẩn được chỉ định rõ không hợp lệ.",
                "http_status": 400,
                "recovery": "Giữ lại phản hồi và sửa trường yêu cầu được chỉ ra.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Khóa API Ailoot không hợp lệ.",
                "http_status": 401,
                "recovery": "Dùng khóa API Ailoot được cấp phép của bạn.",
                "type": "authentication_error"
              },
              {
                "code": null,
                "condition": "Nhóm của khóa không được phép sử dụng phương thức này.",
                "http_status": 403,
                "recovery": "Giữ lại chi tiết lỗi được trả về.",
                "type": "permission_error"
              },
              {
                "code": null,
                "condition": "Phương thức đã chọn chưa có tuyến được phép sử dụng.",
                "http_status": 404,
                "recovery": "Giữ lại chi tiết lỗi được trả về.",
                "type": "not_found_error"
              },
              {
                "code": null,
                "condition": "Biểu giá đã chấp nhận không thể xác định số lượng đầu vào hoặc giới hạn cần thiết.",
                "http_status": 422,
                "recovery": "Giữ lại phản hồi; dùng biểu diễn đầu vào mà biểu giá đã chấp nhận yêu cầu.",
                "type": "price_unavailable"
              },
              {
                "code": null,
                "condition": "Kho lưu trữ, tuyến, giá phương thức hoặc khoản tiền giữ trước cần thiết không khả dụng.",
                "http_status": 503,
                "recovery": "Giữ lại toàn bộ phản hồi ban đầu. Khoản giữ trước chưa rõ trạng thái không cho phép gửi lại.",
                "type": null
              },
              {
                "code": null,
                "condition": "Kết quả, mức sử dụng hoặc quyết toán ban đầu cần được kiểm tra.",
                "http_status": 502,
                "operation_id_source": "actual X-Client-Request-ID",
                "recovery": "Giữ lại ID yêu cầu thực tế và phản hồi ban đầu. Đọc bản ghi hiện có thuộc quyền sở hữu; không gửi lại yêu cầu tạo.",
                "response_headers": {
                  "x-should-retry": "false"
                },
                "type": "server_error"
              }
            ],
            "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 content URL"
                }
              ],
              "dedicated_method_polling_or_cancel": false,
              "mode": "synchronous_result_then_owned_library",
              "original_POST_adds_task_envelope": false,
              "status": [
                {
                  "http": "GET",
                  "id_source": "exact task_id from an existing owned media record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại X-Client-Request-ID thực tế và toàn bộ phản hồi. Đọc các tài sản gốc thuộc quyền sở hữu và URL nội dung đã ký chính xác của chúng; tuyệt đối không gửi lại yêu cầu tạo chưa rõ kết quả."
            },
            "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 (when present)",
                  "type": null
                },
                {
                  "description": null,
                  "name": "usage (when present)",
                  "type": null
                }
              ],
              "result": "Toàn bộ nội dung phản hồi gốc, trạng thái và các tiêu đề được chuyển tiếp. Trình xử lý này không bổ sung cấu trúc JSON chung, trường văn bản hoặc cấu trúc bao tác vụ."
            },
            "parameters": [
              {
                "default_known": false,
                "enum": [
                  "meta/muse-voice-transcribe-1.0"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "default_known": false,
                "enum_known": false,
                "name": "input_audio",
                "required": true,
                "type": "object"
              }
            ],
            "request_schema": {
              "properties": {
                "input_audio": {
                  "properties": {
                    "data": {
                      "contentEncoding": "base64",
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "data",
                    "format"
                  ],
                  "type": "object"
                },
                "model": {
                  "enum": [
                    "meta/muse-voice-transcribe-1.0"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "model",
                "input_audio"
              ],
              "type": "object"
            },
            "schema_template": {
              "actual_file_preparation_required": true,
              "body": {
                "input_audio": {
                  "data": "${BASE64_ACTUAL_WAV_BYTES}",
                  "format": "wav"
                },
                "model": "meta/muse-voice-transcribe-1.0"
              },
              "content_type": "application/json"
            }
          },
          "input": {
            "content_type": "application/json",
            "material_conditions": [
              "Ví dụ đọc tệp PCM WAV thực tế, không rỗng của bạn, mã hóa toàn bộ byte của tệp thành base64 và gửi input_audio.format với giá trị wav."
            ],
            "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 content URL"
              }
            ],
            "dedicated_method_polling_or_cancel": false,
            "mode": "synchronous_result_then_owned_library",
            "original_POST_adds_task_envelope": false,
            "status": [
              {
                "http": "GET",
                "id_source": "task_id chính xác từ bản ghi đa phương tiện hiện có thuộc quyền sở hữu",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain the actual X-Client-Request-ID and complete response. Read the original owned assets and their exact signed content URLs; never resubmit an uncertain 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 (when present)",
                "type": null
              },
              {
                "description": null,
                "name": "usage (when present)",
                "type": null
              }
            ],
            "result": "Complete original response body, status and forwarded headers. No universal JSON shape, text field or task envelope is added by this handler."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_AUDIO_FILE:?Set the path to your actual PCM WAV recording}\"\nexport AILOOT_AUDIO_FILE\npython3 - <<'PY_REQUEST'\nimport base64, io, json, os, wave\nfrom pathlib import Path\naudio = Path(os.environ['AILOOT_AUDIO_FILE']).read_bytes()\nif not (audio[:4] == b'RIFF' and audio[8:12] == b'WAVE'):\n    raise SystemExit('Supply your actual PCM WAV audio file')\nwith wave.open(io.BytesIO(audio), 'rb') as recording:\n    if recording.getcomptype() != 'NONE' or recording.getnframes() <= 0:\n        raise SystemExit('Supply a nonempty PCM WAV recording')\nrequest = {'model': 'meta/muse-voice-transcribe-1.0', 'input_audio': {'data': base64.b64encode(audio).decode('ascii'), 'format': 'wav'}}\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# Retain the complete original response, headers and actual X-Client-Request-ID.\n# Read existing owned records for recovery; do not resubmit an uncertain operation.\n",
            "label": "curl · actual WAV file and complete original result",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "transcriptions",
        "hints": [
          "The example reads your actual nonempty PCM WAV file, encodes the complete file bytes as base64 and sends input_audio.format as wav.",
          "The format value in the example is the documented recipe; no model-specific format list, limit or default is asserted.",
          "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": "per_request",
          "image_input_price": null,
          "image_output_price": null,
          "per_request_price": null,
          "unit_prices": {
            "audio_input_second": 0.0001
          }
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": true,
                "estimate_only": false,
                "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": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per input audio second"
            },
            "label": "input audio second",
            "units": [
              {
                "amount": "0.0001",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_second",
                "label": "input audio second",
                "native_amount_usd_per_unit": "0.0001",
                "native_quantity": 1,
                "public_unit_label": "per input audio second",
                "quantity": 1,
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "audio_input_second"
              }
            ]
          }
        ],
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": true,
            "estimate_only": false,
            "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": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0001",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_second",
            "label": "input audio second",
            "native_amount_usd_per_unit": "0.0001",
            "native_quantity": 1,
            "public_unit_label": "per input audio second",
            "quantity": 1,
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "audio_input_second"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "meta/muse-voice-transcribe-1.0",
        "request_model_id": "meta/muse-voice-transcribe-1.0",
        "route_label": "Ultra"
      }
    ],
    "name": "Meta: Muse Voice Transcribe 1.0",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Muse Voice Transcribe 1.0 là mô hình chuyển giọng nói thành văn bản của Meta, dành cho đọc chính tả, phát hiện lượt nói và tạo bản chép lời có phân biệt người nói. Mô hình hỗ trợ gợi ý ngôn ngữ và từ vựng, chuyển đổi ngôn ngữ trong lời nói cùng thông tin thời gian ở cấp lượt nói, với các quy trình riêng cho đoạn ghi âm và âm thanh trực tiếp."
  },
  "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": "Muse Voice Transcribe 1.0 là mô hình chuyển giọng nói thành văn bản của Meta, dành cho đọc chính tả, phát hiện lượt nói và tạo bản chép lời có phân biệt người nói. Mô hình hỗ trợ gợi ý ngôn ngữ và từ vựng, chuyển đổi ngôn ngữ trong lời nói cùng thông tin thời gian ở cấp lượt nói, với các quy trình riêng cho đoạn ghi âm và âm thanh trực tiếp.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "e130a2d64f5df0483171a2b8e3aebcdedcdb78977101f49f09d66393662f60ab",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "21126b046d7efca3e30e2f1e8f15a81250d44cb04d0478895c91906e3aa7e704"
}
