{
  "aboutHtml": "<p>Qwen-Audio-3.0-TTS-Flash chuyển kịch bản được cung cấp thành giọng nói, với phiên bản Flash tập trung vào tương tác thời gian thực. Qwen xác định trợ lý giọng nói, hội thoại tương tác và dịch vụ khách hàng thông minh là các ứng dụng chính. So với phiên bản trước, nhà sản xuất mô tả khả năng hỗ trợ rộng hơn cho các ngôn ngữ ít tài nguyên và phương ngữ Trung Quốc, cách thể hiện phương ngữ chân thực hơn, cùng khả năng kiểm soát tốt hơn về cảm xúc, sắc thái, đặc tính giọng, tốc độ, âm lượng và phong cách nói. Nhà sản xuất cũng cho biết độ rõ và tính ổn định được cải thiện trong điều kiện âm học có tiếng ồn hoặc tiếng vang. Đây là tổng hợp âm thanh từ văn bản, không phải nhận dạng lời nói đầu vào hay mô hình hội thoại bằng giọng nói.</p><p>Flash ưu tiên thời điểm bắt đầu phát giọng nói trong một lượt trao đổi tương tác. Qwen công bố độ trễ gói đầu tiên không quá 200 mili giây cho tính năng tổng hợp thời gian thực của mô hình này; hướng dẫn sử dụng cũng lưu ý rằng việc thiết lập kết nối ban đầu góp phần vào độ trễ đo được của lần gửi đầu tiên. Chuẩn bị riêng nội dung cần đọc và cách thể hiện mong muốn. Với câu trả lời của trợ lý giọng nói, một yêu cầu minh họa có thể kết hợp câu trả lời ngắn gọn với chỉ dẫn đọc bình tĩnh, rõ ràng. Kết quả cần dùng là giọng nói được tạo cho văn bản đó, còn ứng dụng đảm nhiệm việc phát âm thanh và phần hội thoại bao quanh.</p><p>Danh sách giọng hệ thống của nhà sản xuất có các lựa chọn riêng cho mô hình, chẳng hạn Long An Feng Yue với cách nói tự nhiên, thân thiện và Long An Xiao Xin với cách nói thân thiện, sinh động; cả hai đều được liệt kê cho tiếng Phổ thông và tiếng Anh. Danh sách còn có các giọng tiếng Anh như loongmary mang giọng Anh và loongjohn mang giọng Mỹ bình tĩnh, thân thiện. Mỗi mô hình còn có hơn 500 giọng cơ sở. Qwen khuyến nghị bắt đầu bằng giọng hệ thống để có tính nhất quán và nghe các bản xem trước khi chọn giọng cơ sở. Giọng phải thuộc mô hình đã chọn và kịch bản phải sử dụng ngôn ngữ mà giọng đó hỗ trợ.</p><p>Các giọng nhân bản mở rộng phạm vi ngôn ngữ được nêu trong tài liệu sang tiếng Trung, Anh, Nhật, Hàn, Nga, Pháp, Đức, Bồ Đào Nha, Thái, Indonesia, Việt, Tây Ban Nha, Ý, Mã Lai, Filipino và Ả Rập. Phạm vi tiếng Trung gồm tiếng Phổ thông, Quảng Đông cùng các biến thể Trùng Khánh, Đông Bắc, Cam Túc, Quý Châu, Chiết Giang, Hà Bắc, Hà Nam, Hồ Bắc, Hồ Nam, Giang Tây, Ninh Ba, Ninh Hạ, Thanh Đảo, Thiểm Tây, Sơn Tây, Sơn Đông, Thượng Hải, Tứ Xuyên và Vân Nam; phương ngữ được chọn thông qua chỉ dẫn. Bảng thông tin mô hình hỗ trợ nhân bản giọng từ mẫu và phân biệt tính năng này với việc tạo giọng mới chỉ từ mô tả bằng văn bản, vốn không được phiên bản này hỗ trợ.</p><p>Để nhân bản giọng, nhà sản xuất khuyến nghị bản ghi dài 10–20 giây, tối đa 60 giây và dung lượng tệp không quá 10 MB. Các định dạng mẫu được hỗ trợ là WAV 16 bit, MP3 và M4A, với tần số lấy mẫu ít nhất 16 kHz. Bản ghi cần có ít nhất năm giây lời nói liên tục, rõ ràng; các khoảng dừng khác không nên dài quá hai giây. Tránh tiếng nền, giọng của người khác và tiếng hát. Âm thanh stereo được chấp nhận nhưng chỉ kênh đầu tiên được xử lý. Quy trình nhân bản trả về mã định danh giọng gắn với đúng mô hình đích, và quá trình tổng hợp sử dụng mã đó khi giọng đã sẵn sàng. Cùng một bản ghi cần tạo các giọng nhân bản riêng cho Flash và Plus.</p><p>Chỉ dẫn bằng ngôn ngữ tự nhiên điều khiển cách nói của cả giọng hệ thống lẫn giọng nhân bản. Mô tả những đặc điểm nghe được như sắc thái nhẹ nhàng, phát âm rõ hoặc nhịp nói chậm hơn một chút. Các thẻ chèn trong văn bản cung cấp một cách điều khiển khác: [empathetic] hoặc [serious] đặt phong cách cho phần văn bản tiếp theo, còn [laughing] hoặc [sighing] chèn hiệu ứng giọng tại một vị trí cụ thể. Một thẻ điều khiển có hiệu lực cho đến khi xuất hiện thẻ điều khiển khác hoặc khi hệ thống tự động phân đoạn câu. Các thẻ cảm xúc và biểu đạt này chỉ được nêu trong tài liệu cho chế độ truyền luồng một chiều, không phải chế độ nhập văn bản hai chiều. Chuẩn bị câu cần biểu đạt trong chế độ phù hợp với các điều khiển đó.</p><p>Giao diện giọng nói của nhà sản xuất hỗ trợ PCM, WAV, MP3 và Opus. Các tần số lấy mẫu được liệt kê là 8.000, 16.000, 22.050, 24.000, 44.100 và 48.000 Hz, với MP3 và 22.050 Hz là giá trị mặc định. Âm lượng có phạm vi từ 0 đến 100; tốc độ nói và cao độ đều có phạm vi từ 0,5 đến 2,0. MP3 và Opus còn có thiết lập tốc độ bit từ 6 đến 510 kbps. Chọn định dạng và tần số lấy mẫu phù hợp với trình phát hoặc quy trình xử lý dự kiến. Với ứng dụng tương tác, nhà sản xuất mô tả trong tài liệu các khung âm thanh dạng luồng và siêu dữ liệu câu; dấu thời gian ở cấp từ có trong đầu ra dạng luồng cho các giọng đủ điều kiện, bao gồm giọng nhân bản.</p><p>Giao thức văn bản WebSocket được nêu trong tài liệu chấp nhận tối đa 20.000 ký tự trong một thông điệp văn bản và tổng cộng 200.000 ký tự trong một tác vụ, với khoảng cách giữa các lần gửi không quá 23 giây. Đây là giới hạn giao thức của nhà sản xuất, không phải giới hạn phổ quát về thời lượng đầu ra của mô hình. Giao thức hỗ trợ hủy lượt tổng hợp hiện tại và bắt đầu tác vụ tiếp theo trên cùng kết nối. Giữ các đoạn văn bản đúng thứ tự cần đọc và kết thúc đầu vào khi kịch bản đã hoàn tất. Để chuẩn bị phát âm, nhà sản xuất mô tả trong tài liệu gợi ý ngôn ngữ đích, chú thích pinyin và thay thế văn bản, hữu ích khi chữ số, từ viết tắt hoặc ký hiệu được đọc không như mong muốn.</p><p>SSML là một lựa chọn đánh dấu riêng với điều kiện về giọng và chế độ tương tác: Qwen nêu trong tài liệu lựa chọn này cho giọng nhân bản, với lời gọi không truyền luồng hoặc truyền luồng một chiều, và chỉ một lần gửi văn bản khi SSML được bật. Không nên mặc định rằng mọi giọng có sẵn hoặc luồng hai chiều đều hỗ trợ SSML. Với hội thoại thông thường, hãy bắt đầu bằng giọng tương thích, kịch bản lời nói rõ ràng và chỉ dẫn cụ thể về cách thể hiện; bổ sung điều khiển phát âm hoặc biểu cảm có mục tiêu khi tác vụ yêu cầu. Cách này giữ hồ sơ Flash tập trung vào giọng nói phản hồi nhanh từ văn bản đã chuẩn bị thay vì các khả năng của những mô hình âm thanh Qwen khác.</p>",
  "aboutText": "Qwen-Audio-3.0-TTS-Flash chuyển kịch bản được cung cấp thành giọng nói, với phiên bản Flash tập trung vào tương tác thời gian thực. Qwen xác định trợ lý giọng nói, hội thoại tương tác và dịch vụ khách hàng thông minh là các ứng dụng chính. So với phiên bản trước, nhà sản xuất mô tả khả năng hỗ trợ rộng hơn cho các ngôn ngữ ít tài nguyên và phương ngữ Trung Quốc, cách thể hiện phương ngữ chân thực hơn, cùng khả năng kiểm soát tốt hơn về cảm xúc, sắc thái, đặc tính giọng, tốc độ, âm lượng và phong cách nói. Nhà sản xuất cũng cho biết độ rõ và tính ổn định được cải thiện trong điều kiện âm học có tiếng ồn hoặc tiếng vang. Đây là tổng hợp âm thanh từ văn bản, không phải nhận dạng lời nói đầu vào hay mô hình hội thoại bằng giọng nói.\n\nFlash ưu tiên thời điểm bắt đầu phát giọng nói trong một lượt trao đổi tương tác. Qwen công bố độ trễ gói đầu tiên không quá 200 mili giây cho tính năng tổng hợp thời gian thực của mô hình này; hướng dẫn sử dụng cũng lưu ý rằng việc thiết lập kết nối ban đầu góp phần vào độ trễ đo được của lần gửi đầu tiên. Chuẩn bị riêng nội dung cần đọc và cách thể hiện mong muốn. Với câu trả lời của trợ lý giọng nói, một yêu cầu minh họa có thể kết hợp câu trả lời ngắn gọn với chỉ dẫn đọc bình tĩnh, rõ ràng. Kết quả cần dùng là giọng nói được tạo cho văn bản đó, còn ứng dụng đảm nhiệm việc phát âm thanh và phần hội thoại bao quanh.\n\nDanh sách giọng hệ thống của nhà sản xuất có các lựa chọn riêng cho mô hình, chẳng hạn Long An Feng Yue với cách nói tự nhiên, thân thiện và Long An Xiao Xin với cách nói thân thiện, sinh động; cả hai đều được liệt kê cho tiếng Phổ thông và tiếng Anh. Danh sách còn có các giọng tiếng Anh như loongmary mang giọng Anh và loongjohn mang giọng Mỹ bình tĩnh, thân thiện. Mỗi mô hình còn có hơn 500 giọng cơ sở. Qwen khuyến nghị bắt đầu bằng giọng hệ thống để có tính nhất quán và nghe các bản xem trước khi chọn giọng cơ sở. Giọng phải thuộc mô hình đã chọn và kịch bản phải sử dụng ngôn ngữ mà giọng đó hỗ trợ.\n\nCác giọng nhân bản mở rộng phạm vi ngôn ngữ được nêu trong tài liệu sang tiếng Trung, Anh, Nhật, Hàn, Nga, Pháp, Đức, Bồ Đào Nha, Thái, Indonesia, Việt, Tây Ban Nha, Ý, Mã Lai, Filipino và Ả Rập. Phạm vi tiếng Trung gồm tiếng Phổ thông, Quảng Đông cùng các biến thể Trùng Khánh, Đông Bắc, Cam Túc, Quý Châu, Chiết Giang, Hà Bắc, Hà Nam, Hồ Bắc, Hồ Nam, Giang Tây, Ninh Ba, Ninh Hạ, Thanh Đảo, Thiểm Tây, Sơn Tây, Sơn Đông, Thượng Hải, Tứ Xuyên và Vân Nam; phương ngữ được chọn thông qua chỉ dẫn. Bảng thông tin mô hình hỗ trợ nhân bản giọng từ mẫu và phân biệt tính năng này với việc tạo giọng mới chỉ từ mô tả bằng văn bản, vốn không được phiên bản này hỗ trợ.\n\nĐể nhân bản giọng, nhà sản xuất khuyến nghị bản ghi dài 10–20 giây, tối đa 60 giây và dung lượng tệp không quá 10 MB. Các định dạng mẫu được hỗ trợ là WAV 16 bit, MP3 và M4A, với tần số lấy mẫu ít nhất 16 kHz. Bản ghi cần có ít nhất năm giây lời nói liên tục, rõ ràng; các khoảng dừng khác không nên dài quá hai giây. Tránh tiếng nền, giọng của người khác và tiếng hát. Âm thanh stereo được chấp nhận nhưng chỉ kênh đầu tiên được xử lý. Quy trình nhân bản trả về mã định danh giọng gắn với đúng mô hình đích, và quá trình tổng hợp sử dụng mã đó khi giọng đã sẵn sàng. Cùng một bản ghi cần tạo các giọng nhân bản riêng cho Flash và Plus.\n\nChỉ dẫn bằng ngôn ngữ tự nhiên điều khiển cách nói của cả giọng hệ thống lẫn giọng nhân bản. Mô tả những đặc điểm nghe được như sắc thái nhẹ nhàng, phát âm rõ hoặc nhịp nói chậm hơn một chút. Các thẻ chèn trong văn bản cung cấp một cách điều khiển khác: [empathetic] hoặc [serious] đặt phong cách cho phần văn bản tiếp theo, còn [laughing] hoặc [sighing] chèn hiệu ứng giọng tại một vị trí cụ thể. Một thẻ điều khiển có hiệu lực cho đến khi xuất hiện thẻ điều khiển khác hoặc khi hệ thống tự động phân đoạn câu. Các thẻ cảm xúc và biểu đạt này chỉ được nêu trong tài liệu cho chế độ truyền luồng một chiều, không phải chế độ nhập văn bản hai chiều. Chuẩn bị câu cần biểu đạt trong chế độ phù hợp với các điều khiển đó.\n\nGiao diện giọng nói của nhà sản xuất hỗ trợ PCM, WAV, MP3 và Opus. Các tần số lấy mẫu được liệt kê là 8.000, 16.000, 22.050, 24.000, 44.100 và 48.000 Hz, với MP3 và 22.050 Hz là giá trị mặc định. Âm lượng có phạm vi từ 0 đến 100; tốc độ nói và cao độ đều có phạm vi từ 0,5 đến 2,0. MP3 và Opus còn có thiết lập tốc độ bit từ 6 đến 510 kbps. Chọn định dạng và tần số lấy mẫu phù hợp với trình phát hoặc quy trình xử lý dự kiến. Với ứng dụng tương tác, nhà sản xuất mô tả trong tài liệu các khung âm thanh dạng luồng và siêu dữ liệu câu; dấu thời gian ở cấp từ có trong đầu ra dạng luồng cho các giọng đủ điều kiện, bao gồm giọng nhân bản.\n\nGiao thức văn bản WebSocket được nêu trong tài liệu chấp nhận tối đa 20.000 ký tự trong một thông điệp văn bản và tổng cộng 200.000 ký tự trong một tác vụ, với khoảng cách giữa các lần gửi không quá 23 giây. Đây là giới hạn giao thức của nhà sản xuất, không phải giới hạn phổ quát về thời lượng đầu ra của mô hình. Giao thức hỗ trợ hủy lượt tổng hợp hiện tại và bắt đầu tác vụ tiếp theo trên cùng kết nối. Giữ các đoạn văn bản đúng thứ tự cần đọc và kết thúc đầu vào khi kịch bản đã hoàn tất. Để chuẩn bị phát âm, nhà sản xuất mô tả trong tài liệu gợi ý ngôn ngữ đích, chú thích pinyin và thay thế văn bản, hữu ích khi chữ số, từ viết tắt hoặc ký hiệu được đọc không như mong muốn.\n\nSSML là một lựa chọn đánh dấu riêng với điều kiện về giọng và chế độ tương tác: Qwen nêu trong tài liệu lựa chọn này cho giọng nhân bản, với lời gọi không truyền luồng hoặc truyền luồng một chiều, và chỉ một lần gửi văn bản khi SSML được bật. Không nên mặc định rằng mọi giọng có sẵn hoặc luồng hai chiều đều hỗ trợ SSML. Với hội thoại thông thường, hãy bắt đầu bằng giọng tương thích, kịch bản lời nói rõ ràng và chỉ dẫn cụ thể về cách thể hiện; bổ sung điều khiển phát âm hoặc biểu cảm có mục tiêu khi tác vụ yêu cầu. Cách này giữ hồ sơ Flash tập trung vào giọng nói phản hồi nhanh từ văn bản đã chuẩn bị thay vì các khả năng của những mô hình âm thanh Qwen khác.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "7c28428ba3453a79e36a185750488ff15d8a70b7f42c80818607ac0e3aad0ca8",
    "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\">Al</span><h2 id=\"sheet-title\">Qwen: Qwen-Audio-3.0-TTS Flash</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"Đóng\">×</button></div><div class=\"idline\"><span>Alibaba /</span><code>qwen/qwen-audio-3.0-tts-flash</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|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash\">Tổng hợp giọng nói</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\">Qwen-Audio-3.0-TTS-Flash là mô hình chuyển văn bản thành giọng nói của Qwen, tập trung vào trợ lý giọng nói phản hồi nhanh và hội thoại tương tác. Mô hình kết hợp tổng hợp giọng nói dạng luồng, các giọng có sẵn hoặc được nhân bản dành riêng cho mô hình, cùng chỉ dẫn hoặc thẻ để tạo giọng nói giàu biểu cảm.</p><dl class=\"card-io\" data-card-io><div><dt>Đầu vào được chấp nhận</dt><dd>Văn bản</dd></div><div><dt>Kết quả</dt><dd>Âm thanh</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>Qwen-Audio-3.0-TTS-Flash chuyển kịch bản được cung cấp thành giọng nói, với phiên bản Flash tập trung vào tương tác thời gian thực. Qwen xác định trợ lý giọng nói, hội thoại tương tác và dịch vụ khách hàng thông minh là các ứng dụng chính. So với phiên bản trước, nhà sản xuất mô tả khả năng hỗ trợ rộng hơn cho các ngôn ngữ ít tài nguyên và phương ngữ Trung Quốc, cách thể hiện phương ngữ chân thực hơn, cùng khả năng kiểm soát tốt hơn về cảm xúc, sắc thái, đặc tính giọng, tốc độ, âm lượng và phong cách nói. Nhà sản xuất cũng cho biết độ rõ và tính ổn định được cải thiện trong điều kiện âm học có tiếng ồn hoặc tiếng vang. Đây là tổng hợp âm thanh từ văn bản, không phải nhận dạng lời nói đầu vào hay mô hình hội thoại bằng giọng nói.</p><p>Flash ưu tiên thời điểm bắt đầu phát giọng nói trong một lượt trao đổi tương tác. Qwen công bố độ trễ gói đầu tiên không quá 200 mili giây cho tính năng tổng hợp thời gian thực của mô hình này; hướng dẫn sử dụng cũng lưu ý rằng việc thiết lập kết nối ban đầu góp phần vào độ trễ đo được của lần gửi đầu tiên. Chuẩn bị riêng nội dung cần đọc và cách thể hiện mong muốn. Với câu trả lời của trợ lý giọng nói, một yêu cầu minh họa có thể kết hợp câu trả lời ngắn gọn với chỉ dẫn đọc bình tĩnh, rõ ràng. Kết quả cần dùng là giọng nói được tạo cho văn bản đó, còn ứng dụng đảm nhiệm việc phát âm thanh và phần hội thoại bao quanh.</p><p>Danh sách giọng hệ thống của nhà sản xuất có các lựa chọn riêng cho mô hình, chẳng hạn Long An Feng Yue với cách nói tự nhiên, thân thiện và Long An Xiao Xin với cách nói thân thiện, sinh động; cả hai đều được liệt kê cho tiếng Phổ thông và tiếng Anh. Danh sách còn có các giọng tiếng Anh như loongmary mang giọng Anh và loongjohn mang giọng Mỹ bình tĩnh, thân thiện. Mỗi mô hình còn có hơn 500 giọng cơ sở. Qwen khuyến nghị bắt đầu bằng giọng hệ thống để có tính nhất quán và nghe các bản xem trước khi chọn giọng cơ sở. Giọng phải thuộc mô hình đã chọn và kịch bản phải sử dụng ngôn ngữ mà giọng đó hỗ trợ.</p><p>Các giọng nhân bản mở rộng phạm vi ngôn ngữ được nêu trong tài liệu sang tiếng Trung, Anh, Nhật, Hàn, Nga, Pháp, Đức, Bồ Đào Nha, Thái, Indonesia, Việt, Tây Ban Nha, Ý, Mã Lai, Filipino và Ả Rập. Phạm vi tiếng Trung gồm tiếng Phổ thông, Quảng Đông cùng các biến thể Trùng Khánh, Đông Bắc, Cam Túc, Quý Châu, Chiết Giang, Hà Bắc, Hà Nam, Hồ Bắc, Hồ Nam, Giang Tây, Ninh Ba, Ninh Hạ, Thanh Đảo, Thiểm Tây, Sơn Tây, Sơn Đông, Thượng Hải, Tứ Xuyên và Vân Nam; phương ngữ được chọn thông qua chỉ dẫn. Bảng thông tin mô hình hỗ trợ nhân bản giọng từ mẫu và phân biệt tính năng này với việc tạo giọng mới chỉ từ mô tả bằng văn bản, vốn không được phiên bản này hỗ trợ.</p><p>Để nhân bản giọng, nhà sản xuất khuyến nghị bản ghi dài 10–20 giây, tối đa 60 giây và dung lượng tệp không quá 10 MB. Các định dạng mẫu được hỗ trợ là WAV 16 bit, MP3 và M4A, với tần số lấy mẫu ít nhất 16 kHz. Bản ghi cần có ít nhất năm giây lời nói liên tục, rõ ràng; các khoảng dừng khác không nên dài quá hai giây. Tránh tiếng nền, giọng của người khác và tiếng hát. Âm thanh stereo được chấp nhận nhưng chỉ kênh đầu tiên được xử lý. Quy trình nhân bản trả về mã định danh giọng gắn với đúng mô hình đích, và quá trình tổng hợp sử dụng mã đó khi giọng đã sẵn sàng. Cùng một bản ghi cần tạo các giọng nhân bản riêng cho Flash và Plus.</p><p>Chỉ dẫn bằng ngôn ngữ tự nhiên điều khiển cách nói của cả giọng hệ thống lẫn giọng nhân bản. Mô tả những đặc điểm nghe được như sắc thái nhẹ nhàng, phát âm rõ hoặc nhịp nói chậm hơn một chút. Các thẻ chèn trong văn bản cung cấp một cách điều khiển khác: [empathetic] hoặc [serious] đặt phong cách cho phần văn bản tiếp theo, còn [laughing] hoặc [sighing] chèn hiệu ứng giọng tại một vị trí cụ thể. Một thẻ điều khiển có hiệu lực cho đến khi xuất hiện thẻ điều khiển khác hoặc khi hệ thống tự động phân đoạn câu. Các thẻ cảm xúc và biểu đạt này chỉ được nêu trong tài liệu cho chế độ truyền luồng một chiều, không phải chế độ nhập văn bản hai chiều. Chuẩn bị câu cần biểu đạt trong chế độ phù hợp với các điều khiển đó.</p><p>Giao diện giọng nói của nhà sản xuất hỗ trợ PCM, WAV, MP3 và Opus. Các tần số lấy mẫu được liệt kê là 8.000, 16.000, 22.050, 24.000, 44.100 và 48.000 Hz, với MP3 và 22.050 Hz là giá trị mặc định. Âm lượng có phạm vi từ 0 đến 100; tốc độ nói và cao độ đều có phạm vi từ 0,5 đến 2,0. MP3 và Opus còn có thiết lập tốc độ bit từ 6 đến 510 kbps. Chọn định dạng và tần số lấy mẫu phù hợp với trình phát hoặc quy trình xử lý dự kiến. Với ứng dụng tương tác, nhà sản xuất mô tả trong tài liệu các khung âm thanh dạng luồng và siêu dữ liệu câu; dấu thời gian ở cấp từ có trong đầu ra dạng luồng cho các giọng đủ điều kiện, bao gồm giọng nhân bản.</p><p>Giao thức văn bản WebSocket được nêu trong tài liệu chấp nhận tối đa 20.000 ký tự trong một thông điệp văn bản và tổng cộng 200.000 ký tự trong một tác vụ, với khoảng cách giữa các lần gửi không quá 23 giây. Đây là giới hạn giao thức của nhà sản xuất, không phải giới hạn phổ quát về thời lượng đầu ra của mô hình. Giao thức hỗ trợ hủy lượt tổng hợp hiện tại và bắt đầu tác vụ tiếp theo trên cùng kết nối. Giữ các đoạn văn bản đúng thứ tự cần đọc và kết thúc đầu vào khi kịch bản đã hoàn tất. Để chuẩn bị phát âm, nhà sản xuất mô tả trong tài liệu gợi ý ngôn ngữ đích, chú thích pinyin và thay thế văn bản, hữu ích khi chữ số, từ viết tắt hoặc ký hiệu được đọc không như mong muốn.</p><p>SSML là một lựa chọn đánh dấu riêng với điều kiện về giọng và chế độ tương tác: Qwen nêu trong tài liệu lựa chọn này cho giọng nhân bản, với lời gọi không truyền luồng hoặc truyền luồng một chiều, và chỉ một lần gửi văn bản khi SSML được bật. Không nên mặc định rằng mọi giọng có sẵn hoặc luồng hai chiều đều hỗ trợ SSML. Với hội thoại thông thường, hãy bắt đầu bằng giọng tương thích, kịch bản lời nói rõ ràng và chỉ dẫn cụ thể về cách thể hiện; bổ sung điều khiển phát âm hoặc biểu cảm có mục tiêu khi tác vụ yêu cầu. Cách này giữ hồ sơ Flash tập trung vào giọng nói phản hồi nhanh từ văn bản đã chuẩn bị thay vì các khả năng của những mô hình âm thanh Qwen khác.</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 · Tổng hợp giọng nói</b> <code>POST /v1/audio/speech</code></summary><dl class=\"method-capabilities\"><div><dt>Đầu vào</dt><dd><code>text</code></dd></div><div><dt>Đầu ra</dt><dd><code>audio</code></dd></div><div><dt>Định dạng đầu ra</dt><dd>mp3</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 data-parameter-availability=\"source_interface\"><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>qwen/qwen-audio-3.0-tts-flash</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">input</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>Độ dài tối thiểu: 1</div><div>Đơn vị: ký tự Unicode</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">voice</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>loongjohn, longanhuan_v3.6</div></td><td data-cell-label=\"Mặc định\" data-default=\"unspecified\"><span class=\"card-cell-label\">Mặc định</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">response_format</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span><code>string</code></td><td data-cell-label=\"Yêu cầu\"><span class=\"card-cell-label\">Yêu cầu</span>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>mp3</div></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=\"card-about\" data-material-combinations><summary>Tổ hợp tư liệu đầu vào</summary><p class=\"note-s\"><b>text_to_speech</b> · Bắt buộc: input</p></details><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, voice, response_format</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>voice_ids</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>loongjohn, longanhuan_v3.6</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>response_format</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>mp3</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>max_input_characters</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>null</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>other_options</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>false</td></tr><tr><th data-cell-label=\"Tham số\" scope=\"row\"><span class=\"card-cell-label\">Tham số</span><code>input</code></th><td data-cell-label=\"Hợp đồng\"><span class=\"card-cell-label\">Hợp đồng</span>văn bản UTF-8 nguyên dạng; đếm ký tự Unicode mà không chuẩn hóa</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>text</td></tr></tbody></table></div><p>Vòng đời: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">Chọn giọng nói chính xác từ hồ sơ mô hình này.</p><p class=\"note-s\">Ký tự đầu vào và giây âm thanh là các đơn vị đo tính phí khác nhau.</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>Lượng tính 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=\"Lượng tính phí\"><span class=\"card-cell-label\">Lượng tính phí</span>—</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>—</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Token đầu vào</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>Ultra</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=\"Lượng tính phí\"><span class=\"card-cell-label\">Lượng tính phí</span>Mỗi điểm mã Unicode được tính là một ký tự, bao gồm ký tự Hán (Han).</td><td data-cell-label=\"Đơn vị tính phí\"><span class=\"card-cell-label\">Đơn vị tính phí</span>mỗi 1K ký tự đầu vào</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Ký tự đầu vào</span> <b>$0.03</b> <span class=\"price-unit\">mỗi 1K ký tự đầu vào</span></div></td></tr></tbody></table></div></div><div data-declared-reference-pricing><h4>Chi tiết giá cước tham chiếu</h4><p class=\"note-s\">Biểu tham chiếu cấp mô hình không thay đổi việc chọn phương thức, báo giá hoặc khoản phí. Khoản phí đang áp dụng dùng mức phí phương thức Ailoot đã chọn.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>Qwen: Qwen-Audio-3.0-TTS Flash</summary><h4>Giá theo cấu hình</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Cấu hình</th><th>Điều kiện 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>Qwen: Qwen-Audio-3.0-TTS Flash · Cấu hình mặc định</th><td data-cell-label=\"Điều kiện tính phí\"><span class=\"card-cell-label\">Điều kiện tính phí</span>Cấu hình mặc định</td><td data-cell-label=\"Phí\"><span class=\"card-cell-label\">Phí</span><div><span>Đầu vào · Ký tự đầu vào</span> <b>0,00003 US$</b> <span class=\"price-unit\">mỗi ký tự đầu vào</span></div></td></tr></tbody></table></div></details></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 · Tổng hợp giọng nói</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-2360-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2360-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</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-2360-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2360-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}&quot;\nexport AILOOT_VOICE_ID\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;qwen/qwen-audio-3.0-tts-flash&quot;, &quot;input&quot;: &quot;Good afternoon! This is a short voice take.&quot;}&#39;)\nvoice=os.environ[&quot;AILOOT_VOICE_ID&quot;]\nallowed=json.loads(&#39;[&quot;loongjohn&quot;, &quot;longanhuan_v3.6&quot;]&#39;)\nif voice not in allowed: raise SystemExit(&quot;Choose an accepted voice ID from this exact model profile&quot;)\np[&quot;voice&quot;]=voice\np[&quot;response_format&quot;]=&quot;mp3&quot;\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\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 speech.mp3\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 · Tổng hợp giọng nói</h4><p class=\"note-s\">mp3</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><details class=\"card-about\"><summary>Lượt đọc nội dung khác</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Các phiên bản mã\"><button class=\"cg-tab\" id=\"model-code-2361-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-0\" aria-selected=\"true\" tabindex=\"0\">Thư viện phương tiện</button><button class=\"cg-tab\" id=\"model-code-2361-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-1\" aria-selected=\"false\" tabindex=\"-1\">Trạng thái tác vụ</button><button class=\"cg-tab\" id=\"model-code-2361-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2361-panel-2\" aria-selected=\"false\" tabindex=\"-1\">Chi tiết tài nguyên</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Sao chép mã\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2361-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-assets.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_MEDIA_TASK_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/tasks/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-task.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-task.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2361-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2361-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}&quot;\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_ASSET_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/media/assets/$resource_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o media-asset.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(&quot;media-asset.json&quot;).read_text())))\nPY_RESULT\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>Lưu tất cả kết quả đã hoàn tất</h5><p class=\"note-s\">Lưu mọi phản hồi hoàn chỉnh, tệp và phần nội dung được trả về.</p><p class=\"note-s\">Giữ lại toàn bộ kết quả nhị phân và các header. Nếu phản hồi ở dạng JSON hoặc chứa nhiều đầu ra, giữ lại mọi phần tử dữ liệu và tải từng tài nguyên từ URL có chữ ký thực tế.</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 operation_id/X-Client-Request-ID gốc để đối soát mà không gửi lại yêu cầu; không có tuyến truy vấn trạng thái riêng cho âm thanh.</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\">binary audio</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>bytes</td></tr><tr><th data-cell-label=\"Trường\" scope=\"row\"><span class=\"card-cell-label\">Trường</span><code class=\"card-field-name\">response headers</code></th><td data-cell-label=\"Loại\" data-field-type><span class=\"card-cell-label\">Loại</span>headers</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>Trường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số 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>Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.</td></tr><tr><th data-cell-label=\"Phản hồi\" scope=\"row\"><span class=\"card-cell-label\">Phản hồi</span><code>server_error</code></th><td data-cell-label=\"Điều kiện\"><span class=\"card-cell-label\">Điều kiện</span>Phản hồi trả về cho biết thao tác hoặc kết quả 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 thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. 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=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</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=qwen%2Fqwen-audio-3.0-tts-flash&amp;route=Ultra&amp;caller=qwen%2Fqwen-audio-3.0-tts-flash&amp;fmt=speech\"><code>qwen/qwen-audio-3.0-tts-flash</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "fmt": "speech",
        "http": "POST",
        "path": "/v1/audio/speech",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|speech|/v1/audio/speech|qwen%2Fqwen-audio-3.0-tts-flash",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Trường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ",
                "http_status": 400,
                "recovery": "Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Phản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm tra",
                "http_status": null,
                "recovery": "Giữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại operation_id/X-Client-Request-ID gốc để đối soát mà không gửi lại yêu cầu; không có tuyến truy vấn trạng thái riêng cho âm thanh."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Giữ lại toàn bộ kết quả nhị phân và các header. Nếu phản hồi ở dạng JSON hoặc chứa nhiều đầu ra, giữ lại mọi phần tử dữ liệu và tải từng tài nguyên từ URL có chữ ký thực tế.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "ký tự Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Chọn giọng nói chính xác từ hồ sơ mô hình này.",
            "Ký tự đầu vào và giây âm thanh là các đơn vị đo tính phí khác nhau."
          ],
          "input": {
            "content_type": "application/json",
            "input": "văn bản UTF-8 nguyên dạng; đếm ký tự Unicode mà không chuẩn hóa",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Cấu hình mặc định"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Cấu hình mặc định",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    }
  ],
  "model_id": "qwen/qwen-audio-3.0-tts-flash",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "6bd438dedc55fe0897e609adb2e34aebcfd682822325a759712a857f3bbe0ac7",
    "input_html_sha256": "dafe280ad4f9d8627fb77f22e98c0ad536076aa25f295b6992a57eb7f61a4952",
    "private_audit_sha256": "733fee8bded925c6492a7b6c01a4d57a5114bd3621fb86fa1827dbb56d243b0d",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/vi/qwen-qwen-audio-3-0-tts-flash/",
    "description": "Qwen-Audio-3.0-TTS-Flash là mô hình chuyển văn bản thành giọng nói của Qwen, tập trung vào trợ lý giọng nói phản hồi nhanh và hội thoại tương tác. Mô hình kết hợp tổng hợp giọng nói dạng luồng, các giọng có sẵn hoặc được nhân bản dành riêng cho mô hình, cùng chỉ dẫn hoặc thẻ để tạo giọng nói giàu biểu cảm.",
    "locale": "vi",
    "md_url": "https://ailoot.ai/models/vi/qwen-qwen-audio-3-0-tts-flash/index.md",
    "title": "Qwen: Qwen-Audio-3.0-TTS Flash — Ailoot",
    "url": "https://ailoot.ai/models/vi/qwen-qwen-audio-3-0-tts-flash/"
  },
  "rawModel": {
    "about": "Qwen-Audio-3.0-TTS-Flash chuyển kịch bản được cung cấp thành giọng nói, với phiên bản Flash tập trung vào tương tác thời gian thực. Qwen xác định trợ lý giọng nói, hội thoại tương tác và dịch vụ khách hàng thông minh là các ứng dụng chính. So với phiên bản trước, nhà sản xuất mô tả khả năng hỗ trợ rộng hơn cho các ngôn ngữ ít tài nguyên và phương ngữ Trung Quốc, cách thể hiện phương ngữ chân thực hơn, cùng khả năng kiểm soát tốt hơn về cảm xúc, sắc thái, đặc tính giọng, tốc độ, âm lượng và phong cách nói. Nhà sản xuất cũng cho biết độ rõ và tính ổn định được cải thiện trong điều kiện âm học có tiếng ồn hoặc tiếng vang. Đây là tổng hợp âm thanh từ văn bản, không phải nhận dạng lời nói đầu vào hay mô hình hội thoại bằng giọng nói.\n\nFlash ưu tiên thời điểm bắt đầu phát giọng nói trong một lượt trao đổi tương tác. Qwen công bố độ trễ gói đầu tiên không quá 200 mili giây cho tính năng tổng hợp thời gian thực của mô hình này; hướng dẫn sử dụng cũng lưu ý rằng việc thiết lập kết nối ban đầu góp phần vào độ trễ đo được của lần gửi đầu tiên. Chuẩn bị riêng nội dung cần đọc và cách thể hiện mong muốn. Với câu trả lời của trợ lý giọng nói, một yêu cầu minh họa có thể kết hợp câu trả lời ngắn gọn với chỉ dẫn đọc bình tĩnh, rõ ràng. Kết quả cần dùng là giọng nói được tạo cho văn bản đó, còn ứng dụng đảm nhiệm việc phát âm thanh và phần hội thoại bao quanh.\n\nDanh sách giọng hệ thống của nhà sản xuất có các lựa chọn riêng cho mô hình, chẳng hạn Long An Feng Yue với cách nói tự nhiên, thân thiện và Long An Xiao Xin với cách nói thân thiện, sinh động; cả hai đều được liệt kê cho tiếng Phổ thông và tiếng Anh. Danh sách còn có các giọng tiếng Anh như loongmary mang giọng Anh và loongjohn mang giọng Mỹ bình tĩnh, thân thiện. Mỗi mô hình còn có hơn 500 giọng cơ sở. Qwen khuyến nghị bắt đầu bằng giọng hệ thống để có tính nhất quán và nghe các bản xem trước khi chọn giọng cơ sở. Giọng phải thuộc mô hình đã chọn và kịch bản phải sử dụng ngôn ngữ mà giọng đó hỗ trợ.\n\nCác giọng nhân bản mở rộng phạm vi ngôn ngữ được nêu trong tài liệu sang tiếng Trung, Anh, Nhật, Hàn, Nga, Pháp, Đức, Bồ Đào Nha, Thái, Indonesia, Việt, Tây Ban Nha, Ý, Mã Lai, Filipino và Ả Rập. Phạm vi tiếng Trung gồm tiếng Phổ thông, Quảng Đông cùng các biến thể Trùng Khánh, Đông Bắc, Cam Túc, Quý Châu, Chiết Giang, Hà Bắc, Hà Nam, Hồ Bắc, Hồ Nam, Giang Tây, Ninh Ba, Ninh Hạ, Thanh Đảo, Thiểm Tây, Sơn Tây, Sơn Đông, Thượng Hải, Tứ Xuyên và Vân Nam; phương ngữ được chọn thông qua chỉ dẫn. Bảng thông tin mô hình hỗ trợ nhân bản giọng từ mẫu và phân biệt tính năng này với việc tạo giọng mới chỉ từ mô tả bằng văn bản, vốn không được phiên bản này hỗ trợ.\n\nĐể nhân bản giọng, nhà sản xuất khuyến nghị bản ghi dài 10–20 giây, tối đa 60 giây và dung lượng tệp không quá 10 MB. Các định dạng mẫu được hỗ trợ là WAV 16 bit, MP3 và M4A, với tần số lấy mẫu ít nhất 16 kHz. Bản ghi cần có ít nhất năm giây lời nói liên tục, rõ ràng; các khoảng dừng khác không nên dài quá hai giây. Tránh tiếng nền, giọng của người khác và tiếng hát. Âm thanh stereo được chấp nhận nhưng chỉ kênh đầu tiên được xử lý. Quy trình nhân bản trả về mã định danh giọng gắn với đúng mô hình đích, và quá trình tổng hợp sử dụng mã đó khi giọng đã sẵn sàng. Cùng một bản ghi cần tạo các giọng nhân bản riêng cho Flash và Plus.\n\nChỉ dẫn bằng ngôn ngữ tự nhiên điều khiển cách nói của cả giọng hệ thống lẫn giọng nhân bản. Mô tả những đặc điểm nghe được như sắc thái nhẹ nhàng, phát âm rõ hoặc nhịp nói chậm hơn một chút. Các thẻ chèn trong văn bản cung cấp một cách điều khiển khác: [empathetic] hoặc [serious] đặt phong cách cho phần văn bản tiếp theo, còn [laughing] hoặc [sighing] chèn hiệu ứng giọng tại một vị trí cụ thể. Một thẻ điều khiển có hiệu lực cho đến khi xuất hiện thẻ điều khiển khác hoặc khi hệ thống tự động phân đoạn câu. Các thẻ cảm xúc và biểu đạt này chỉ được nêu trong tài liệu cho chế độ truyền luồng một chiều, không phải chế độ nhập văn bản hai chiều. Chuẩn bị câu cần biểu đạt trong chế độ phù hợp với các điều khiển đó.\n\nGiao diện giọng nói của nhà sản xuất hỗ trợ PCM, WAV, MP3 và Opus. Các tần số lấy mẫu được liệt kê là 8.000, 16.000, 22.050, 24.000, 44.100 và 48.000 Hz, với MP3 và 22.050 Hz là giá trị mặc định. Âm lượng có phạm vi từ 0 đến 100; tốc độ nói và cao độ đều có phạm vi từ 0,5 đến 2,0. MP3 và Opus còn có thiết lập tốc độ bit từ 6 đến 510 kbps. Chọn định dạng và tần số lấy mẫu phù hợp với trình phát hoặc quy trình xử lý dự kiến. Với ứng dụng tương tác, nhà sản xuất mô tả trong tài liệu các khung âm thanh dạng luồng và siêu dữ liệu câu; dấu thời gian ở cấp từ có trong đầu ra dạng luồng cho các giọng đủ điều kiện, bao gồm giọng nhân bản.\n\nGiao thức văn bản WebSocket được nêu trong tài liệu chấp nhận tối đa 20.000 ký tự trong một thông điệp văn bản và tổng cộng 200.000 ký tự trong một tác vụ, với khoảng cách giữa các lần gửi không quá 23 giây. Đây là giới hạn giao thức của nhà sản xuất, không phải giới hạn phổ quát về thời lượng đầu ra của mô hình. Giao thức hỗ trợ hủy lượt tổng hợp hiện tại và bắt đầu tác vụ tiếp theo trên cùng kết nối. Giữ các đoạn văn bản đúng thứ tự cần đọc và kết thúc đầu vào khi kịch bản đã hoàn tất. Để chuẩn bị phát âm, nhà sản xuất mô tả trong tài liệu gợi ý ngôn ngữ đích, chú thích pinyin và thay thế văn bản, hữu ích khi chữ số, từ viết tắt hoặc ký hiệu được đọc không như mong muốn.\n\nSSML là một lựa chọn đánh dấu riêng với điều kiện về giọng và chế độ tương tác: Qwen nêu trong tài liệu lựa chọn này cho giọng nhân bản, với lời gọi không truyền luồng hoặc truyền luồng một chiều, và chỉ một lần gửi văn bản khi SSML được bật. Không nên mặc định rằng mọi giọng có sẵn hoặc luồng hai chiều đều hỗ trợ SSML. Với hội thoại thông thường, hãy bắt đầu bằng giọng tương thích, kịch bản lời nói rõ ràng và chỉ dẫn cụ thể về cách thể hiện; bổ sung điều khiển phát âm hoặc biểu cảm có mục tiêu khi tác vụ yêu cầu. Cách này giữ hồ sơ Flash tập trung vào giọng nói phản hồi nhanh từ văn bản đã chuẩn bị thay vì các khả năng của những mô hình âm thanh Qwen khác.",
    "alias_of": null,
    "aliases": [],
    "author": "Alibaba",
    "available": null,
    "canonical_model": "qwen/qwen-audio-3.0-tts-flash",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text"
      ],
      "manufacturer_output": [
        "speech"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ],
        "summary": "Giá theo cấu hình được trình bày đầy đủ trong phần chi tiết."
      }
    ],
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "speech"
    ],
    "id": "qwen/qwen-audio-3.0-tts-flash",
    "input": [
      "text"
    ],
    "kind": "speech",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Keep the complete binary result and headers. If JSON/multiple outputs are returned, retain every data item and fetch each actual signed asset URL.",
            "errors": [
              {
                "code": null,
                "condition": "Trường bắt buộc, cách biểu diễn tài liệu hoặc giá trị tham số không hợp lệ",
                "http_status": 400,
                "recovery": "Sửa các trường được chỉ ra trước khi gửi yêu cầu tạo mới.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Phản hồi trả về cho biết thao tác hoặc kết quả cần được kiểm tra",
                "http_status": null,
                "recovery": "Giữ lại ID thao tác/tác vụ gốc đã trả về, các header của yêu cầu và toàn bộ phản hồi; tiếp tục truy xuất thao tác gốc đó bằng các phương thức được hỗ trợ. Không gửi lại yêu cầu tạo.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "Giữ lại operation_id/X-Client-Request-ID gốc để đối soát mà không gửi lại yêu cầu; không có tuyến truy vấn trạng thái riêng cho âm thanh."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_speech",
                "required": [
                  "input"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_speech"
            ],
            "outputs": {
              "all_results": "Giữ lại toàn bộ kết quả nhị phân và các header. Nếu phản hồi ở dạng JSON hoặc chứa nhiều đầu ra, giữ lại mọi phần tử dữ liệu và tải từng tài nguyên từ URL có chữ ký thực tế.",
              "family": "audio",
              "fields": [
                {
                  "description": null,
                  "name": "binary audio",
                  "type": "bytes"
                },
                {
                  "description": null,
                  "name": "response headers",
                  "type": "headers"
                }
              ],
              "format": "mp3",
              "http_success": 200
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "qwen/qwen-audio-3.0-tts-flash"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "limit_known": false,
                "maximum_length": null,
                "min_length": 1,
                "name": "input",
                "required": true,
                "type": "string",
                "unit": "ký tự Unicode"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "loongjohn",
                  "longanhuan_v3.6"
                ],
                "enum_known": true,
                "name": "voice",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "mp3"
                ],
                "enum_known": true,
                "name": "response_format",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "every field outside exactmodel,input,voice,response_format",
              "stream/speed/reference speech options"
            ]
          },
          "hints": [
            "Chọn giọng nói chính xác từ hồ sơ mô hình này.",
            "Ký tự đầu vào và giây âm thanh là các đơn vị đo tính phí khác nhau."
          ],
          "input": {
            "content_type": "application/json",
            "input": "văn bản UTF-8 nguyên dạng; đếm ký tự Unicode mà không chuẩn hóa",
            "material_types": [
              "text"
            ],
            "max_input_characters": null,
            "other_options": false,
            "required": [
              "model",
              "input",
              "voice",
              "response_format"
            ],
            "response_format": [
              "mp3"
            ],
            "voice_ids": [
              "loongjohn",
              "longanhuan_v3.6"
            ]
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "Giá trị task_id thực tế đã trả về hoặc bản ghi trong thư viện nội dung đa phương tiện",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "Retain original operation_id/X-Client-Request-ID for reconciliation without resubmission; no dedicated audio poll route."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/audio/speech"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_speech"
          ],
          "output": {
            "family": "audio",
            "format": "mp3",
            "http_success": 200,
            "response": "full binary MP3 plus response headers",
            "result": "complete playable owned MP3"
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "declared_tariff_references": [
          {
            "client_selectable": false,
            "key": "1005b0881c111e8d7cb6",
            "label": "Qwen: Qwen-Audio-3.0-TTS Flash",
            "profiles": [
              {
                "basis": "",
                "dimensions": {
                  "conditions": "Cấu hình mặc định"
                },
                "label": "Qwen: Qwen-Audio-3.0-TTS Flash · Cấu hình mặc định",
                "units": [
                  {
                    "amount": "0.000030",
                    "amount_unit": "usd_per_exact_physical_unit",
                    "billing_input": false,
                    "key": "723fd9e7b35c0e460956bc11",
                    "label": "Input characters",
                    "public_unit_label": "per input character",
                    "quantity": "1",
                    "rate_role": "declared_tariff_rate",
                    "side": "in",
                    "unit": "input_character"
                  }
                ]
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_VOICE_ID:?Choose an accepted voice ID from this exact model profile}\"\nexport AILOOT_VOICE_ID\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"qwen/qwen-audio-3.0-tts-flash\", \"input\": \"Good afternoon! This is a short voice take.\"}')\nvoice=os.environ[\"AILOOT_VOICE_ID\"]\nallowed=json.loads('[\"loongjohn\", \"longanhuan_v3.6\"]')\nif voice not in allowed: raise SystemExit(\"Choose an accepted voice ID from this exact model profile\")\np[\"voice\"]=voice\np[\"response_format\"]=\"mp3\"\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/audio/speech \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o speech.mp3\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/media/assets \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-assets.json\n",
            "label": "List actual media assets",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_MEDIA_TASK_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_MEDIA_TASK_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_MEDIA_TASK_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/tasks/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-task.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-task.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual media task",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_ASSET_ID:?Set the actual ID returned by the response or media-library metadata}\"\nexport AILOOT_ASSET_ID\nresource_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_ASSET_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/media/assets/$resource_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o media-asset.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nprint(json.dumps(json.loads(Path(\"media-asset.json\").read_text())))\nPY_RESULT\n",
            "label": "Read actual asset metadata",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "speech",
        "hints": [
          "Select exact voice from this model profile.",
          "Input characters and audio seconds are different meters."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text"
        ],
        "label": "Озвучка текста",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "audio"
        ],
        "path": "/v1/audio/speech",
        "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_character": 3e-05
          }
        },
        "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": {
              "quantity_meter": "utf8.RuneCountInString(validUTF8): one Han codepoint=1; no Han weighting",
              "quoted_unit": "per 1000 input character"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.03000",
                "amount_unit": "usd_per_1000_characters",
                "billing_input": true,
                "estimate_only": false,
                "key": "audio_input_character",
                "label": "input character",
                "native_amount_usd_per_unit": "0.00003",
                "native_quantity": 1,
                "public_unit_label": "per 1000 input character",
                "quantity": "1000",
                "quantity_is_estimate": false,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_character"
              }
            ]
          }
        ],
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/media/tasks/{task_id}",
          "GET /v1/media/assets/{asset_id}/content"
        ],
        "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.03000",
            "amount_unit": "usd_per_1000_characters",
            "billing_input": true,
            "estimate_only": false,
            "key": "audio_input_character",
            "label": "input character",
            "native_amount_usd_per_unit": "0.00003",
            "native_quantity": 1,
            "public_unit_label": "per 1000 input character",
            "quantity": "1000",
            "quantity_is_estimate": false,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "request_model_id": "qwen/qwen-audio-3.0-tts-flash",
        "route_label": "Ultra"
      }
    ],
    "name": "Qwen: Qwen-Audio-3.0-TTS Flash",
    "price": {
      "in": null,
      "in_label": null,
      "out": null,
      "out_label": null,
      "sort_in": null,
      "sort_out": null,
      "varies": true
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "International",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.000030",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "International",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "Model ID": "qwen-audio-3.0-tts-flash",
          "Service deployment scope": "Mainland China",
          "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
          "maker_published_model_id": "qwen-audio-3.0-tts-flash"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000275042",
            "amount_unit": "usd_per_input_character",
            "conditions": {
              "Model ID": "qwen-audio-3.0-tts-flash",
              "Service deployment scope": "Mainland China",
              "character_counting_rule": "Han characters incl Chinese/Japanese kanji/Korean hanja=2; other characters=1; SSML markup excluded; actual synthesized text counts",
              "maker_published_model_id": "qwen-audio-3.0-tts-flash"
            },
            "key": "input_character",
            "label": "input character",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "in",
            "unit": "input_character"
          }
        ]
      }
    ],
    "public_id": "qwen/qwen-audio-3.0-tts-flash",
    "short": "Qwen-Audio-3.0-TTS-Flash là mô hình chuyển văn bản thành giọng nói của Qwen, tập trung vào trợ lý giọng nói phản hồi nhanh và hội thoại tương tác. Mô hình kết hợp tổng hợp giọng nói dạng luồng, các giọng có sẵn hoặc được nhân bản dành riêng cho mô hình, cùng chỉ dẫn hoặc thẻ để tạo giọng nói giàu biểu cảm."
  },
  "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": "Qwen-Audio-3.0-TTS-Flash là mô hình chuyển văn bản thành giọng nói của Qwen, tập trung vào trợ lý giọng nói phản hồi nhanh và hội thoại tương tác. Mô hình kết hợp tổng hợp giọng nói dạng luồng, các giọng có sẵn hoặc được nhân bản dành riêng cho mô hình, cùng chỉ dẫn hoặc thẻ để tạo giọng nói giàu biểu cảm.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "22c0453e0aa19133c47c1eb9db13770058fd7ff24038e07655dc3f939c2fc1b3",
    "renderer_sha256": "64a62299639eb843877e9ec5c95e32bf22bac3acfe230f6f502c5c3aa186f9c1"
  },
  "sourceRevision": "d208a9dd182c347f8a84d83f90393a752e69c5e9f33186114c068fe3b6ed4e11"
}
