LLM văn bản sang âm thanh: Những gì nó có thể và không thể làm
Một LLM chuyển văn bản sang âm thanh thường là hai công cụ hoạt động cùng nhau: một mô hình ngôn ngữ viết prompt và một mô hình âm thanh chuyển đổi nó thành âm thanh. API này bao gồm nửa đầu tiên.

Cập nhật
Điểm chính
Dịch vụ này chỉ xử lý văn bản và không tạo âm thanh, hình ảnh hoặc video.
Nhiệm vụ của nó trong quy trình âm thanh là viết prompt, lời bài hát, kịch bản cảnh và siêu dữ liệu.
Việc nối nó với một công cụ âm thanh đòi hỏi một đoạn mã ngắn và kết quả JSON.
1.000 prompt với khoảng 600 token đầu vào và 300 token đầu ra tốn khoảng $0,24.
Câu trả lời ngắn gọn: LLM viết hướng dẫn, không phải âm thanh
Khi người dùng tìm kiếm một LLM chuyển văn bản sang âm thanh, họ thường hình dung một mô hình đọc một câu và trả về một tệp âm thanh. Các mô hình ngôn ngữ lớn không làm điều đó. Chúng đọc và viết văn bản. Âm thanh đến từ một mô hình riêng biệt được xây dựng cho âm thanh, mô hình này lấy mô tả văn bản làm đầu vào.
Sự tách biệt này hữu ích vì chất lượng của bản mô tả rất quan trọng. Một yêu cầu mơ hồ như "nhạc thư giãn" cung cấp cho mô hình âm thanh ít dữ liệu để xử lý. Một yêu cầu cụ thể nêu rõ thể loại, nhịp độ, nhạc cụ, tâm trạng, cấu trúc và độ dài sẽ cung cấp nhiều dữ liệu hơn. Việc viết bản mô tả cụ thể đó với số lượng lớn, theo định dạng nhất quán, là một nhiệm vụ phù hợp cho mô hình ngôn ngữ.
Trang web này cung cấp chính xác nửa đầu đó: một API văn bản tương thích với OpenAI. Nó không có khả năng tạo âm thanh, không có embedding và không có fine-tuning. Nếu bạn cần âm thanh thực sự, hãy kết hợp nó với một công cụ tạo âm thanh và sử dụng endpoint này làm bước viết trước nó. Chúng tôi không liên kết với bất kỳ nhà cung cấp âm thanh nào, vì vậy hãy kiểm tra tài liệu riêng của từng công cụ về các quy tắc đầu vào của chúng.
Nơi mô hình văn bản hỗ trợ trong quy trình âm thanh
Các nhiệm vụ phù hợp là những nhiệm vụ mà đầu ra là từ ngữ:
- Viết prompt. Chuyển đổi một ý tưởng sơ khai thành một bản mô tả chi tiết với thể loại, nhịp độ, nhạc cụ và tâm trạng.
- Lời bài hát và kịch bản. Các khổ thơ và điệp khúc cho một bài hát, hoặc kịch bản dẫn cho phần mở đầu podcast hoặc chương sách nói.
- Các biến thể. Mười prompt thay thế từ một khái niệm, để bạn có thể thử nghiệm nhiều hướng đi khác nhau.
- Siêu dữ liệu. Tiêu đề, mô tả, thẻ và ghi chú bài hát sau khi âm thanh đã tồn tại.
- Sửa đổi. Viết lại một prompt sau khi kết quả chưa đạt yêu cầu, sử dụng ghi chú của bạn về những gì đã sai.
Mô hình ở đây được tinh chỉnh để trả lời mà không từ chối nội dung đối với việc sử dụng người lớn hợp pháp, điều này rất quan trọng đối với âm thanh giàu truyện như kể chuyện tối, kịch kinh dị hoặc hội thoại trò chơi trưởng thành, nơi một mô hình nghiêm ngặt hơn có thể từ chối một yêu cầu hoàn toàn hợp lý. Đường ranh giới cứng duy nhất là không có gì liên quan đến người chưa thành niên trong bối cảnh tình dục được cho phép, và các khóa không dành cho mục đích đó.
Trang prompt video của chúng tôi bao gồm cùng một ý tưởng cho các công cụ video; quy trình viết một bản mô tả có cấu trúc trước và chuyển nó cho trình tạo thứ hai được áp dụng cho nhiều loại phương tiện khác nhau.
Ví dụ hoạt động: một ý tưởng vào, một prompt có cấu trúc ra
Cách đáng tin cậy nhất để cung cấp dữ liệu cho công cụ hạ lưu là đầu ra có cấu trúc. Chế độ JSON (response_format: {"type":"json_object"}) khiến mô hình trả về một đối tượng JSON, vì vậy tập lệnh của bạn có thể đọc các trường có tên thay vì phân tích các đoạn văn. Đây là một tập lệnh Python sử dụng SDK OpenAI đối với endpoint này.
import json, os
from openai import OpenAI
client = OpenAI(
base_url="https://api.stableaudio.top/v1",
api_key=os.environ["UNCENSORED_API_KEY"],
)
system = (
"You write prompts for text-to-audio tools. Return a JSON object with keys: "
"genre, tempo_bpm, instruments (list), mood, structure, duration_seconds, prompt. "
"The prompt field is one paragraph, no more than 60 words."
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": "A tense chase scene in a rain-soaked neon city."},
],
response_format={"type": "json_object"},
temperature=0.8,
)
spec = json.loads(resp.choices[0].message.content)
print(spec["prompt"])
Giữ từ JSON trong system message của bạn và liệt kê các khóa bạn muốn. Mô hình sau đó có một mục tiêu rõ ràng. Xác thực kết quả trước khi gửi nó đi: kiểm tra xem tempo_bpm có phải là số và instruments có phải là danh sách không, và thử lại một lần nếu không.
Cùng một yêu cầu trong curl, hữu ích cho việc kiểm tra nhanh, trông như thế này:
curl https://api.stableaudio.top/v1/chat/completions \
-H "Authorization: Bearer $UNCENSORED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Return JSON with keys mood and prompt for a text-to-audio tool."},
{"role": "user", "content": "A quiet morning in a mountain village."}
]
}'Viết prompt mà mô hình âm thanh có thể sử dụng
Mô hình ngôn ngữ sẽ viết bất kỳ hình dạng prompt nào bạn yêu cầu, vì vậy công việc thực sự là quyết định hình dạng. Một số quy tắc tồn tại qua hầu hết các công cụ âm thanh.
Nói những gì công cụ muốn, theo thứ tự nó muốn
Đọc tài liệu của công cụ âm thanh và sao chép từ vựng của nó. Nếu nó phản hồi với các thẻ phần trong ngoặc vuông hoặc dòng phong cách gồm các mô tả được phân tách bằng dấu phẩy, hãy đặt một ví dụ về định dạng chính xác đó trong system message của bạn. Các mô hình bắt chước các ví dụ rất sát.
Đưa ra các danh từ cụ thể
"Piano thưa, trống chổi, bass đứng, tiếng nổ vinyl" tốt hơn "cảm giác jazz hay". Hãy bảo mô hình đặt tên nhạc cụ, phạm vi nhịp độ và kết cấu, và tránh các tính từ thừa.
Đặt giới hạn độ dài trong hướng dẫn
Nhiều công cụ âm thanh giới hạn độ dài prompt. Đặt giới hạn đó trong system message ("không quá 60 từ") và thực thi nó trong mã. Các mô hình bị trôi theo số lượng từ, vì vậy hãy cắt ngắn hoặc thử lại khi kiểm tra thất bại.
Giữ một vòng lặp phản hồi
Sau khi bạn nghe kết quả, hãy đưa ghi chú của bạn trở lại: "Quá ồn ào ở nửa sau, trống quá to, giữ nguyên tông." Một cuộc gọi thứ hai có thể sửa đổi prompt trước đó với ghi chú đó trong ngữ cảnh. Cửa sổ ngữ cảnh 100.000 token cho phép bạn mang theo lịch sử dài các lần thử nếu bạn muốn mô hình học những gì bạn liên tục từ chối.
Nối mô hình với trình tạo âm thanh
Mã kết nối rất ngắn. Tạo thông số kỹ thuật, kiểm tra tính hợp lệ của nó, sau đó chuyển trường prompt cho bất kỳ dịch vụ âm thanh nào bạn sử dụng. Cuộc gọi âm thanh được hiển thị dưới dạng bản giữ chỗ vì giao diện của từng nhà cung cấp khác nhau; hãy lấy các tham số của nó từ tài liệu của họ.
def make_spec(idea: str) -> dict:
r = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": system},
{"role": "user", "content": idea},
],
response_format={"type": "json_object"},
)
return json.loads(r.choices[0].message.content)
ideas = ["Lo-fi study beat", "Epic orchestral trailer hit", "Haunted music box"]
for idea in ideas:
spec = make_spec(idea)
# send spec["prompt"] to your audio generator here
print(idea, "->", spec["prompt"][:80])
Nếu bạn chạy điều này trên một danh sách song song, hãy chú ý đến các giới hạn. Khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 mỗi phút; khóa dùng thử cho phép 2 và 60. Lỗi 429 với concurrency có nghĩa là quá nhiều cùng một lúc, rate_limited có nghĩa là quá nhiều mỗi phút và tiêu đề Retry-After: 5 có nghĩa là đợi năm giây và thử lại. Một nhóm luồng nhỏ được kích thước phù hợp với giới hạn của bạn, cộng với việc thử lại, là đủ.
Tài liệu API liệt kê các tham số hỗ trợ, bao gồm temperature, top_p, stop và seed. seed cố định giúp tạo prompt lặp lại khi tinh chỉnh hệ thống.
Lời bài hát, lời dẫn và siêu dữ liệu ở quy mô lớn
Prompt chỉ là một loại văn bản mà dự án âm thanh cần. Sau khi quy trình chạy, cùng một endpoint có thể viết các phần khác xung quanh nó và bạn có thể sử dụng lại đối tượng client từ tập lệnh trước đó.
Kịch bản dẫn
Đối với âm thanh nói, hãy yêu cầu một kịch bản có chỉ đạo sân khấu trong một ký hiệu cố định, chẳng hạn như dấu hiệu tạm dừng giữa các đoạn văn và ghi chú khi người nói nên chậm lại. Hãy bảo mô hình biết thời lượng đọc mục tiêu. Một quy tắc chung phổ biến là người dẫn đọc khoảng 150 từ mỗi phút, vì vậy một đoạn hai phút cần khoảng 300 từ; hãy yêu cầu con số đó và sau đó đếm số từ trong mã.
Lời bài hát với cấu trúc cố định
Yêu cầu các phần có tên, lược đồ vần và phạm vi âm tiết mỗi dòng. Một mô hình tuân thủ "bốn dòng, ABAB, tám đến mười âm tiết mỗi dòng" tốt hơn nhiều so với "một bài thơ có vần đẹp". Chạy kiểm tra trong mã sau đó và yêu cầu viết lại chỉ phần đã thất bại.
Tiêu đề, thẻ và mô tả
Sau khi âm thanh tồn tại, hãy gửi lại prompt và lời bài hát cuối cùng cho mô hình và yêu cầu ba tùy chọn tiêu đề, năm thẻ và một mô tả hai câu. Đây là công việc rẻ tiền, lặp đi lặp lại phù hợp tốt với mô hình văn bản.
Truyện và trò chơi
Âm thanh giả tưởng, chẳng hạn như một bộ phim kinh dị theo chuỗi, một câu chuyện tương tác hoặc lời thoại cho trò chơi, thường bao gồm các chủ đề tối hoặc trưởng thành. Mô hình được tinh chỉnh để trả lời mà không từ chối, đối với việc sử dụng người lớn hợp pháp, vì vậy một yêu cầu phù hợp với thể loại sẽ không bị kèm theo bài giảng. Quy tắc cấm nội dung tình dục liên quan đến người chưa thành niên vẫn tuyệt đối.
Nếu bạn truyền phát các kịch bản dài ra màn hình, hãy đặt stream: true và đọc các chunk khi chúng đến; việc sử dụng được báo cáo vào cuối luồng truyền phát.
Chi phí để viết một nghìn prompt
Văn bản rẻ hơn nhiều so với bước audio. Giá là $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra, được tính từ tín dụng trả trước mà không cần đăng ký.
Giả sử mỗi yêu cầu gửi khoảng 600 token (thông báo hệ thống cộng với ý tưởng) và nhận lại khoảng 300 token JSON. Đối với 1.000 yêu cầu:
- Đầu vào: 600.000 token x $0.15 / 1M = $0.09
- Đầu ra: 300.000 token x $0.50 / 1M = $0.15
- Tổng cộng: $0.24
Vì vậy, một nghìn prompt hoàn chỉnh có giá khoảng hai mươi bốn xu, và các yêu cầu bị lỗi hoặc bị từ chối sẽ không bị tính phí. Một tài khoản mới có thể nhận $0.50 tín dụng dùng thử chỉ với một cú nhấp chuột trên trang khóa, không cần thẻ, có hiệu lực trong 7 ngày, đủ cho khoảng hai nghìn prompt với kích thước nêu trên. Sau đó, các khoản nạp tiền bắt đầu từ $20; xem giá cả để biết các tầng bonus và tùy chọn thanh toán. Prompt không được sử dụng để huấn luyện.
Hướng dẫn khác
Hỏi đáp
Một LLM văn bản có thể tạo audio không?
Không. Một mô hình ngôn ngữ tạo ra văn bản. Âm thanh đến từ một mô hình âm thanh riêng biệt, và vai trò của LLM là viết prompt, lời bài hát hoặc kịch bản mà mô hình đó cần.
API này có tạo nhạc hoặc giọng nói không?
Không. Nó chỉ dành cho văn bản, không tạo âm thanh, hình ảnh hoặc video. Nó được thiết kế như bước viết trước một công cụ âm thanh.
Làm thế nào để tôi có được các prompt có cấu trúc để đưa vào kịch bản?
Sử dụng chế độ JSON với response_format được đặt thành json_object, đặt tên cho các khóa trong thông báo hệ thống của bạn và kiểm tra tính hợp lệ của kết quả đã phân tích cú pháp trong mã của bạn.
Chi phí tạo nhiều prompt là bao nhiêu?
Với giá $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra, 1.000 prompt với khoảng 600 token đầu vào và 300 token đầu ra có giá khoảng $0.24.
Có cách miễn phí nào để dùng thử không?
Người dùng mới có thể nhận $0.50 tín dụng dùng thử chỉ với một cú nhấp chuột sau khi đăng ký. Nó không cần thẻ và có hiệu lực trong 7 ngày.
Khóa của bạn chỉ cách một bước điền biểu mẫu
Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.