{
  "aboutHtml": "<p>ElevenLabs Scribe v2 là mô hình nhận dạng giọng nói theo lô dành cho âm thanh đã ghi, chép lời và tạo phụ đề. Mô hình phát triển từ Scribe v1 với khả năng xử lý tốt hơn bản ghi dài, khoảng dừng, thay đổi giọng điệu và khoảng im lặng kéo dài. Kết quả là lời nói được viết lại kèm thông tin thời gian và chú thích người nói, sự kiện âm thanh tùy chọn. Scribe v2 Realtime là phiên bản chép lời trực tiếp riêng; mục đích của mô hình này là xử lý bản ghi hoàn chỉnh.</p><p>Nhà sản xuất mô tả nhận dạng hơn 90 ngôn ngữ và tự động phát hiện ngôn ngữ, gồm bản ghi có chuyển đổi ngôn ngữ. Gợi ý ngôn ngữ đã biết có thể giúp mô hình diễn giải âm thanh. Chuẩn bị bản ghi rõ, giữ ngôn ngữ và tên gốc, tránh méo âm nghiêm trọng do vượt ngưỡng hoặc xử lý không cần thiết làm mất chi tiết lời nói. Các đầu vào phổ biến được tài liệu nêu gồm WAV, MP3, FLAC, M4A, AAC, OGG, Opus và WebM. Chọn cách biểu diễn đầu vào mà hệ thống chép lời hỗ trợ và giữ bản ghi nguồn để rà soát.</p><p>Phản hồi tiêu chuẩn gồm văn bản nhận dạng, thông tin ngôn ngữ phát hiện được và chuỗi từ có thời gian. Bản ghi từng từ có thể gồm thời điểm bắt đầu và kết thúc, định danh người nói và logarit xác suất nhận dạng. Nhờ đó kết quả hữu ích cho phụ đề, phỏng vấn có thể tìm kiếm hoặc trình biên tập chuyển lại đúng đoạn âm thanh liên quan. Giữ kết quả có thời gian cùng âm thanh nguồn. Ví dụ với podcast, sản phẩm bàn giao có thể là bản chép lời có thể chỉnh sửa và bản ghi căn chỉnh theo từ giúp tìm vị trí cần sửa trước khi sắp xếp phụ đề.</p><p>Phân tách người nói gắn nhãn ai nói vào lúc nào trong âm thanh nhiều người, với tối đa 32 người nói được nhà sản xuất ghi nhận. Bật khi lượt người nói có ý nghĩa và cung cấp số người nói hợp lý nếu biết. Phân biệt nhãn người nói được phát hiện với tên người đã xác minh. Với phỏng vấn hoặc cuộc họp, rà soát chuyển lượt với bản ghi, đặc biệt khi giọng chồng lấn hoặc tương tự nhau. Nhãn giúp sắp xếp bản chép lời; nó không tự xác lập danh tính người nói.</p><p>Bản ghi có một người nói trên mỗi kênh có cấu trúc khác với nhiều giọng trộn vào một kênh. Giao diện của nhà sản xuất có thể xử lý độc lập tối đa năm kênh và trả về các bản chép lời riêng hoặc bản kết hợp sắp theo thời gian, kèm chỉ số kênh. Giữ bố trí kênh khi có ý nghĩa. Gộp bản ghi cuộc gọi đã tách kênh trước khi chép lời có thể làm mất nguồn thông tin người nói hữu ích. Phân biệt quy thuộc theo kênh với phân tách người nói suy ra từ âm thanh trộn. Phản hồi kết hợp nhiều kênh cần dấu thời gian và không thể bao gồm phát hiện hoặc ẩn thực thể.</p><p>Gợi ý từ khóa hướng dẫn nhận dạng tên, thuật ngữ sản phẩm và từ vựng chuyên ngành theo ngữ cảnh. Tài liệu xử lý lô hiện tại cho phép tối đa 1.000 thuật ngữ, mỗi thuật ngữ dưới 50 ký tự và tối đa năm từ. Cung cấp cách viết liên quan thay vì danh mục rộng nhưng không liên quan. Với phỏng vấn kỹ thuật, cung cấp tên sản phẩm và chữ viết tắt có khả năng xuất hiện, rồi kiểm tra chúng tại mốc thời gian trong kết quả. Từ khóa định hướng nhận dạng; chúng không phải chỉ dẫn chèn thuật ngữ khi bản ghi không hỗ trợ điều đó.</p><p>Chọn mục đích bản chép lời trước khi biên tập. Bản nguyên văn giữ câu chữ được nói, còn tùy chọn no-verbatim trong tài liệu loại bỏ từ đệm, đoạn khởi đầu bỏ dở và chỗ nói vấp để kết quả dễ đọc hơn. Gắn thẻ âm thanh động có thể xác định sự kiện không phải lời nói như tiếng cười hoặc bước chân. Bản chép lời đã trau chuốt có thể hữu ích cho phụ đề hoặc việc đọc, nhưng không nên âm thầm thay bản ghi thô khi sự lặp lại, sửa lời hoặc âm thanh ngoài lời nói có ý nghĩa với nhiệm vụ.</p><p>Nhà sản xuất cũng mô tả phát hiện thực thể và chỉnh sửa bản chép lời thử nghiệm. Trong giao diện của nhà sản xuất, chỉnh sửa bản chép lời không thể kết hợp với phát hiện thực thể, ẩn thực thể hoặc chép lời đa kênh. Thực thể được phát hiện cung cấp vị trí có cấu trúc của một số thông tin trong bản chép lời. Ẩn thực thể tùy chọn che văn bản phát hiện được bằng nhãn thay thế; tính năng này phụ thuộc vào phát hiện thực thể, và danh sách thực thể không được trả về khi bật ẩn. Việc ẩn diễn ra trong lúc chép lời, dùng dấu thay thế chung, nhãn danh mục hoặc nhãn danh mục có số. Ẩn tự động có thể bỏ sót nội dung nhạy cảm, vì vậy hãy kiểm tra bản chép lời đã ẩn trước khi chia sẻ. Chỉnh sửa bằng ngôn ngữ tự nhiên trả về văn bản đã sửa bên cạnh kết quả gốc, giữ sẵn bản ghi thời gian và người nói ban đầu. Phân biệt các sản phẩm này: cách viết đã sửa hoặc câu đã đổi định dạng có thể cần kiểm tra lại trước khi căn chỉnh với âm thanh hoặc dùng trong bước trích xuất phía sau. Những tính năng này xử lý bản chép lời; chúng không xác lập rằng mọi chi tiết quan trọng đều được nhận dạng chính xác.</p><p>Để hoàn thiện bản chép lời, rà soát tên, số, phủ định và chuyển người nói bằng cách quay lại âm thanh tương ứng. Chú ý đoạn nhỏ tiếng, chồng lấn và chuyển ngôn ngữ thay vì chỉ đánh giá chất lượng qua văn bản trôi chảy. Giữ câu chữ chưa chắc chắn để sửa thay vì hoàn thành đoạn không nghe được bằng một câu có vẻ hợp lý. Kết quả hữu ích là bản ghi văn bản đã kiểm tra với thông tin thời gian và người nói cần cho mục đích sử dụng; sau đó bản chép lời có thể trở thành đầu vào cho bước tóm tắt, dịch hoặc phân tích riêng.</p>",
  "aboutText": "ElevenLabs Scribe v2 là mô hình nhận dạng giọng nói theo lô dành cho âm thanh đã ghi, chép lời và tạo phụ đề. Mô hình phát triển từ Scribe v1 với khả năng xử lý tốt hơn bản ghi dài, khoảng dừng, thay đổi giọng điệu và khoảng im lặng kéo dài. Kết quả là lời nói được viết lại kèm thông tin thời gian và chú thích người nói, sự kiện âm thanh tùy chọn. Scribe v2 Realtime là phiên bản chép lời trực tiếp riêng; mục đích của mô hình này là xử lý bản ghi hoàn chỉnh.\n\nNhà sản xuất mô tả nhận dạng hơn 90 ngôn ngữ và tự động phát hiện ngôn ngữ, gồm bản ghi có chuyển đổi ngôn ngữ. Gợi ý ngôn ngữ đã biết có thể giúp mô hình diễn giải âm thanh. Chuẩn bị bản ghi rõ, giữ ngôn ngữ và tên gốc, tránh méo âm nghiêm trọng do vượt ngưỡng hoặc xử lý không cần thiết làm mất chi tiết lời nói. Các đầu vào phổ biến được tài liệu nêu gồm WAV, MP3, FLAC, M4A, AAC, OGG, Opus và WebM. Chọn cách biểu diễn đầu vào mà hệ thống chép lời hỗ trợ và giữ bản ghi nguồn để rà soát.\n\nPhản hồi tiêu chuẩn gồm văn bản nhận dạng, thông tin ngôn ngữ phát hiện được và chuỗi từ có thời gian. Bản ghi từng từ có thể gồm thời điểm bắt đầu và kết thúc, định danh người nói và logarit xác suất nhận dạng. Nhờ đó kết quả hữu ích cho phụ đề, phỏng vấn có thể tìm kiếm hoặc trình biên tập chuyển lại đúng đoạn âm thanh liên quan. Giữ kết quả có thời gian cùng âm thanh nguồn. Ví dụ với podcast, sản phẩm bàn giao có thể là bản chép lời có thể chỉnh sửa và bản ghi căn chỉnh theo từ giúp tìm vị trí cần sửa trước khi sắp xếp phụ đề.\n\nPhân tách người nói gắn nhãn ai nói vào lúc nào trong âm thanh nhiều người, với tối đa 32 người nói được nhà sản xuất ghi nhận. Bật khi lượt người nói có ý nghĩa và cung cấp số người nói hợp lý nếu biết. Phân biệt nhãn người nói được phát hiện với tên người đã xác minh. Với phỏng vấn hoặc cuộc họp, rà soát chuyển lượt với bản ghi, đặc biệt khi giọng chồng lấn hoặc tương tự nhau. Nhãn giúp sắp xếp bản chép lời; nó không tự xác lập danh tính người nói.\n\nBản ghi có một người nói trên mỗi kênh có cấu trúc khác với nhiều giọng trộn vào một kênh. Giao diện của nhà sản xuất có thể xử lý độc lập tối đa năm kênh và trả về các bản chép lời riêng hoặc bản kết hợp sắp theo thời gian, kèm chỉ số kênh. Giữ bố trí kênh khi có ý nghĩa. Gộp bản ghi cuộc gọi đã tách kênh trước khi chép lời có thể làm mất nguồn thông tin người nói hữu ích. Phân biệt quy thuộc theo kênh với phân tách người nói suy ra từ âm thanh trộn. Phản hồi kết hợp nhiều kênh cần dấu thời gian và không thể bao gồm phát hiện hoặc ẩn thực thể.\n\nGợi ý từ khóa hướng dẫn nhận dạng tên, thuật ngữ sản phẩm và từ vựng chuyên ngành theo ngữ cảnh. Tài liệu xử lý lô hiện tại cho phép tối đa 1.000 thuật ngữ, mỗi thuật ngữ dưới 50 ký tự và tối đa năm từ. Cung cấp cách viết liên quan thay vì danh mục rộng nhưng không liên quan. Với phỏng vấn kỹ thuật, cung cấp tên sản phẩm và chữ viết tắt có khả năng xuất hiện, rồi kiểm tra chúng tại mốc thời gian trong kết quả. Từ khóa định hướng nhận dạng; chúng không phải chỉ dẫn chèn thuật ngữ khi bản ghi không hỗ trợ điều đó.\n\nChọn mục đích bản chép lời trước khi biên tập. Bản nguyên văn giữ câu chữ được nói, còn tùy chọn no-verbatim trong tài liệu loại bỏ từ đệm, đoạn khởi đầu bỏ dở và chỗ nói vấp để kết quả dễ đọc hơn. Gắn thẻ âm thanh động có thể xác định sự kiện không phải lời nói như tiếng cười hoặc bước chân. Bản chép lời đã trau chuốt có thể hữu ích cho phụ đề hoặc việc đọc, nhưng không nên âm thầm thay bản ghi thô khi sự lặp lại, sửa lời hoặc âm thanh ngoài lời nói có ý nghĩa với nhiệm vụ.\n\nNhà sản xuất cũng mô tả phát hiện thực thể và chỉnh sửa bản chép lời thử nghiệm. Trong giao diện của nhà sản xuất, chỉnh sửa bản chép lời không thể kết hợp với phát hiện thực thể, ẩn thực thể hoặc chép lời đa kênh. Thực thể được phát hiện cung cấp vị trí có cấu trúc của một số thông tin trong bản chép lời. Ẩn thực thể tùy chọn che văn bản phát hiện được bằng nhãn thay thế; tính năng này phụ thuộc vào phát hiện thực thể, và danh sách thực thể không được trả về khi bật ẩn. Việc ẩn diễn ra trong lúc chép lời, dùng dấu thay thế chung, nhãn danh mục hoặc nhãn danh mục có số. Ẩn tự động có thể bỏ sót nội dung nhạy cảm, vì vậy hãy kiểm tra bản chép lời đã ẩn trước khi chia sẻ. Chỉnh sửa bằng ngôn ngữ tự nhiên trả về văn bản đã sửa bên cạnh kết quả gốc, giữ sẵn bản ghi thời gian và người nói ban đầu. Phân biệt các sản phẩm này: cách viết đã sửa hoặc câu đã đổi định dạng có thể cần kiểm tra lại trước khi căn chỉnh với âm thanh hoặc dùng trong bước trích xuất phía sau. Những tính năng này xử lý bản chép lời; chúng không xác lập rằng mọi chi tiết quan trọng đều được nhận dạng chính xác.\n\nĐể hoàn thiện bản chép lời, rà soát tên, số, phủ định và chuyển người nói bằng cách quay lại âm thanh tương ứng. Chú ý đoạn nhỏ tiếng, chồng lấn và chuyển ngôn ngữ thay vì chỉ đánh giá chất lượng qua văn bản trôi chảy. Giữ câu chữ chưa chắc chắn để sửa thay vì hoàn thành đoạn không nghe được bằng một câu có vẻ hợp lý. Kết quả hữu ích là bản ghi văn bản đã kiểm tra với thông tin thời gian và người nói cần cho mục đích sử dụng; sau đó bản chép lời có thể trở thành đầu vào cho bước tóm tắt, dịch hoặc phân tích riêng.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "7f5738f4b1f16525df4d913058e6e1f89ba118fca4b015a1952e5a59dd829892",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "vi",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ElevenLabs: Scribe v2</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>ElevenLabs /</span><code>elevenlabs/scribe-v2</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|elevenlabs%2Fscribe-v2\">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\">ElevenLabs Scribe v2 chép lời âm thanh đã ghi bằng hơn 90 ngôn ngữ, có thời gian từng từ, phân tách người nói tùy chọn và thẻ sự kiện không phải lời nói. Mô hình được xây dựng cho bản ghi dài, phụ đề và bản chép lời có thể chỉnh sửa, với từ khóa theo ngữ cảnh cùng lựa chọn chép nguyên văn hoặc biên tập gọn.</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>ElevenLabs Scribe v2 là mô hình nhận dạng giọng nói theo lô dành cho âm thanh đã ghi, chép lời và tạo phụ đề. Mô hình phát triển từ Scribe v1 với khả năng xử lý tốt hơn bản ghi dài, khoảng dừng, thay đổi giọng điệu và khoảng im lặng kéo dài. Kết quả là lời nói được viết lại kèm thông tin thời gian và chú thích người nói, sự kiện âm thanh tùy chọn. Scribe v2 Realtime là phiên bản chép lời trực tiếp riêng; mục đích của mô hình này là xử lý bản ghi hoàn chỉnh.</p><p>Nhà sản xuất mô tả nhận dạng hơn 90 ngôn ngữ và tự động phát hiện ngôn ngữ, gồm bản ghi có chuyển đổi ngôn ngữ. Gợi ý ngôn ngữ đã biết có thể giúp mô hình diễn giải âm thanh. Chuẩn bị bản ghi rõ, giữ ngôn ngữ và tên gốc, tránh méo âm nghiêm trọng do vượt ngưỡng hoặc xử lý không cần thiết làm mất chi tiết lời nói. Các đầu vào phổ biến được tài liệu nêu gồm WAV, MP3, FLAC, M4A, AAC, OGG, Opus và WebM. Chọn cách biểu diễn đầu vào mà hệ thống chép lời hỗ trợ và giữ bản ghi nguồn để rà soát.</p><p>Phản hồi tiêu chuẩn gồm văn bản nhận dạng, thông tin ngôn ngữ phát hiện được và chuỗi từ có thời gian. Bản ghi từng từ có thể gồm thời điểm bắt đầu và kết thúc, định danh người nói và logarit xác suất nhận dạng. Nhờ đó kết quả hữu ích cho phụ đề, phỏng vấn có thể tìm kiếm hoặc trình biên tập chuyển lại đúng đoạn âm thanh liên quan. Giữ kết quả có thời gian cùng âm thanh nguồn. Ví dụ với podcast, sản phẩm bàn giao có thể là bản chép lời có thể chỉnh sửa và bản ghi căn chỉnh theo từ giúp tìm vị trí cần sửa trước khi sắp xếp phụ đề.</p><p>Phân tách người nói gắn nhãn ai nói vào lúc nào trong âm thanh nhiều người, với tối đa 32 người nói được nhà sản xuất ghi nhận. Bật khi lượt người nói có ý nghĩa và cung cấp số người nói hợp lý nếu biết. Phân biệt nhãn người nói được phát hiện với tên người đã xác minh. Với phỏng vấn hoặc cuộc họp, rà soát chuyển lượt với bản ghi, đặc biệt khi giọng chồng lấn hoặc tương tự nhau. Nhãn giúp sắp xếp bản chép lời; nó không tự xác lập danh tính người nói.</p><p>Bản ghi có một người nói trên mỗi kênh có cấu trúc khác với nhiều giọng trộn vào một kênh. Giao diện của nhà sản xuất có thể xử lý độc lập tối đa năm kênh và trả về các bản chép lời riêng hoặc bản kết hợp sắp theo thời gian, kèm chỉ số kênh. Giữ bố trí kênh khi có ý nghĩa. Gộp bản ghi cuộc gọi đã tách kênh trước khi chép lời có thể làm mất nguồn thông tin người nói hữu ích. Phân biệt quy thuộc theo kênh với phân tách người nói suy ra từ âm thanh trộn. Phản hồi kết hợp nhiều kênh cần dấu thời gian và không thể bao gồm phát hiện hoặc ẩn thực thể.</p><p>Gợi ý từ khóa hướng dẫn nhận dạng tên, thuật ngữ sản phẩm và từ vựng chuyên ngành theo ngữ cảnh. Tài liệu xử lý lô hiện tại cho phép tối đa 1.000 thuật ngữ, mỗi thuật ngữ dưới 50 ký tự và tối đa năm từ. Cung cấp cách viết liên quan thay vì danh mục rộng nhưng không liên quan. Với phỏng vấn kỹ thuật, cung cấp tên sản phẩm và chữ viết tắt có khả năng xuất hiện, rồi kiểm tra chúng tại mốc thời gian trong kết quả. Từ khóa định hướng nhận dạng; chúng không phải chỉ dẫn chèn thuật ngữ khi bản ghi không hỗ trợ điều đó.</p><p>Chọn mục đích bản chép lời trước khi biên tập. Bản nguyên văn giữ câu chữ được nói, còn tùy chọn no-verbatim trong tài liệu loại bỏ từ đệm, đoạn khởi đầu bỏ dở và chỗ nói vấp để kết quả dễ đọc hơn. Gắn thẻ âm thanh động có thể xác định sự kiện không phải lời nói như tiếng cười hoặc bước chân. Bản chép lời đã trau chuốt có thể hữu ích cho phụ đề hoặc việc đọc, nhưng không nên âm thầm thay bản ghi thô khi sự lặp lại, sửa lời hoặc âm thanh ngoài lời nói có ý nghĩa với nhiệm vụ.</p><p>Nhà sản xuất cũng mô tả phát hiện thực thể và chỉnh sửa bản chép lời thử nghiệm. Trong giao diện của nhà sản xuất, chỉnh sửa bản chép lời không thể kết hợp với phát hiện thực thể, ẩn thực thể hoặc chép lời đa kênh. Thực thể được phát hiện cung cấp vị trí có cấu trúc của một số thông tin trong bản chép lời. Ẩn thực thể tùy chọn che văn bản phát hiện được bằng nhãn thay thế; tính năng này phụ thuộc vào phát hiện thực thể, và danh sách thực thể không được trả về khi bật ẩn. Việc ẩn diễn ra trong lúc chép lời, dùng dấu thay thế chung, nhãn danh mục hoặc nhãn danh mục có số. Ẩn tự động có thể bỏ sót nội dung nhạy cảm, vì vậy hãy kiểm tra bản chép lời đã ẩn trước khi chia sẻ. Chỉnh sửa bằng ngôn ngữ tự nhiên trả về văn bản đã sửa bên cạnh kết quả gốc, giữ sẵn bản ghi thời gian và người nói ban đầu. Phân biệt các sản phẩm này: cách viết đã sửa hoặc câu đã đổi định dạng có thể cần kiểm tra lại trước khi căn chỉnh với âm thanh hoặc dùng trong bước trích xuất phía sau. Những tính năng này xử lý bản chép lời; chúng không xác lập rằng mọi chi tiết quan trọng đều được nhận dạng chính xác.</p><p>Để hoàn thiện bản chép lời, rà soát tên, số, phủ định và chuyển người nói bằng cách quay lại âm thanh tương ứng. Chú ý đoạn nhỏ tiếng, chồng lấn và chuyển ngôn ngữ thay vì chỉ đánh giá chất lượng qua văn bản trôi chảy. Giữ câu chữ chưa chắc chắn để sửa thay vì hoàn thành đoạn không nghe được bằng một câu có vẻ hợp lý. Kết quả hữu ích là bản ghi văn bản đã kiểm tra với thông tin thời gian và người nói cần cho mục đích sử dụng; sau đó bản chép lời có thể trở thành đầu vào cho bước tóm tắt, dịch hoặc phân tích riêng.</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>elevenlabs/scribe-v2</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.0001222222222222</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-1328-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1328-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-1328-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1328-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;elevenlabs/scribe-v2&#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=elevenlabs%2Fscribe-v2&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2</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=elevenlabs%2Fscribe-v2&amp;route=Ultra&amp;caller=elevenlabs%2Fscribe-v2&amp;fmt=transcriptions\"><code>elevenlabs/scribe-v2</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "elevenlabs/scribe-v2",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|elevenlabs%2Fscribe-v2",
      "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": [
                  "elevenlabs/scribe-v2"
                ],
                "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": [
                    "elevenlabs/scribe-v2"
                  ],
                  "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": "elevenlabs/scribe-v2"
              },
              "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.0001222222222222",
                "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.0001222222222222",
                "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': 'elevenlabs/scribe-v2', '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.0001222222222222
          }
        },
        "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.0001222222222222",
                "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.0001222222222222",
                "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": "elevenlabs/scribe-v2",
        "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.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "76e6f1e8b16b5cbadbc1f380224fc19723d66e4ad291c4d565a10aedc94aa5ff",
    "input_html_sha256": "1d773de02b68949cf8b9257a8f02ecf638c5fb048599f62526b5c0d3e5a5ee71",
    "private_audit_sha256": "d147453b910e7549189290ab028d7e01ff3ce54a16dc8cf890a7d2126a7c2e9b",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/elevenlabs-scribe-v2/",
    "description": "ElevenLabs Scribe v2 chép lời âm thanh đã ghi bằng hơn 90 ngôn ngữ, có thời gian từng từ, phân tách người nói tùy chọn và thẻ sự kiện không phải lời nói. Mô hình được xây dựng cho bản ghi dài, phụ đề và bản chép lời có thể chỉnh sửa, với từ khóa theo ngữ cảnh cùng lựa chọn chép nguyên văn hoặc biên tập gọn.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/elevenlabs-scribe-v2/index.md",
    "title": "ElevenLabs: Scribe v2 — Ailoot",
    "url": "https://ailoot.ai/models/vi/elevenlabs-scribe-v2/"
  },
  "rawModel": {
    "about": "ElevenLabs Scribe v2 là mô hình nhận dạng giọng nói theo lô dành cho âm thanh đã ghi, chép lời và tạo phụ đề. Mô hình phát triển từ Scribe v1 với khả năng xử lý tốt hơn bản ghi dài, khoảng dừng, thay đổi giọng điệu và khoảng im lặng kéo dài. Kết quả là lời nói được viết lại kèm thông tin thời gian và chú thích người nói, sự kiện âm thanh tùy chọn. Scribe v2 Realtime là phiên bản chép lời trực tiếp riêng; mục đích của mô hình này là xử lý bản ghi hoàn chỉnh.\n\nNhà sản xuất mô tả nhận dạng hơn 90 ngôn ngữ và tự động phát hiện ngôn ngữ, gồm bản ghi có chuyển đổi ngôn ngữ. Gợi ý ngôn ngữ đã biết có thể giúp mô hình diễn giải âm thanh. Chuẩn bị bản ghi rõ, giữ ngôn ngữ và tên gốc, tránh méo âm nghiêm trọng do vượt ngưỡng hoặc xử lý không cần thiết làm mất chi tiết lời nói. Các đầu vào phổ biến được tài liệu nêu gồm WAV, MP3, FLAC, M4A, AAC, OGG, Opus và WebM. Chọn cách biểu diễn đầu vào mà hệ thống chép lời hỗ trợ và giữ bản ghi nguồn để rà soát.\n\nPhản hồi tiêu chuẩn gồm văn bản nhận dạng, thông tin ngôn ngữ phát hiện được và chuỗi từ có thời gian. Bản ghi từng từ có thể gồm thời điểm bắt đầu và kết thúc, định danh người nói và logarit xác suất nhận dạng. Nhờ đó kết quả hữu ích cho phụ đề, phỏng vấn có thể tìm kiếm hoặc trình biên tập chuyển lại đúng đoạn âm thanh liên quan. Giữ kết quả có thời gian cùng âm thanh nguồn. Ví dụ với podcast, sản phẩm bàn giao có thể là bản chép lời có thể chỉnh sửa và bản ghi căn chỉnh theo từ giúp tìm vị trí cần sửa trước khi sắp xếp phụ đề.\n\nPhân tách người nói gắn nhãn ai nói vào lúc nào trong âm thanh nhiều người, với tối đa 32 người nói được nhà sản xuất ghi nhận. Bật khi lượt người nói có ý nghĩa và cung cấp số người nói hợp lý nếu biết. Phân biệt nhãn người nói được phát hiện với tên người đã xác minh. Với phỏng vấn hoặc cuộc họp, rà soát chuyển lượt với bản ghi, đặc biệt khi giọng chồng lấn hoặc tương tự nhau. Nhãn giúp sắp xếp bản chép lời; nó không tự xác lập danh tính người nói.\n\nBản ghi có một người nói trên mỗi kênh có cấu trúc khác với nhiều giọng trộn vào một kênh. Giao diện của nhà sản xuất có thể xử lý độc lập tối đa năm kênh và trả về các bản chép lời riêng hoặc bản kết hợp sắp theo thời gian, kèm chỉ số kênh. Giữ bố trí kênh khi có ý nghĩa. Gộp bản ghi cuộc gọi đã tách kênh trước khi chép lời có thể làm mất nguồn thông tin người nói hữu ích. Phân biệt quy thuộc theo kênh với phân tách người nói suy ra từ âm thanh trộn. Phản hồi kết hợp nhiều kênh cần dấu thời gian và không thể bao gồm phát hiện hoặc ẩn thực thể.\n\nGợi ý từ khóa hướng dẫn nhận dạng tên, thuật ngữ sản phẩm và từ vựng chuyên ngành theo ngữ cảnh. Tài liệu xử lý lô hiện tại cho phép tối đa 1.000 thuật ngữ, mỗi thuật ngữ dưới 50 ký tự và tối đa năm từ. Cung cấp cách viết liên quan thay vì danh mục rộng nhưng không liên quan. Với phỏng vấn kỹ thuật, cung cấp tên sản phẩm và chữ viết tắt có khả năng xuất hiện, rồi kiểm tra chúng tại mốc thời gian trong kết quả. Từ khóa định hướng nhận dạng; chúng không phải chỉ dẫn chèn thuật ngữ khi bản ghi không hỗ trợ điều đó.\n\nChọn mục đích bản chép lời trước khi biên tập. Bản nguyên văn giữ câu chữ được nói, còn tùy chọn no-verbatim trong tài liệu loại bỏ từ đệm, đoạn khởi đầu bỏ dở và chỗ nói vấp để kết quả dễ đọc hơn. Gắn thẻ âm thanh động có thể xác định sự kiện không phải lời nói như tiếng cười hoặc bước chân. Bản chép lời đã trau chuốt có thể hữu ích cho phụ đề hoặc việc đọc, nhưng không nên âm thầm thay bản ghi thô khi sự lặp lại, sửa lời hoặc âm thanh ngoài lời nói có ý nghĩa với nhiệm vụ.\n\nNhà sản xuất cũng mô tả phát hiện thực thể và chỉnh sửa bản chép lời thử nghiệm. Trong giao diện của nhà sản xuất, chỉnh sửa bản chép lời không thể kết hợp với phát hiện thực thể, ẩn thực thể hoặc chép lời đa kênh. Thực thể được phát hiện cung cấp vị trí có cấu trúc của một số thông tin trong bản chép lời. Ẩn thực thể tùy chọn che văn bản phát hiện được bằng nhãn thay thế; tính năng này phụ thuộc vào phát hiện thực thể, và danh sách thực thể không được trả về khi bật ẩn. Việc ẩn diễn ra trong lúc chép lời, dùng dấu thay thế chung, nhãn danh mục hoặc nhãn danh mục có số. Ẩn tự động có thể bỏ sót nội dung nhạy cảm, vì vậy hãy kiểm tra bản chép lời đã ẩn trước khi chia sẻ. Chỉnh sửa bằng ngôn ngữ tự nhiên trả về văn bản đã sửa bên cạnh kết quả gốc, giữ sẵn bản ghi thời gian và người nói ban đầu. Phân biệt các sản phẩm này: cách viết đã sửa hoặc câu đã đổi định dạng có thể cần kiểm tra lại trước khi căn chỉnh với âm thanh hoặc dùng trong bước trích xuất phía sau. Những tính năng này xử lý bản chép lời; chúng không xác lập rằng mọi chi tiết quan trọng đều được nhận dạng chính xác.\n\nĐể hoàn thiện bản chép lời, rà soát tên, số, phủ định và chuyển người nói bằng cách quay lại âm thanh tương ứng. Chú ý đoạn nhỏ tiếng, chồng lấn và chuyển ngôn ngữ thay vì chỉ đánh giá chất lượng qua văn bản trôi chảy. Giữ câu chữ chưa chắc chắn để sửa thay vì hoàn thành đoạn không nghe được bằng một câu có vẻ hợp lý. Kết quả hữu ích là bản ghi văn bản đã kiểm tra với thông tin thời gian và người nói cần cho mục đích sử dụng; sau đó bản chép lời có thể trở thành đầu vào cho bước tóm tắt, dịch hoặc phân tích riêng.",
    "alias_of": null,
    "aliases": [],
    "author": "ElevenLabs",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2",
    "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": [
                  "elevenlabs/scribe-v2"
                ],
                "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": [
                    "elevenlabs/scribe-v2"
                  ],
                  "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": "elevenlabs/scribe-v2"
              },
              "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.0001222222222222",
                "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.0001222222222222",
                "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': 'elevenlabs/scribe-v2', '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.0001222222222222
          }
        },
        "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.0001222222222222",
                "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.0001222222222222",
                "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": "elevenlabs/scribe-v2",
        "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.0001222222222222",
            "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.0001222222222222",
            "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": "elevenlabs/scribe-v2",
        "request_model_id": "elevenlabs/scribe-v2",
        "route_label": "Ultra"
      }
    ],
    "name": "ElevenLabs: Scribe v2",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "ElevenLabs Scribe v2 chép lời âm thanh đã ghi bằng hơn 90 ngôn ngữ, có thời gian từng từ, phân tách người nói tùy chọn và thẻ sự kiện không phải lời nói. Mô hình được xây dựng cho bản ghi dài, phụ đề và bản chép lời có thể chỉnh sửa, với từ khóa theo ngữ cảnh cùng lựa chọn chép nguyên văn hoặc biên tập gọn."
  },
  "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": "ElevenLabs Scribe v2 chép lời âm thanh đã ghi bằng hơn 90 ngôn ngữ, có thời gian từng từ, phân tách người nói tùy chọn và thẻ sự kiện không phải lời nói. Mô hình được xây dựng cho bản ghi dài, phụ đề và bản chép lời có thể chỉnh sửa, với từ khóa theo ngữ cảnh cùng lựa chọn chép nguyên văn hoặc biên tập gọn.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "49ebe611f9b092eeff1136bcb6a584cc0419ec4d4e6409a6ec019b7ff369118f",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "8f5469340a93f76be018b2c42abe1a450b31ca4946dd9832cf508fec29e2f827"
}
