Chép lời trực tiếp
Hoạt độngNói và thấy lời hiện ra ngay khi nói, với nhiều ngôn ngữ được tự nhận diện.
Chép lời trực tiếp
Tính phí theo giây âm thanh, mỗi lần giữ trước 1 phút. Phiên tự kết thúc khi số dư hết, sau một lúc im lặng hoặc khi đến giới hạn thời gian.
Ví dụ thực tếMột phiên trực tiếp đã ghi lại
Ngôn ngữ: Tiếng Thái · Kết quả thật của công cụ này. Lần chạy của bạn sẽ thay thế nó.
Nội dung đã nói
Bản ghi lời
- สวัสดีค่ะ ยินดีต้อนรับสู่ร้านกาแฟของเรา วันนี้เรามีเค้กช็อกโกแลตตอบใหม่ๆ ลองชิมดูไหมคะ
Công cụ giọng nói khác
Mỗi công cụ có endpoint và giá riêng. Dùng một cái, hoặc nối chúng lại.
Hoạt độngVoice TranslatorNói bằng ngôn ngữ của bạn. Người khác nghe bằng ngôn ngữ của họ, với giọng của bạn, trong mọi ứng dụng.Giọng vào $0.0206/phút · giọng tạo ra $0.066/phútMở
Hoạt độngNhân bản giọng tôiGiọng của chính bạn từ một bản ghi ngắn, có sự đồng ý của bạn.$0.01296 cho mỗi giọngMở
Hoạt độngDịch tệp âm thanhĐưa vào một bản ghi, nhận lại cùng nội dung bằng ngôn ngữ và giọng khác.$0.3597/phútMở
Hoạt độngNói bằng giọng tôiNhập văn bản và nghe bằng giọng nhân bản của chính bạn.$0.39 cho 1.000 ký tựMở
API Chép lời trực tiếp
Một WebSocket: gửi âm thanh từ micro; nhận từ ngữ ngay khi nói và từng câu hoàn chỉnh kèm ngôn ngữ.
https:/ / api.opennan.com/ v1/ realtime/ sttLấy khóa API
Tạo khóa trong bảng điều khiển. Khóa dùng chung số dư với phần dùng thử.
Tạo khóaGửi yêu cầu đầu tiên
Chính yêu cầu mà phần dùng thử gửi. Đặt OPENNAN_KEY là khóa của bạn.
const ws = new WebSocket("wss://api.opennan.com/v1/realtime/stt"); ws.binaryType = "arraybuffer"; ws.onopen = () => { ws.send(JSON.stringify({ type: "auth", ticket: session.ticket })); ws.send(JSON.stringify({ "type": "session.config", "language": "auto" })); }; mic.ondata = (pcm16) => ws.send(pcm16); // 16 kHz mono 16-bit PCM, <= 65536 bytes a frame ws.onmessage = (e) => { const msg = JSON.parse(e.data); if (msg.type === "transcript.partial") showDraft(msg.text); if (msg.type === "transcript.final") addLine(msg.sentence_id, msg.text, msg.language); if (msg.type === "session.end") console.log("ended:", msg.reason); }; stop.onclick = () => ws.send(JSON.stringify({ type: "session.end" }));Đọc các sự kiện
Khi bạn nói, máy chủ gửi các sự kiện JSON; giọng nói đến dưới dạng các đoạn âm thanh base64 kèm định dạng.
- session.started
- Phiên của bạn đã mở, kèm giá và giới hạn
- transcript.partial
- Từ ngữ khi bạn còn đang nói
- transcript.final
- Một câu hoàn chỉnh và ngôn ngữ của nó
- usage
- Số giây và chi phí đến hiện tại
- error
- Một sự cố, kèm mã và lời giải thích dễ hiểu
- session.end
- Lý do kết thúc: bạn, số dư, im lặng hoặc giới hạn thời gian
Lỗi và cách khắc phục
401Thiếu khóa hoặc sai khóa
Gửi header Authorization: Bearer với một khóa từ bảng điều khiển.
402Số dư không đủ
Nạp tiền trong mục Thanh toán, rồi gửi lại đúng lệnh gọi đó.
400Có giá trị không được chấp nhận
Đọc error.message: nó nêu tên trường. Dùng một giá trị trong bảng tham số.
429Quá nhiều yêu cầu
Chờ vài giây rồi thử lại, chờ lâu hơn sau mỗi lần gặp 429.
Chép lời trực tiếp: câu hỏi
Chép lời trực tiếp giá bao nhiêu?
$0.00846/phút, tính theo giây âm thanh. Thời gian được giữ trước từng phút và quyết toán dần; phiên dừng gọn gàng khi số dư không đủ cho phút tiếp theo.
Gọi nó như thế nào?
Mở một WebSocket tới WSS https://api.opennan.com/v1/realtime/stt. Từ trình duyệt, gửi tin nhắn auth kèm khóa làm tin nhắn đầu tiên trong vòng 5 giây; từ máy chủ có thể dùng header Authorization. Sau đó gửi cấu hình phiên và âm thanh PCM 16 bit, mono, 16 kHz. Khóa không bao giờ đặt trong URL.
Có bị tính phí khi có lỗi không?
Không. Bước bị lỗi không bị tính phí, và lý do được giải thích bằng lời dễ hiểu.
Tôi có dùng giọng của người khác được không?
Không. Bạn chỉ có thể nhân bản giọng của chính mình, với bản ghi bạn đọc câu đồng ý mà chúng tôi cung cấp. Giọng không bao giờ được chia sẻ giữa các tài khoản.
AI agent của tôi có dùng được không?
Có, qua API. Cho nó đọc https://api.opennan.com/llms.txt để biết cách dùng.