{
  "aboutHtml": "<p>GPT Transcribe là mô hình chuyển lời nói thành văn bản của OpenAI cho tệp âm thanh hoàn chỉnh, bản chép lời tệp trả theo luồng và lượt âm thanh đã chốt trong phiên Realtime. Mô hình nhận âm thanh cùng ngữ cảnh văn bản tùy chọn và trả văn bản được nhận dạng. Nhà sản xuất định vị mô hình để chép chính xác lời nói đã ghi âm theo ngôn ngữ gốc, gồm từ vựng chuyên ngành, bản ghi đa ngôn ngữ và việc chuyển ngôn ngữ trong lúc nói. Đầu ra hữu ích là bản chép lời vẫn gắn với bản ghi, kèm siêu dữ liệu ngôn ngữ được phát hiện khi mô hình dự đoán đủ tin cậy.</p><h4>Chuẩn bị bản ghi hoàn chỉnh</h4><p>Quy trình chép lời tệp của OpenAI chấp nhận tệp tải lên tối đa 25 MB. Tài liệu endpoint hiện tại liệt kê đầu vào FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV và WebM, đồng thời khuyên có đủ siêu dữ liệu tệp để xác định định dạng, gồm đuôi tên tệp và loại nội dung phù hợp. Với bản ghi lớn hơn, hướng dẫn khuyên nén hoặc chia thành các tệp không quá 25 MB. Tránh cắt ngang câu, vì bỏ lời nói xung quanh có thể làm nhận dạng kém chính xác. Giữ các phần theo thứ tự và giữ vị trí của chúng trong bản ghi gốc.</p><p>Với cuộc họp, phỏng vấn hoặc bài trình bày đã ghi âm, cung cấp âm thanh thực tế và xác định chủ đề cùng thuật ngữ có khả năng xuất hiện. Kết quả hữu ích là lời nói được nhận dạng, không phải tóm tắt suy đoán từ thảo luận. Giữ mã bản ghi cùng văn bản trả về để người kiểm tra tên, số hoặc cụm từ chưa rõ có thể quay về đúng nguồn. Bản chép lời sau đó có thể làm tài liệu cho quy trình tóm tắt, dịch hoặc biên tập riêng.</p><h4>Ngữ cảnh, gợi ý từ khóa và ngôn ngữ dự kiến</h4><p>Nhà sản xuất phân biệt ba loại hướng dẫn. Prompt cung cấp ngữ cảnh tự do về chủ đề hoặc hoàn cảnh bản ghi. Từ khóa cung cấp từ hoặc cụm từ nguyên văn dự kiến có trong lời nói. Danh sách ngôn ngữ xác định các ngôn ngữ dự kiến được nói. Với thảo luận sản phẩm song ngữ, mô tả hoàn cảnh trong prompt, liệt kê tên sản phẩm liên quan làm từ khóa và cung cấp các ngôn ngữ dự kiến. Đây là gợi ý nhận dạng, không phải chỉ dẫn chèn từ vựng chưa ai nói.</p><p>GPT Transcribe dùng trường số nhiều languages thay cho trường số ít language cũ; OpenAI nói không gửi cả hai. Hướng dẫn chấp nhận mã ISO 639-1 được hỗ trợ, một số mã ISO 639-3 và mã ngôn ngữ khu vực của tiếng Trung, đồng thời từ chối giá trị không được hỗ trợ hoặc sai định dạng. Mỗi từ khóa phải nằm trên một dòng và không chứa dấu ngoặc góc, ký tự về đầu dòng hoặc ký tự xuống dòng. Từ khóa không hợp lệ hoặc prompt quá dài có thể khiến toàn bộ yêu cầu bị từ chối. Giữ ngữ cảnh liên quan và kiểm tra tên được gợi ý có thực sự xuất hiện trong âm thanh, thay vì coi danh sách gợi ý là bản chép lời.</p><h4>Đầu ra JSON và dự đoán ngôn ngữ được phát hiện</h4><p>Kết quả tệp được ghi là JSON chứa bản chép lời và các ngôn ngữ được phát hiện. Các dự đoán ngôn ngữ đó là đầu ra của mô hình, không phải bản sao gợi ý ngôn ngữ đã cung cấp. Danh sách ngôn ngữ rỗng là kết quả hợp lệ khi mô hình không dự đoán đủ tin cậy; nó không xác lập rằng bản ghi im lặng hoặc việc chép lời thất bại. Giữ văn bản được nhận dạng và siêu dữ liệu ngôn ngữ riêng để xử lý sau dùng từng phần đúng ý nghĩa.</p><h4>Trả bản chép lời tệp theo luồng</h4><p>Tệp hoàn chỉnh có thể tạo văn bản chép lời từng phần trong lúc xử lý. OpenAI mô tả sự kiện transcript.text.delta cho văn bản từng phần và transcript.text.done cho toàn bộ bản chép lời tệp; sự kiện cuối còn chứa các ngôn ngữ được phát hiện. Đây là truyền đầu ra của bản ghi đã được cung cấp theo luồng. Cách này hữu ích để hiển thị tiến độ tệp tải lên dài, còn sự kiện cuối xác định văn bản cần giữ làm kết quả hoàn chỉnh.</p><h4>Lượt đã chốt trong phiên Realtime</h4><p>GPT Transcribe còn có quy trình Realtime chuyên biệt qua WebSocket. Âm thanh được thêm vào bộ đệm đầu vào, rồi ứng dụng chủ động chốt một lượt âm thanh. Việc chép lời bắt đầu cho phần đã chốt đó và có thể phát các phần cập nhật trước sự kiện hoàn tất, kèm thông tin ngôn ngữ được phát hiện. Mô hình tự động dùng các lượt đã chép trước đó làm ngữ cảnh trong luồng phiên này của nhà sản xuất. Điều này khác phát liên tục văn bản phụ đề trực tiếp ngay khi âm thanh từ micro đến; OpenAI dùng tên GPT Live Transcribe cho quy trình liên tục đó.</p><p>Với nhiều lượt, giữ mã mục đầu vào cùng bản chép lời tương ứng. OpenAI cảnh báo sự kiện hoàn tất của các lượt khác nhau không nhất thiết đến theo thứ tự lời nói, nên gắn từng kết quả cuối với đầu vào đã chốt của nó, thay vì sắp hội thoại chỉ theo thời điểm hoàn tất. Thành phẩm hữu ích là bản chép lời có thứ tự ghép từ đúng các mục cuối, còn văn bản tạm thời được coi là tiến độ, không phải phát ngôn hoàn chỉnh riêng.</p><h4>Đầu ra chuyên biệt và giới hạn thực chất</h4><p>Cấu hình này không cung cấp cam kết chung về phụ đề, dấu thời gian, bản dịch hoặc nhãn người nói. Hướng dẫn chuyển đổi của OpenAI phân biệt các khả năng chuyên biệt đó: định dạng phụ đề gốc và thời điểm từng từ cần mô hình và định dạng tương thích, còn nhãn người nói dùng GPT-4o Transcribe Diarize. Kết quả tệp của GPT Transcribe là JSON, không phải phản hồi SRT, VTT hay dấu thời gian chi tiết có thể thay thế trực tiếp. Thẻ mô hình cụ thể không công bố hạn mức ngữ cảnh hay đầu ra tối đa bằng số, nên không được mặc định cửa sổ token của mô hình chat cho chép lời âm thanh.</p><p>Đối chiếu từ khó, số, giọng địa phương, tiếng ồn nền và việc đổi ngôn ngữ với bản ghi. Kiểm tra gợi ý liên quan cải thiện nhận dạng mà không đưa vào thuật ngữ chưa được nói, và bản chép lời cuối chứa cả đoạn kết âm thanh. Với kết quả đa ngôn ngữ, giữ nguyên lời đã nói trước khi chuẩn bị bất kỳ bản dịch nào. Các kiểm tra này giúp bản chép lời hữu ích làm tài liệu nguồn, đồng thời phân biệt rõ gợi ý ngữ cảnh, ngôn ngữ được phát hiện và lời nói đã nhận dạng.</p>",
  "aboutText": "GPT Transcribe là mô hình chuyển lời nói thành văn bản của OpenAI cho tệp âm thanh hoàn chỉnh, bản chép lời tệp trả theo luồng và lượt âm thanh đã chốt trong phiên Realtime. Mô hình nhận âm thanh cùng ngữ cảnh văn bản tùy chọn và trả văn bản được nhận dạng. Nhà sản xuất định vị mô hình để chép chính xác lời nói đã ghi âm theo ngôn ngữ gốc, gồm từ vựng chuyên ngành, bản ghi đa ngôn ngữ và việc chuyển ngôn ngữ trong lúc nói. Đầu ra hữu ích là bản chép lời vẫn gắn với bản ghi, kèm siêu dữ liệu ngôn ngữ được phát hiện khi mô hình dự đoán đủ tin cậy.\n\n### Chuẩn bị bản ghi hoàn chỉnh\n\nQuy trình chép lời tệp của OpenAI chấp nhận tệp tải lên tối đa 25 MB. Tài liệu endpoint hiện tại liệt kê đầu vào FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV và WebM, đồng thời khuyên có đủ siêu dữ liệu tệp để xác định định dạng, gồm đuôi tên tệp và loại nội dung phù hợp. Với bản ghi lớn hơn, hướng dẫn khuyên nén hoặc chia thành các tệp không quá 25 MB. Tránh cắt ngang câu, vì bỏ lời nói xung quanh có thể làm nhận dạng kém chính xác. Giữ các phần theo thứ tự và giữ vị trí của chúng trong bản ghi gốc.\n\nVới cuộc họp, phỏng vấn hoặc bài trình bày đã ghi âm, cung cấp âm thanh thực tế và xác định chủ đề cùng thuật ngữ có khả năng xuất hiện. Kết quả hữu ích là lời nói được nhận dạng, không phải tóm tắt suy đoán từ thảo luận. Giữ mã bản ghi cùng văn bản trả về để người kiểm tra tên, số hoặc cụm từ chưa rõ có thể quay về đúng nguồn. Bản chép lời sau đó có thể làm tài liệu cho quy trình tóm tắt, dịch hoặc biên tập riêng.\n\n### Ngữ cảnh, gợi ý từ khóa và ngôn ngữ dự kiến\n\nNhà sản xuất phân biệt ba loại hướng dẫn. Prompt cung cấp ngữ cảnh tự do về chủ đề hoặc hoàn cảnh bản ghi. Từ khóa cung cấp từ hoặc cụm từ nguyên văn dự kiến có trong lời nói. Danh sách ngôn ngữ xác định các ngôn ngữ dự kiến được nói. Với thảo luận sản phẩm song ngữ, mô tả hoàn cảnh trong prompt, liệt kê tên sản phẩm liên quan làm từ khóa và cung cấp các ngôn ngữ dự kiến. Đây là gợi ý nhận dạng, không phải chỉ dẫn chèn từ vựng chưa ai nói.\n\nGPT Transcribe dùng trường số nhiều languages thay cho trường số ít language cũ; OpenAI nói không gửi cả hai. Hướng dẫn chấp nhận mã ISO 639-1 được hỗ trợ, một số mã ISO 639-3 và mã ngôn ngữ khu vực của tiếng Trung, đồng thời từ chối giá trị không được hỗ trợ hoặc sai định dạng. Mỗi từ khóa phải nằm trên một dòng và không chứa dấu ngoặc góc, ký tự về đầu dòng hoặc ký tự xuống dòng. Từ khóa không hợp lệ hoặc prompt quá dài có thể khiến toàn bộ yêu cầu bị từ chối. Giữ ngữ cảnh liên quan và kiểm tra tên được gợi ý có thực sự xuất hiện trong âm thanh, thay vì coi danh sách gợi ý là bản chép lời.\n\n### Đầu ra JSON và dự đoán ngôn ngữ được phát hiện\n\nKết quả tệp được ghi là JSON chứa bản chép lời và các ngôn ngữ được phát hiện. Các dự đoán ngôn ngữ đó là đầu ra của mô hình, không phải bản sao gợi ý ngôn ngữ đã cung cấp. Danh sách ngôn ngữ rỗng là kết quả hợp lệ khi mô hình không dự đoán đủ tin cậy; nó không xác lập rằng bản ghi im lặng hoặc việc chép lời thất bại. Giữ văn bản được nhận dạng và siêu dữ liệu ngôn ngữ riêng để xử lý sau dùng từng phần đúng ý nghĩa.\n\n### Trả bản chép lời tệp theo luồng\n\nTệp hoàn chỉnh có thể tạo văn bản chép lời từng phần trong lúc xử lý. OpenAI mô tả sự kiện transcript.text.delta cho văn bản từng phần và transcript.text.done cho toàn bộ bản chép lời tệp; sự kiện cuối còn chứa các ngôn ngữ được phát hiện. Đây là truyền đầu ra của bản ghi đã được cung cấp theo luồng. Cách này hữu ích để hiển thị tiến độ tệp tải lên dài, còn sự kiện cuối xác định văn bản cần giữ làm kết quả hoàn chỉnh.\n\n### Lượt đã chốt trong phiên Realtime\n\nGPT Transcribe còn có quy trình Realtime chuyên biệt qua WebSocket. Âm thanh được thêm vào bộ đệm đầu vào, rồi ứng dụng chủ động chốt một lượt âm thanh. Việc chép lời bắt đầu cho phần đã chốt đó và có thể phát các phần cập nhật trước sự kiện hoàn tất, kèm thông tin ngôn ngữ được phát hiện. Mô hình tự động dùng các lượt đã chép trước đó làm ngữ cảnh trong luồng phiên này của nhà sản xuất. Điều này khác phát liên tục văn bản phụ đề trực tiếp ngay khi âm thanh từ micro đến; OpenAI dùng tên GPT Live Transcribe cho quy trình liên tục đó.\n\nVới nhiều lượt, giữ mã mục đầu vào cùng bản chép lời tương ứng. OpenAI cảnh báo sự kiện hoàn tất của các lượt khác nhau không nhất thiết đến theo thứ tự lời nói, nên gắn từng kết quả cuối với đầu vào đã chốt của nó, thay vì sắp hội thoại chỉ theo thời điểm hoàn tất. Thành phẩm hữu ích là bản chép lời có thứ tự ghép từ đúng các mục cuối, còn văn bản tạm thời được coi là tiến độ, không phải phát ngôn hoàn chỉnh riêng.\n\n### Đầu ra chuyên biệt và giới hạn thực chất\n\nCấu hình này không cung cấp cam kết chung về phụ đề, dấu thời gian, bản dịch hoặc nhãn người nói. Hướng dẫn chuyển đổi của OpenAI phân biệt các khả năng chuyên biệt đó: định dạng phụ đề gốc và thời điểm từng từ cần mô hình và định dạng tương thích, còn nhãn người nói dùng GPT-4o Transcribe Diarize. Kết quả tệp của GPT Transcribe là JSON, không phải phản hồi SRT, VTT hay dấu thời gian chi tiết có thể thay thế trực tiếp. Thẻ mô hình cụ thể không công bố hạn mức ngữ cảnh hay đầu ra tối đa bằng số, nên không được mặc định cửa sổ token của mô hình chat cho chép lời âm thanh.\n\nĐối chiếu từ khó, số, giọng địa phương, tiếng ồn nền và việc đổi ngôn ngữ với bản ghi. Kiểm tra gợi ý liên quan cải thiện nhận dạng mà không đưa vào thuật ngữ chưa được nói, và bản chép lời cuối chứa cả đoạn kết âm thanh. Với kết quả đa ngôn ngữ, giữ nguyên lời đã nói trước khi chuẩn bị bất kỳ bản dịch nào. Các kiểm tra này giúp bản chép lời hữu ích làm tài liệu nguồn, đồng thời phân biệt rõ gợi ý ngữ cảnh, ngôn ngữ được phát hiện và lời nói đã nhận dạng.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "ec59f994d5a98c941efca55f5e4eacf38eb910d1facdb728321bd9d432a17bb3",
    "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\">O</span><h2 id=\"sheet-title\">OpenAI: GPT Transcribe</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>OpenAI /</span><code>openai/gpt-transcribe</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|openai%2Fgpt-transcribe\">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\">GPT Transcribe chuyển lời nói đã ghi âm thành văn bản theo ngôn ngữ gốc, với prompt ngữ cảnh, gợi ý từ khóa nguyên văn và gợi ý nhiều ngôn ngữ. OpenAI mô tả chép lời tệp hoàn chỉnh, trả kết quả tệp theo luồng và chép lời sau khi chốt lượt âm thanh Realtime.</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>GPT Transcribe là mô hình chuyển lời nói thành văn bản của OpenAI cho tệp âm thanh hoàn chỉnh, bản chép lời tệp trả theo luồng và lượt âm thanh đã chốt trong phiên Realtime. Mô hình nhận âm thanh cùng ngữ cảnh văn bản tùy chọn và trả văn bản được nhận dạng. Nhà sản xuất định vị mô hình để chép chính xác lời nói đã ghi âm theo ngôn ngữ gốc, gồm từ vựng chuyên ngành, bản ghi đa ngôn ngữ và việc chuyển ngôn ngữ trong lúc nói. Đầu ra hữu ích là bản chép lời vẫn gắn với bản ghi, kèm siêu dữ liệu ngôn ngữ được phát hiện khi mô hình dự đoán đủ tin cậy.</p><h4>Chuẩn bị bản ghi hoàn chỉnh</h4><p>Quy trình chép lời tệp của OpenAI chấp nhận tệp tải lên tối đa 25 MB. Tài liệu endpoint hiện tại liệt kê đầu vào FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV và WebM, đồng thời khuyên có đủ siêu dữ liệu tệp để xác định định dạng, gồm đuôi tên tệp và loại nội dung phù hợp. Với bản ghi lớn hơn, hướng dẫn khuyên nén hoặc chia thành các tệp không quá 25 MB. Tránh cắt ngang câu, vì bỏ lời nói xung quanh có thể làm nhận dạng kém chính xác. Giữ các phần theo thứ tự và giữ vị trí của chúng trong bản ghi gốc.</p><p>Với cuộc họp, phỏng vấn hoặc bài trình bày đã ghi âm, cung cấp âm thanh thực tế và xác định chủ đề cùng thuật ngữ có khả năng xuất hiện. Kết quả hữu ích là lời nói được nhận dạng, không phải tóm tắt suy đoán từ thảo luận. Giữ mã bản ghi cùng văn bản trả về để người kiểm tra tên, số hoặc cụm từ chưa rõ có thể quay về đúng nguồn. Bản chép lời sau đó có thể làm tài liệu cho quy trình tóm tắt, dịch hoặc biên tập riêng.</p><h4>Ngữ cảnh, gợi ý từ khóa và ngôn ngữ dự kiến</h4><p>Nhà sản xuất phân biệt ba loại hướng dẫn. Prompt cung cấp ngữ cảnh tự do về chủ đề hoặc hoàn cảnh bản ghi. Từ khóa cung cấp từ hoặc cụm từ nguyên văn dự kiến có trong lời nói. Danh sách ngôn ngữ xác định các ngôn ngữ dự kiến được nói. Với thảo luận sản phẩm song ngữ, mô tả hoàn cảnh trong prompt, liệt kê tên sản phẩm liên quan làm từ khóa và cung cấp các ngôn ngữ dự kiến. Đây là gợi ý nhận dạng, không phải chỉ dẫn chèn từ vựng chưa ai nói.</p><p>GPT Transcribe dùng trường số nhiều languages thay cho trường số ít language cũ; OpenAI nói không gửi cả hai. Hướng dẫn chấp nhận mã ISO 639-1 được hỗ trợ, một số mã ISO 639-3 và mã ngôn ngữ khu vực của tiếng Trung, đồng thời từ chối giá trị không được hỗ trợ hoặc sai định dạng. Mỗi từ khóa phải nằm trên một dòng và không chứa dấu ngoặc góc, ký tự về đầu dòng hoặc ký tự xuống dòng. Từ khóa không hợp lệ hoặc prompt quá dài có thể khiến toàn bộ yêu cầu bị từ chối. Giữ ngữ cảnh liên quan và kiểm tra tên được gợi ý có thực sự xuất hiện trong âm thanh, thay vì coi danh sách gợi ý là bản chép lời.</p><h4>Đầu ra JSON và dự đoán ngôn ngữ được phát hiện</h4><p>Kết quả tệp được ghi là JSON chứa bản chép lời và các ngôn ngữ được phát hiện. Các dự đoán ngôn ngữ đó là đầu ra của mô hình, không phải bản sao gợi ý ngôn ngữ đã cung cấp. Danh sách ngôn ngữ rỗng là kết quả hợp lệ khi mô hình không dự đoán đủ tin cậy; nó không xác lập rằng bản ghi im lặng hoặc việc chép lời thất bại. Giữ văn bản được nhận dạng và siêu dữ liệu ngôn ngữ riêng để xử lý sau dùng từng phần đúng ý nghĩa.</p><h4>Trả bản chép lời tệp theo luồng</h4><p>Tệp hoàn chỉnh có thể tạo văn bản chép lời từng phần trong lúc xử lý. OpenAI mô tả sự kiện transcript.text.delta cho văn bản từng phần và transcript.text.done cho toàn bộ bản chép lời tệp; sự kiện cuối còn chứa các ngôn ngữ được phát hiện. Đây là truyền đầu ra của bản ghi đã được cung cấp theo luồng. Cách này hữu ích để hiển thị tiến độ tệp tải lên dài, còn sự kiện cuối xác định văn bản cần giữ làm kết quả hoàn chỉnh.</p><h4>Lượt đã chốt trong phiên Realtime</h4><p>GPT Transcribe còn có quy trình Realtime chuyên biệt qua WebSocket. Âm thanh được thêm vào bộ đệm đầu vào, rồi ứng dụng chủ động chốt một lượt âm thanh. Việc chép lời bắt đầu cho phần đã chốt đó và có thể phát các phần cập nhật trước sự kiện hoàn tất, kèm thông tin ngôn ngữ được phát hiện. Mô hình tự động dùng các lượt đã chép trước đó làm ngữ cảnh trong luồng phiên này của nhà sản xuất. Điều này khác phát liên tục văn bản phụ đề trực tiếp ngay khi âm thanh từ micro đến; OpenAI dùng tên GPT Live Transcribe cho quy trình liên tục đó.</p><p>Với nhiều lượt, giữ mã mục đầu vào cùng bản chép lời tương ứng. OpenAI cảnh báo sự kiện hoàn tất của các lượt khác nhau không nhất thiết đến theo thứ tự lời nói, nên gắn từng kết quả cuối với đầu vào đã chốt của nó, thay vì sắp hội thoại chỉ theo thời điểm hoàn tất. Thành phẩm hữu ích là bản chép lời có thứ tự ghép từ đúng các mục cuối, còn văn bản tạm thời được coi là tiến độ, không phải phát ngôn hoàn chỉnh riêng.</p><h4>Đầu ra chuyên biệt và giới hạn thực chất</h4><p>Cấu hình này không cung cấp cam kết chung về phụ đề, dấu thời gian, bản dịch hoặc nhãn người nói. Hướng dẫn chuyển đổi của OpenAI phân biệt các khả năng chuyên biệt đó: định dạng phụ đề gốc và thời điểm từng từ cần mô hình và định dạng tương thích, còn nhãn người nói dùng GPT-4o Transcribe Diarize. Kết quả tệp của GPT Transcribe là JSON, không phải phản hồi SRT, VTT hay dấu thời gian chi tiết có thể thay thế trực tiếp. Thẻ mô hình cụ thể không công bố hạn mức ngữ cảnh hay đầu ra tối đa bằng số, nên không được mặc định cửa sổ token của mô hình chat cho chép lời âm thanh.</p><p>Đối chiếu từ khó, số, giọng địa phương, tiếng ồn nền và việc đổi ngôn ngữ với bản ghi. Kiểm tra gợi ý liên quan cải thiện nhận dạng mà không đưa vào thuật ngữ chưa được nói, và bản chép lời cuối chứa cả đoạn kết âm thanh. Với kết quả đa ngôn ngữ, giữ nguyên lời đã nói trước khi chuẩn bị bất kỳ bản dịch nào. Các kiểm tra này giúp bản chép lời hữu ích làm tài liệu nguồn, đồng thời phân biệt rõ gợi ý ngữ cảnh, ngôn ngữ được phát hiện và lời nói đã nhận dạng.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Có trên Ailoot · đầu vào &amp; phương thức</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · Phiên âm</b> <code>POST /v1/audio/transcriptions</code></summary><dl class=\"method-capabilities\"><div><dt>Đầu vào</dt><dd><code>audio</code></dd></div><div><dt>Đầu ra</dt><dd><code>text</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Trường</th><th>Loại</th><th>Yêu cầu</th><th>Giá trị &amp; giới hạn</th><th>Mặc định</th></tr></thead><tbody><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>Bắt buộc</td><td data-cell-label=\"Giá trị &amp; giới hạn\"><span class=\"card-cell-label\">Giá trị &amp; giới hạn</span><div>openai/gpt-transcribe</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.00015</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-2158-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2158-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-2158-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2158-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;openai/gpt-transcribe&#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=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</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=openai%2Fgpt-transcribe&amp;route=Ultra&amp;caller=openai%2Fgpt-transcribe&amp;fmt=transcriptions\"><code>openai/gpt-transcribe</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "openai/gpt-transcribe",
        "fmt": "transcriptions",
        "http": "POST",
        "path": "/v1/audio/transcriptions",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|transcriptions|/v1/audio/transcriptions|openai%2Fgpt-transcribe",
      "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": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "a62ecef26b8e3af72aef15fe1ee5d8595f924a392ec8626f8dd04b35e7d73191",
    "input_html_sha256": "3893bc06da7b8ccee52f3f00e29bb018e9255bcd2d3382d2d9179b497811cb89",
    "private_audit_sha256": "83dec6ea6c6984dbc83f50d62866c4c3f9b99210fdeb5195dbead36d0b57cf82",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/openai-gpt-transcribe/",
    "description": "GPT Transcribe chuyển lời nói đã ghi âm thành văn bản theo ngôn ngữ gốc, với prompt ngữ cảnh, gợi ý từ khóa nguyên văn và gợi ý nhiều ngôn ngữ. OpenAI mô tả chép lời tệp hoàn chỉnh, trả kết quả tệp theo luồng và chép lời sau khi chốt lượt âm thanh Realtime.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/openai-gpt-transcribe/index.md",
    "title": "OpenAI: GPT Transcribe — Ailoot",
    "url": "https://ailoot.ai/models/vi/openai-gpt-transcribe/"
  },
  "rawModel": {
    "about": "GPT Transcribe là mô hình chuyển lời nói thành văn bản của OpenAI cho tệp âm thanh hoàn chỉnh, bản chép lời tệp trả theo luồng và lượt âm thanh đã chốt trong phiên Realtime. Mô hình nhận âm thanh cùng ngữ cảnh văn bản tùy chọn và trả văn bản được nhận dạng. Nhà sản xuất định vị mô hình để chép chính xác lời nói đã ghi âm theo ngôn ngữ gốc, gồm từ vựng chuyên ngành, bản ghi đa ngôn ngữ và việc chuyển ngôn ngữ trong lúc nói. Đầu ra hữu ích là bản chép lời vẫn gắn với bản ghi, kèm siêu dữ liệu ngôn ngữ được phát hiện khi mô hình dự đoán đủ tin cậy.\n\n### Chuẩn bị bản ghi hoàn chỉnh\n\nQuy trình chép lời tệp của OpenAI chấp nhận tệp tải lên tối đa 25 MB. Tài liệu endpoint hiện tại liệt kê đầu vào FLAC, MP3, MP4, MPEG, MPGA, M4A, OGG, WAV và WebM, đồng thời khuyên có đủ siêu dữ liệu tệp để xác định định dạng, gồm đuôi tên tệp và loại nội dung phù hợp. Với bản ghi lớn hơn, hướng dẫn khuyên nén hoặc chia thành các tệp không quá 25 MB. Tránh cắt ngang câu, vì bỏ lời nói xung quanh có thể làm nhận dạng kém chính xác. Giữ các phần theo thứ tự và giữ vị trí của chúng trong bản ghi gốc.\n\nVới cuộc họp, phỏng vấn hoặc bài trình bày đã ghi âm, cung cấp âm thanh thực tế và xác định chủ đề cùng thuật ngữ có khả năng xuất hiện. Kết quả hữu ích là lời nói được nhận dạng, không phải tóm tắt suy đoán từ thảo luận. Giữ mã bản ghi cùng văn bản trả về để người kiểm tra tên, số hoặc cụm từ chưa rõ có thể quay về đúng nguồn. Bản chép lời sau đó có thể làm tài liệu cho quy trình tóm tắt, dịch hoặc biên tập riêng.\n\n### Ngữ cảnh, gợi ý từ khóa và ngôn ngữ dự kiến\n\nNhà sản xuất phân biệt ba loại hướng dẫn. Prompt cung cấp ngữ cảnh tự do về chủ đề hoặc hoàn cảnh bản ghi. Từ khóa cung cấp từ hoặc cụm từ nguyên văn dự kiến có trong lời nói. Danh sách ngôn ngữ xác định các ngôn ngữ dự kiến được nói. Với thảo luận sản phẩm song ngữ, mô tả hoàn cảnh trong prompt, liệt kê tên sản phẩm liên quan làm từ khóa và cung cấp các ngôn ngữ dự kiến. Đây là gợi ý nhận dạng, không phải chỉ dẫn chèn từ vựng chưa ai nói.\n\nGPT Transcribe dùng trường số nhiều languages thay cho trường số ít language cũ; OpenAI nói không gửi cả hai. Hướng dẫn chấp nhận mã ISO 639-1 được hỗ trợ, một số mã ISO 639-3 và mã ngôn ngữ khu vực của tiếng Trung, đồng thời từ chối giá trị không được hỗ trợ hoặc sai định dạng. Mỗi từ khóa phải nằm trên một dòng và không chứa dấu ngoặc góc, ký tự về đầu dòng hoặc ký tự xuống dòng. Từ khóa không hợp lệ hoặc prompt quá dài có thể khiến toàn bộ yêu cầu bị từ chối. Giữ ngữ cảnh liên quan và kiểm tra tên được gợi ý có thực sự xuất hiện trong âm thanh, thay vì coi danh sách gợi ý là bản chép lời.\n\n### Đầu ra JSON và dự đoán ngôn ngữ được phát hiện\n\nKết quả tệp được ghi là JSON chứa bản chép lời và các ngôn ngữ được phát hiện. Các dự đoán ngôn ngữ đó là đầu ra của mô hình, không phải bản sao gợi ý ngôn ngữ đã cung cấp. Danh sách ngôn ngữ rỗng là kết quả hợp lệ khi mô hình không dự đoán đủ tin cậy; nó không xác lập rằng bản ghi im lặng hoặc việc chép lời thất bại. Giữ văn bản được nhận dạng và siêu dữ liệu ngôn ngữ riêng để xử lý sau dùng từng phần đúng ý nghĩa.\n\n### Trả bản chép lời tệp theo luồng\n\nTệp hoàn chỉnh có thể tạo văn bản chép lời từng phần trong lúc xử lý. OpenAI mô tả sự kiện transcript.text.delta cho văn bản từng phần và transcript.text.done cho toàn bộ bản chép lời tệp; sự kiện cuối còn chứa các ngôn ngữ được phát hiện. Đây là truyền đầu ra của bản ghi đã được cung cấp theo luồng. Cách này hữu ích để hiển thị tiến độ tệp tải lên dài, còn sự kiện cuối xác định văn bản cần giữ làm kết quả hoàn chỉnh.\n\n### Lượt đã chốt trong phiên Realtime\n\nGPT Transcribe còn có quy trình Realtime chuyên biệt qua WebSocket. Âm thanh được thêm vào bộ đệm đầu vào, rồi ứng dụng chủ động chốt một lượt âm thanh. Việc chép lời bắt đầu cho phần đã chốt đó và có thể phát các phần cập nhật trước sự kiện hoàn tất, kèm thông tin ngôn ngữ được phát hiện. Mô hình tự động dùng các lượt đã chép trước đó làm ngữ cảnh trong luồng phiên này của nhà sản xuất. Điều này khác phát liên tục văn bản phụ đề trực tiếp ngay khi âm thanh từ micro đến; OpenAI dùng tên GPT Live Transcribe cho quy trình liên tục đó.\n\nVới nhiều lượt, giữ mã mục đầu vào cùng bản chép lời tương ứng. OpenAI cảnh báo sự kiện hoàn tất của các lượt khác nhau không nhất thiết đến theo thứ tự lời nói, nên gắn từng kết quả cuối với đầu vào đã chốt của nó, thay vì sắp hội thoại chỉ theo thời điểm hoàn tất. Thành phẩm hữu ích là bản chép lời có thứ tự ghép từ đúng các mục cuối, còn văn bản tạm thời được coi là tiến độ, không phải phát ngôn hoàn chỉnh riêng.\n\n### Đầu ra chuyên biệt và giới hạn thực chất\n\nCấu hình này không cung cấp cam kết chung về phụ đề, dấu thời gian, bản dịch hoặc nhãn người nói. Hướng dẫn chuyển đổi của OpenAI phân biệt các khả năng chuyên biệt đó: định dạng phụ đề gốc và thời điểm từng từ cần mô hình và định dạng tương thích, còn nhãn người nói dùng GPT-4o Transcribe Diarize. Kết quả tệp của GPT Transcribe là JSON, không phải phản hồi SRT, VTT hay dấu thời gian chi tiết có thể thay thế trực tiếp. Thẻ mô hình cụ thể không công bố hạn mức ngữ cảnh hay đầu ra tối đa bằng số, nên không được mặc định cửa sổ token của mô hình chat cho chép lời âm thanh.\n\nĐối chiếu từ khó, số, giọng địa phương, tiếng ồn nền và việc đổi ngôn ngữ với bản ghi. Kiểm tra gợi ý liên quan cải thiện nhận dạng mà không đưa vào thuật ngữ chưa được nói, và bản chép lời cuối chứa cả đoạn kết âm thanh. Với kết quả đa ngôn ngữ, giữ nguyên lời đã nói trước khi chuẩn bị bất kỳ bản dịch nào. Các kiểm tra này giúp bản chép lời hữu ích làm tài liệu nguồn, đồng thời phân biệt rõ gợi ý ngữ cảnh, ngôn ngữ được phát hiện và lời nói đã nhận dạng.",
    "alias_of": null,
    "aliases": [],
    "author": "OpenAI",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "audio"
      ],
      "manufacturer_output": [
        "transcription"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
    "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": [
                  "openai/gpt-transcribe"
                ],
                "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": [
                    "openai/gpt-transcribe"
                  ],
                  "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": "openai/gpt-transcribe"
              },
              "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.00015",
                "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.00015",
                "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': 'openai/gpt-transcribe', '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.00015
          }
        },
        "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.00015",
                "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.00015",
                "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": "openai/gpt-transcribe",
        "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.00015",
            "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.00015",
            "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": "openai/gpt-transcribe",
        "request_model_id": "openai/gpt-transcribe",
        "route_label": "Ultra"
      }
    ],
    "name": "OpenAI: GPT Transcribe",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "short": "GPT Transcribe chuyển lời nói đã ghi âm thành văn bản theo ngôn ngữ gốc, với prompt ngữ cảnh, gợi ý từ khóa nguyên văn và gợi ý nhiều ngôn ngữ. OpenAI mô tả chép lời tệp hoàn chỉnh, trả kết quả tệp theo luồng và chép lời sau khi chốt lượt âm thanh Realtime."
  },
  "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": "GPT Transcribe chuyển lời nói đã ghi âm thành văn bản theo ngôn ngữ gốc, với prompt ngữ cảnh, gợi ý từ khóa nguyên văn và gợi ý nhiều ngôn ngữ. OpenAI mô tả chép lời tệp hoàn chỉnh, trả kết quả tệp theo luồng và chép lời sau khi chốt lượt âm thanh Realtime.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "f9bd4f2d0bd31316466a0f229eccfb84c911eb6916510c2f0c4e4cff33f46c2e",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "9ce08767b68fab9667c08e7d3baee26ea125ac8582fae94cc9c11fe45c4d3175"
}
