{
  "aboutHtml": "<p>Google Chirp 3 là mô hình tự động nhận dạng giọng nói đa ngôn ngữ, chuyển âm thanh lời nói thành văn bản. Google ghi nhận đây là mô hình chép lời Chirp 3 trong dòng Speech-to-Text V2, với mã mô hình chirp_3. Mục đích của mô hình là nhận dạng lời nói đã ghi hoặc được truyền trực tiếp, với phát hiện ngôn ngữ và các tính năng riêng cho chép lời. Sản phẩm kết quả là bản chép lời cùng siêu dữ liệu được phương thức nhận dạng đã chọn hỗ trợ, thay vì giọng nói được tạo hoặc câu trả lời trợ lý mở.</p><p>Nhà sản xuất phân biệt nhận dạng luồng trực tiếp, nhận dạng đồng bộ cho đoạn ngắn và nhận dạng hàng loạt cho bản ghi dài hơn. Chọn chế độ theo âm thanh nguồn và kết quả yêu cầu. Với ghi chú thoại ngắn, phản hồi văn bản hoàn chỉnh có thể đủ. Với phỏng vấn hoặc cuộc gọi đã ghi, kết quả hàng loạt có thông tin người nói có thể hữu ích hơn. Với phụ đề trực tiếp hoặc giao diện lệnh nói, giữ văn bản trung gian riêng với kết quả nhận dạng cuối cùng và bảo toàn khoảng âm thanh mà nó mô tả.</p><p>Chuẩn bị âm thanh theo mã hóa mà cách triển khai nhận dạng yêu cầu. Ví dụ Chirp 3 của Google dùng giải mã tự động phát hiện cho tệp đã ghi và giải mã chỉ định rõ cho cấu hình luồng thô. Tài liệu tham chiếu bộ giải mã V2 liên quan liệt kê WAV PCM hoặc âm thanh nén giãn biên độ, FLAC, MP3, Ogg/WebM Opus và AAC trong vùng chứa MP4, M4A hoặc MOV trong các mã hóa được hỗ trợ. Tên vùng chứa không thay thế codec và cấu hình lấy mẫu thực tế. Giữ lời nói rõ ràng, tránh xén đỉnh nghiêm trọng hoặc chuyển đổi không cần thiết làm mất chi tiết có thể nghe.</p><p>Chirp 3 có thể tự động xác định và chép lại ngôn ngữ chiếm ưu thế, và tập các locale dự kiến có thể thu hẹp lựa chọn nhận dạng. Khả năng ngôn ngữ khác nhau theo phương thức và tính năng. Danh sách ngôn ngữ chép lời rộng hơn danh sách phân tách người nói, nên việc nhận dạng một ngôn ngữ không xác nhận rằng mọi tính năng người nói hoặc thời gian đều áp dụng cho ngôn ngữ đó. Dùng locale khớp bản ghi và giữ các tên có chuyển đổi ngôn ngữ hoặc thuật ngữ chuyên ngành để kiểm tra. Nhãn ngôn ngữ được phát hiện là một phần kết quả, không phải bằng chứng rằng mọi từ bất thường đã được nhận dạng đúng.</p><p>Phân tách người nói nhóm lời nói theo giọng trong bản ghi một kênh. Google cung cấp ví dụ chép lời hàng loạt với thông tin người nói theo từng từ. Với phỏng vấn, giữ các nhãn đó cùng văn bản nhận dạng và đối chiếu thay đổi người nói với bản ghi trước khi gắn tên thật hoặc vai trò. Giọng tương tự, ngắt lời và nói chồng nhau có thể khiến việc quy người nói khó khăn. Giữ rõ cách bố trí kênh của nguồn và tác vụ kiểm tra người nói dự kiến, thay vì xem nhãn là danh tính đã được xác minh độc lập.</p><p>Thông tin thời gian cũng riêng theo phương thức. Nhận dạng luồng cung cấp dấu thời gian ở cấp phát ngôn, trong khi hướng dẫn nhận dạng tệp của nhà sản xuất mô tả thời gian từng từ tùy chọn với sự đánh đổi có thể có về chất lượng chép lời. Giữ siêu dữ liệu thực tế được phương thức đã chọn trả về và kiểm tra căn chỉnh cùng câu chữ. Quy trình làm phụ đề cần cả hai: văn bản nhận dạng dễ đọc và bằng chứng rằng mốc thời gian tương ứng với âm thanh đúng. Google cũng cảnh báo giá trị độ tin cậy ở cấp từ được trả về không phải điểm tin cậy thực sự, nên không dùng nó để chứng nhận một từ là đúng.</p><p>Thích ứng giọng nói cung cấp cụm từ và danh từ riêng có khả năng xuất hiện trong bản ghi. Nhà sản xuất ghi nhận từ điển tối đa 1,000 cụm từ và khuyến nghị dùng ít mục liên quan nhất có thể để tránh làm giảm nhận dạng các từ khác. Với bài thuyết trình kỹ thuật, chuẩn bị danh sách ngắn tên sản phẩm và chữ viết tắt thực tế, rồi kiểm tra chúng trong bản chép lời. Tăng thiên hướng giúp bộ nhận dạng cân nhắc một thuật ngữ; nó không xác lập rằng thuật ngữ đã được nói hoặc thay thế kiểm tra âm thanh.</p><p>Mô hình cung cấp tự động thêm dấu câu và viết hoa, những tính năng có thể tắt trong giao diện được tài liệu hóa. Google cũng mô tả tính năng preview cho chỉ dẫn định dạng chép lời tùy chỉnh, chẳng hạn cách viết tên hoặc ngày cụ thể. Giữ chỉ dẫn tập trung vào định dạng lời nói được nhận dạng. Bản chép lời chuẩn hóa ngày hoặc viết hoa thương hiệu vẫn cần bảo toàn ý nghĩa được nói. Tóm tắt, dịch thuật hoặc phân tích dữ kiện là bước sử dụng bản chép lời sau đó, thay vì điều được xác lập bởi chính kết quả nhận dạng.</p><p>Bộ khử nhiễu tích hợp nhằm giảm nhạc nền và âm thanh môi trường như mưa hoặc tiếng đường phố. Google nêu rõ rằng nó không thể loại bỏ giọng người ở nền. Giữ sự phân biệt đó khi chuẩn bị bản ghi có hội thoại chồng lấn. Đối chiếu các phần ồn và yên với nguồn thay vì giả định bản chép lời trông sạch hơn chứng minh âm thanh gây nhiễu đã được loại bỏ. Kết quả hữu ích giữ các đoạn chưa chắc chắn dễ nhận biết để sửa.</p><p>Với tác vụ luồng trực tiếp, độ nhạy xác định điểm kết thúc thay đổi thời điểm một phát ngôn được xem là hoàn tất. Nhà sản xuất mô tả các thiết lập standard, short và supershort cho lời nói dự kiến ngày càng ngắn. Thiết lập nhanh hơn có thể cắt lời người nói tạm dừng giữa ý. Khớp thiết lập với đọc chính tả tự nhiên, câu ngắn hoặc lệnh rất ngắn, và giữ trạng thái kết quả cuối cùng cùng bản chép lời. Với tệp hoàn chỉnh, kiểm tra tên, số lượng, phủ định và ranh giới người nói, sau đó giữ chế độ đã chọn cùng âm thanh nguồn để có thể kiểm tra hoặc tái sử dụng kết quả.</p>",
  "aboutText": "Google Chirp 3 là mô hình tự động nhận dạng giọng nói đa ngôn ngữ, chuyển âm thanh lời nói thành văn bản. Google ghi nhận đây là mô hình chép lời Chirp 3 trong dòng Speech-to-Text V2, với mã mô hình chirp_3. Mục đích của mô hình là nhận dạng lời nói đã ghi hoặc được truyền trực tiếp, với phát hiện ngôn ngữ và các tính năng riêng cho chép lời. Sản phẩm kết quả là bản chép lời cùng siêu dữ liệu được phương thức nhận dạng đã chọn hỗ trợ, thay vì giọng nói được tạo hoặc câu trả lời trợ lý mở.\n\nNhà sản xuất phân biệt nhận dạng luồng trực tiếp, nhận dạng đồng bộ cho đoạn ngắn và nhận dạng hàng loạt cho bản ghi dài hơn. Chọn chế độ theo âm thanh nguồn và kết quả yêu cầu. Với ghi chú thoại ngắn, phản hồi văn bản hoàn chỉnh có thể đủ. Với phỏng vấn hoặc cuộc gọi đã ghi, kết quả hàng loạt có thông tin người nói có thể hữu ích hơn. Với phụ đề trực tiếp hoặc giao diện lệnh nói, giữ văn bản trung gian riêng với kết quả nhận dạng cuối cùng và bảo toàn khoảng âm thanh mà nó mô tả.\n\nChuẩn bị âm thanh theo mã hóa mà cách triển khai nhận dạng yêu cầu. Ví dụ Chirp 3 của Google dùng giải mã tự động phát hiện cho tệp đã ghi và giải mã chỉ định rõ cho cấu hình luồng thô. Tài liệu tham chiếu bộ giải mã V2 liên quan liệt kê WAV PCM hoặc âm thanh nén giãn biên độ, FLAC, MP3, Ogg/WebM Opus và AAC trong vùng chứa MP4, M4A hoặc MOV trong các mã hóa được hỗ trợ. Tên vùng chứa không thay thế codec và cấu hình lấy mẫu thực tế. Giữ lời nói rõ ràng, tránh xén đỉnh nghiêm trọng hoặc chuyển đổi không cần thiết làm mất chi tiết có thể nghe.\n\nChirp 3 có thể tự động xác định và chép lại ngôn ngữ chiếm ưu thế, và tập các locale dự kiến có thể thu hẹp lựa chọn nhận dạng. Khả năng ngôn ngữ khác nhau theo phương thức và tính năng. Danh sách ngôn ngữ chép lời rộng hơn danh sách phân tách người nói, nên việc nhận dạng một ngôn ngữ không xác nhận rằng mọi tính năng người nói hoặc thời gian đều áp dụng cho ngôn ngữ đó. Dùng locale khớp bản ghi và giữ các tên có chuyển đổi ngôn ngữ hoặc thuật ngữ chuyên ngành để kiểm tra. Nhãn ngôn ngữ được phát hiện là một phần kết quả, không phải bằng chứng rằng mọi từ bất thường đã được nhận dạng đúng.\n\nPhân tách người nói nhóm lời nói theo giọng trong bản ghi một kênh. Google cung cấp ví dụ chép lời hàng loạt với thông tin người nói theo từng từ. Với phỏng vấn, giữ các nhãn đó cùng văn bản nhận dạng và đối chiếu thay đổi người nói với bản ghi trước khi gắn tên thật hoặc vai trò. Giọng tương tự, ngắt lời và nói chồng nhau có thể khiến việc quy người nói khó khăn. Giữ rõ cách bố trí kênh của nguồn và tác vụ kiểm tra người nói dự kiến, thay vì xem nhãn là danh tính đã được xác minh độc lập.\n\nThông tin thời gian cũng riêng theo phương thức. Nhận dạng luồng cung cấp dấu thời gian ở cấp phát ngôn, trong khi hướng dẫn nhận dạng tệp của nhà sản xuất mô tả thời gian từng từ tùy chọn với sự đánh đổi có thể có về chất lượng chép lời. Giữ siêu dữ liệu thực tế được phương thức đã chọn trả về và kiểm tra căn chỉnh cùng câu chữ. Quy trình làm phụ đề cần cả hai: văn bản nhận dạng dễ đọc và bằng chứng rằng mốc thời gian tương ứng với âm thanh đúng. Google cũng cảnh báo giá trị độ tin cậy ở cấp từ được trả về không phải điểm tin cậy thực sự, nên không dùng nó để chứng nhận một từ là đúng.\n\nThích ứng giọng nói cung cấp cụm từ và danh từ riêng có khả năng xuất hiện trong bản ghi. Nhà sản xuất ghi nhận từ điển tối đa 1,000 cụm từ và khuyến nghị dùng ít mục liên quan nhất có thể để tránh làm giảm nhận dạng các từ khác. Với bài thuyết trình kỹ thuật, chuẩn bị danh sách ngắn tên sản phẩm và chữ viết tắt thực tế, rồi kiểm tra chúng trong bản chép lời. Tăng thiên hướng giúp bộ nhận dạng cân nhắc một thuật ngữ; nó không xác lập rằng thuật ngữ đã được nói hoặc thay thế kiểm tra âm thanh.\n\nMô hình cung cấp tự động thêm dấu câu và viết hoa, những tính năng có thể tắt trong giao diện được tài liệu hóa. Google cũng mô tả tính năng preview cho chỉ dẫn định dạng chép lời tùy chỉnh, chẳng hạn cách viết tên hoặc ngày cụ thể. Giữ chỉ dẫn tập trung vào định dạng lời nói được nhận dạng. Bản chép lời chuẩn hóa ngày hoặc viết hoa thương hiệu vẫn cần bảo toàn ý nghĩa được nói. Tóm tắt, dịch thuật hoặc phân tích dữ kiện là bước sử dụng bản chép lời sau đó, thay vì điều được xác lập bởi chính kết quả nhận dạng.\n\nBộ khử nhiễu tích hợp nhằm giảm nhạc nền và âm thanh môi trường như mưa hoặc tiếng đường phố. Google nêu rõ rằng nó không thể loại bỏ giọng người ở nền. Giữ sự phân biệt đó khi chuẩn bị bản ghi có hội thoại chồng lấn. Đối chiếu các phần ồn và yên với nguồn thay vì giả định bản chép lời trông sạch hơn chứng minh âm thanh gây nhiễu đã được loại bỏ. Kết quả hữu ích giữ các đoạn chưa chắc chắn dễ nhận biết để sửa.\n\nVới tác vụ luồng trực tiếp, độ nhạy xác định điểm kết thúc thay đổi thời điểm một phát ngôn được xem là hoàn tất. Nhà sản xuất mô tả các thiết lập standard, short và supershort cho lời nói dự kiến ngày càng ngắn. Thiết lập nhanh hơn có thể cắt lời người nói tạm dừng giữa ý. Khớp thiết lập với đọc chính tả tự nhiên, câu ngắn hoặc lệnh rất ngắn, và giữ trạng thái kết quả cuối cùng cùng bản chép lời. Với tệp hoàn chỉnh, kiểm tra tên, số lượng, phủ định và ranh giới người nói, sau đó giữ chế độ đã chọn cùng âm thanh nguồn để có thể kiểm tra hoặc tái sử dụng kết quả.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "33dbb664d3fda550fac2430405678c88f58ce7415429013a991bdbea0ac2f2b1",
    "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\">G</span><h2 id=\"sheet-title\">Google: Chirp 3</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/chirp-3</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|google%2Fchirp-3\">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\">Google Chirp 3 là mô hình nhận dạng giọng nói đa ngôn ngữ dành cho luồng trực tiếp, bản ghi ngắn và chép lời hàng loạt cho bản ghi dài hơn. Mô hình cung cấp tự động phát hiện ngôn ngữ, dấu câu, thích ứng từ vựng cùng siêu dữ liệu thời gian hoặc người nói tùy chế độ. Bộ khử nhiễu giảm tạp âm nền nhưng không thể loại bỏ giọng nói của người khác.</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>Google Chirp 3 là mô hình tự động nhận dạng giọng nói đa ngôn ngữ, chuyển âm thanh lời nói thành văn bản. Google ghi nhận đây là mô hình chép lời Chirp 3 trong dòng Speech-to-Text V2, với mã mô hình chirp_3. Mục đích của mô hình là nhận dạng lời nói đã ghi hoặc được truyền trực tiếp, với phát hiện ngôn ngữ và các tính năng riêng cho chép lời. Sản phẩm kết quả là bản chép lời cùng siêu dữ liệu được phương thức nhận dạng đã chọn hỗ trợ, thay vì giọng nói được tạo hoặc câu trả lời trợ lý mở.</p><p>Nhà sản xuất phân biệt nhận dạng luồng trực tiếp, nhận dạng đồng bộ cho đoạn ngắn và nhận dạng hàng loạt cho bản ghi dài hơn. Chọn chế độ theo âm thanh nguồn và kết quả yêu cầu. Với ghi chú thoại ngắn, phản hồi văn bản hoàn chỉnh có thể đủ. Với phỏng vấn hoặc cuộc gọi đã ghi, kết quả hàng loạt có thông tin người nói có thể hữu ích hơn. Với phụ đề trực tiếp hoặc giao diện lệnh nói, giữ văn bản trung gian riêng với kết quả nhận dạng cuối cùng và bảo toàn khoảng âm thanh mà nó mô tả.</p><p>Chuẩn bị âm thanh theo mã hóa mà cách triển khai nhận dạng yêu cầu. Ví dụ Chirp 3 của Google dùng giải mã tự động phát hiện cho tệp đã ghi và giải mã chỉ định rõ cho cấu hình luồng thô. Tài liệu tham chiếu bộ giải mã V2 liên quan liệt kê WAV PCM hoặc âm thanh nén giãn biên độ, FLAC, MP3, Ogg/WebM Opus và AAC trong vùng chứa MP4, M4A hoặc MOV trong các mã hóa được hỗ trợ. Tên vùng chứa không thay thế codec và cấu hình lấy mẫu thực tế. Giữ lời nói rõ ràng, tránh xén đỉnh nghiêm trọng hoặc chuyển đổi không cần thiết làm mất chi tiết có thể nghe.</p><p>Chirp 3 có thể tự động xác định và chép lại ngôn ngữ chiếm ưu thế, và tập các locale dự kiến có thể thu hẹp lựa chọn nhận dạng. Khả năng ngôn ngữ khác nhau theo phương thức và tính năng. Danh sách ngôn ngữ chép lời rộng hơn danh sách phân tách người nói, nên việc nhận dạng một ngôn ngữ không xác nhận rằng mọi tính năng người nói hoặc thời gian đều áp dụng cho ngôn ngữ đó. Dùng locale khớp bản ghi và giữ các tên có chuyển đổi ngôn ngữ hoặc thuật ngữ chuyên ngành để kiểm tra. Nhãn ngôn ngữ được phát hiện là một phần kết quả, không phải bằng chứng rằng mọi từ bất thường đã được nhận dạng đúng.</p><p>Phân tách người nói nhóm lời nói theo giọng trong bản ghi một kênh. Google cung cấp ví dụ chép lời hàng loạt với thông tin người nói theo từng từ. Với phỏng vấn, giữ các nhãn đó cùng văn bản nhận dạng và đối chiếu thay đổi người nói với bản ghi trước khi gắn tên thật hoặc vai trò. Giọng tương tự, ngắt lời và nói chồng nhau có thể khiến việc quy người nói khó khăn. Giữ rõ cách bố trí kênh của nguồn và tác vụ kiểm tra người nói dự kiến, thay vì xem nhãn là danh tính đã được xác minh độc lập.</p><p>Thông tin thời gian cũng riêng theo phương thức. Nhận dạng luồng cung cấp dấu thời gian ở cấp phát ngôn, trong khi hướng dẫn nhận dạng tệp của nhà sản xuất mô tả thời gian từng từ tùy chọn với sự đánh đổi có thể có về chất lượng chép lời. Giữ siêu dữ liệu thực tế được phương thức đã chọn trả về và kiểm tra căn chỉnh cùng câu chữ. Quy trình làm phụ đề cần cả hai: văn bản nhận dạng dễ đọc và bằng chứng rằng mốc thời gian tương ứng với âm thanh đúng. Google cũng cảnh báo giá trị độ tin cậy ở cấp từ được trả về không phải điểm tin cậy thực sự, nên không dùng nó để chứng nhận một từ là đúng.</p><p>Thích ứng giọng nói cung cấp cụm từ và danh từ riêng có khả năng xuất hiện trong bản ghi. Nhà sản xuất ghi nhận từ điển tối đa 1,000 cụm từ và khuyến nghị dùng ít mục liên quan nhất có thể để tránh làm giảm nhận dạng các từ khác. Với bài thuyết trình kỹ thuật, chuẩn bị danh sách ngắn tên sản phẩm và chữ viết tắt thực tế, rồi kiểm tra chúng trong bản chép lời. Tăng thiên hướng giúp bộ nhận dạng cân nhắc một thuật ngữ; nó không xác lập rằng thuật ngữ đã được nói hoặc thay thế kiểm tra âm thanh.</p><p>Mô hình cung cấp tự động thêm dấu câu và viết hoa, những tính năng có thể tắt trong giao diện được tài liệu hóa. Google cũng mô tả tính năng preview cho chỉ dẫn định dạng chép lời tùy chỉnh, chẳng hạn cách viết tên hoặc ngày cụ thể. Giữ chỉ dẫn tập trung vào định dạng lời nói được nhận dạng. Bản chép lời chuẩn hóa ngày hoặc viết hoa thương hiệu vẫn cần bảo toàn ý nghĩa được nói. Tóm tắt, dịch thuật hoặc phân tích dữ kiện là bước sử dụng bản chép lời sau đó, thay vì điều được xác lập bởi chính kết quả nhận dạng.</p><p>Bộ khử nhiễu tích hợp nhằm giảm nhạc nền và âm thanh môi trường như mưa hoặc tiếng đường phố. Google nêu rõ rằng nó không thể loại bỏ giọng người ở nền. Giữ sự phân biệt đó khi chuẩn bị bản ghi có hội thoại chồng lấn. Đối chiếu các phần ồn và yên với nguồn thay vì giả định bản chép lời trông sạch hơn chứng minh âm thanh gây nhiễu đã được loại bỏ. Kết quả hữu ích giữ các đoạn chưa chắc chắn dễ nhận biết để sửa.</p><p>Với tác vụ luồng trực tiếp, độ nhạy xác định điểm kết thúc thay đổi thời điểm một phát ngôn được xem là hoàn tất. Nhà sản xuất mô tả các thiết lập standard, short và supershort cho lời nói dự kiến ngày càng ngắn. Thiết lập nhanh hơn có thể cắt lời người nói tạm dừng giữa ý. Khớp thiết lập với đọc chính tả tự nhiên, câu ngắn hoặc lệnh rất ngắn, và giữ trạng thái kết quả cuối cùng cùng bản chép lời. Với tệp hoàn chỉnh, kiểm tra tên, số lượng, phủ định và ranh giới người nói, sau đó giữ chế độ đã chọn cùng âm thanh nguồn để có thể kiểm tra hoặc tái sử dụng kết quả.</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>google/chirp-3</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.000533333333334</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-1435-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1435-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-1435-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1435-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;google/chirp-3&#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=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</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=google%2Fchirp-3&amp;route=Ultra&amp;caller=google%2Fchirp-3&amp;fmt=transcriptions\"><code>google/chirp-3</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/chirp-3",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|google%2Fchirp-3",
      "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": [
                  "google/chirp-3"
                ],
                "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": [
                    "google/chirp-3"
                  ],
                  "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": "google/chirp-3"
              },
              "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.000533333333334",
                "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.000533333333334",
                "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': 'google/chirp-3', '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.000533333333334
          }
        },
        "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.000533333333334",
                "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.000533333333334",
                "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": "google/chirp-3",
        "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.000533333333334",
            "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.000533333333334",
            "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": "google/chirp-3",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "74dfcb1ca6ba890fe634903080875f723775d411085997c411bdb43655f5a094",
    "input_html_sha256": "4a7bab55b6a79cd28bcfe93faed46a54649c46b45a68af84239ea2d7a5a54d77",
    "private_audit_sha256": "ab5b394441b6f8f325eb89fb4d2128dbd8705577ea37a915d70f060b9038e832",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/google-chirp-3/",
    "description": "Google Chirp 3 là mô hình nhận dạng giọng nói đa ngôn ngữ dành cho luồng trực tiếp, bản ghi ngắn và chép lời hàng loạt cho bản ghi dài hơn. Mô hình cung cấp tự động phát hiện ngôn ngữ, dấu câu, thích ứng từ vựng cùng siêu dữ liệu thời gian hoặc người nói tùy chế độ. Bộ khử nhiễu giảm tạp âm nền nhưng không thể loại bỏ giọng nói của người khác.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/google-chirp-3/index.md",
    "title": "Google: Chirp 3 — Ailoot",
    "url": "https://ailoot.ai/models/vi/google-chirp-3/"
  },
  "rawModel": {
    "about": "Google Chirp 3 là mô hình tự động nhận dạng giọng nói đa ngôn ngữ, chuyển âm thanh lời nói thành văn bản. Google ghi nhận đây là mô hình chép lời Chirp 3 trong dòng Speech-to-Text V2, với mã mô hình chirp_3. Mục đích của mô hình là nhận dạng lời nói đã ghi hoặc được truyền trực tiếp, với phát hiện ngôn ngữ và các tính năng riêng cho chép lời. Sản phẩm kết quả là bản chép lời cùng siêu dữ liệu được phương thức nhận dạng đã chọn hỗ trợ, thay vì giọng nói được tạo hoặc câu trả lời trợ lý mở.\n\nNhà sản xuất phân biệt nhận dạng luồng trực tiếp, nhận dạng đồng bộ cho đoạn ngắn và nhận dạng hàng loạt cho bản ghi dài hơn. Chọn chế độ theo âm thanh nguồn và kết quả yêu cầu. Với ghi chú thoại ngắn, phản hồi văn bản hoàn chỉnh có thể đủ. Với phỏng vấn hoặc cuộc gọi đã ghi, kết quả hàng loạt có thông tin người nói có thể hữu ích hơn. Với phụ đề trực tiếp hoặc giao diện lệnh nói, giữ văn bản trung gian riêng với kết quả nhận dạng cuối cùng và bảo toàn khoảng âm thanh mà nó mô tả.\n\nChuẩn bị âm thanh theo mã hóa mà cách triển khai nhận dạng yêu cầu. Ví dụ Chirp 3 của Google dùng giải mã tự động phát hiện cho tệp đã ghi và giải mã chỉ định rõ cho cấu hình luồng thô. Tài liệu tham chiếu bộ giải mã V2 liên quan liệt kê WAV PCM hoặc âm thanh nén giãn biên độ, FLAC, MP3, Ogg/WebM Opus và AAC trong vùng chứa MP4, M4A hoặc MOV trong các mã hóa được hỗ trợ. Tên vùng chứa không thay thế codec và cấu hình lấy mẫu thực tế. Giữ lời nói rõ ràng, tránh xén đỉnh nghiêm trọng hoặc chuyển đổi không cần thiết làm mất chi tiết có thể nghe.\n\nChirp 3 có thể tự động xác định và chép lại ngôn ngữ chiếm ưu thế, và tập các locale dự kiến có thể thu hẹp lựa chọn nhận dạng. Khả năng ngôn ngữ khác nhau theo phương thức và tính năng. Danh sách ngôn ngữ chép lời rộng hơn danh sách phân tách người nói, nên việc nhận dạng một ngôn ngữ không xác nhận rằng mọi tính năng người nói hoặc thời gian đều áp dụng cho ngôn ngữ đó. Dùng locale khớp bản ghi và giữ các tên có chuyển đổi ngôn ngữ hoặc thuật ngữ chuyên ngành để kiểm tra. Nhãn ngôn ngữ được phát hiện là một phần kết quả, không phải bằng chứng rằng mọi từ bất thường đã được nhận dạng đúng.\n\nPhân tách người nói nhóm lời nói theo giọng trong bản ghi một kênh. Google cung cấp ví dụ chép lời hàng loạt với thông tin người nói theo từng từ. Với phỏng vấn, giữ các nhãn đó cùng văn bản nhận dạng và đối chiếu thay đổi người nói với bản ghi trước khi gắn tên thật hoặc vai trò. Giọng tương tự, ngắt lời và nói chồng nhau có thể khiến việc quy người nói khó khăn. Giữ rõ cách bố trí kênh của nguồn và tác vụ kiểm tra người nói dự kiến, thay vì xem nhãn là danh tính đã được xác minh độc lập.\n\nThông tin thời gian cũng riêng theo phương thức. Nhận dạng luồng cung cấp dấu thời gian ở cấp phát ngôn, trong khi hướng dẫn nhận dạng tệp của nhà sản xuất mô tả thời gian từng từ tùy chọn với sự đánh đổi có thể có về chất lượng chép lời. Giữ siêu dữ liệu thực tế được phương thức đã chọn trả về và kiểm tra căn chỉnh cùng câu chữ. Quy trình làm phụ đề cần cả hai: văn bản nhận dạng dễ đọc và bằng chứng rằng mốc thời gian tương ứng với âm thanh đúng. Google cũng cảnh báo giá trị độ tin cậy ở cấp từ được trả về không phải điểm tin cậy thực sự, nên không dùng nó để chứng nhận một từ là đúng.\n\nThích ứng giọng nói cung cấp cụm từ và danh từ riêng có khả năng xuất hiện trong bản ghi. Nhà sản xuất ghi nhận từ điển tối đa 1,000 cụm từ và khuyến nghị dùng ít mục liên quan nhất có thể để tránh làm giảm nhận dạng các từ khác. Với bài thuyết trình kỹ thuật, chuẩn bị danh sách ngắn tên sản phẩm và chữ viết tắt thực tế, rồi kiểm tra chúng trong bản chép lời. Tăng thiên hướng giúp bộ nhận dạng cân nhắc một thuật ngữ; nó không xác lập rằng thuật ngữ đã được nói hoặc thay thế kiểm tra âm thanh.\n\nMô hình cung cấp tự động thêm dấu câu và viết hoa, những tính năng có thể tắt trong giao diện được tài liệu hóa. Google cũng mô tả tính năng preview cho chỉ dẫn định dạng chép lời tùy chỉnh, chẳng hạn cách viết tên hoặc ngày cụ thể. Giữ chỉ dẫn tập trung vào định dạng lời nói được nhận dạng. Bản chép lời chuẩn hóa ngày hoặc viết hoa thương hiệu vẫn cần bảo toàn ý nghĩa được nói. Tóm tắt, dịch thuật hoặc phân tích dữ kiện là bước sử dụng bản chép lời sau đó, thay vì điều được xác lập bởi chính kết quả nhận dạng.\n\nBộ khử nhiễu tích hợp nhằm giảm nhạc nền và âm thanh môi trường như mưa hoặc tiếng đường phố. Google nêu rõ rằng nó không thể loại bỏ giọng người ở nền. Giữ sự phân biệt đó khi chuẩn bị bản ghi có hội thoại chồng lấn. Đối chiếu các phần ồn và yên với nguồn thay vì giả định bản chép lời trông sạch hơn chứng minh âm thanh gây nhiễu đã được loại bỏ. Kết quả hữu ích giữ các đoạn chưa chắc chắn dễ nhận biết để sửa.\n\nVới tác vụ luồng trực tiếp, độ nhạy xác định điểm kết thúc thay đổi thời điểm một phát ngôn được xem là hoàn tất. Nhà sản xuất mô tả các thiết lập standard, short và supershort cho lời nói dự kiến ngày càng ngắn. Thiết lập nhanh hơn có thể cắt lời người nói tạm dừng giữa ý. Khớp thiết lập với đọc chính tả tự nhiên, câu ngắn hoặc lệnh rất ngắn, và giữ trạng thái kết quả cuối cùng cùng bản chép lời. Với tệp hoàn chỉnh, kiểm tra tên, số lượng, phủ định và ranh giới người nói, sau đó giữ chế độ đã chọn cùng âm thanh nguồn để có thể kiểm tra hoặc tái sử dụng kết quả.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.000533333333334",
            "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.000533333333334",
            "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": "google/chirp-3",
    "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": [
                  "google/chirp-3"
                ],
                "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": [
                    "google/chirp-3"
                  ],
                  "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": "google/chirp-3"
              },
              "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.000533333333334",
                "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.000533333333334",
                "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': 'google/chirp-3', '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.000533333333334
          }
        },
        "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.000533333333334",
                "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.000533333333334",
                "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": "google/chirp-3",
        "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.000533333333334",
            "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.000533333333334",
            "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": "google/chirp-3",
        "request_model_id": "google/chirp-3",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Chirp 3",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "Google Chirp 3 là mô hình nhận dạng giọng nói đa ngôn ngữ dành cho luồng trực tiếp, bản ghi ngắn và chép lời hàng loạt cho bản ghi dài hơn. Mô hình cung cấp tự động phát hiện ngôn ngữ, dấu câu, thích ứng từ vựng cùng siêu dữ liệu thời gian hoặc người nói tùy chế độ. Bộ khử nhiễu giảm tạp âm nền nhưng không thể loại bỏ giọng nói của người khác."
  },
  "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": "Google Chirp 3 là mô hình nhận dạng giọng nói đa ngôn ngữ dành cho luồng trực tiếp, bản ghi ngắn và chép lời hàng loạt cho bản ghi dài hơn. Mô hình cung cấp tự động phát hiện ngôn ngữ, dấu câu, thích ứng từ vựng cùng siêu dữ liệu thời gian hoặc người nói tùy chế độ. Bộ khử nhiễu giảm tạp âm nền nhưng không thể loại bỏ giọng nói của người khác.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "029ac0e61ec1fa4f038199e6d03d34c16221175c5a194320aca40b5d8311b541",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "d7c5bc17db24dbab9ae6c09c09109330275c7d258eb7f6765a246d9fa4b78c6d"
}
