Nhà phát triển

Tài liệu API

Chuyển âm thanh thành văn bản bằng lập trình. Mọi endpoint nằm dưới Base URL và cần API key.

Base URL

https://api-sotaspeech.notexapp.com

Xác thực

Gửi API key dạng Bearer token (hoặc header x-api-key) trong mọi request.

Authorization: Bearer YOUR_API_KEY
# or
x-api-key: YOUR_API_KEY

Luồng khuyến nghị (file lớn)

Tải bytes thẳng lên storage bằng URL ký sẵn, đưa vào hàng đợi theo object key, rồi poll — để âm thanh nhiều MB không đi qua API.

1 · presign
POST/uploads/presign
curl -X POST https://api-sotaspeech.notexapp.com/uploads/presign \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"filename":"meeting.wav","content_type":"audio/wav"}'
# -> { "object_key": "...", "upload_url": "https://.../..." }
2 · upload bytes
PUT{upload_url}
curl -X PUT "{upload_url}" \
  -H "Content-Type: audio/wav" \
  --data-binary @meeting.wav
3 · enqueue
POST/transcribe/object

Gợi ý ngôn ngữ: vi, en, ja, ko, hoặc bỏ trống để tự nhận diện.

curl -X POST https://api-sotaspeech.notexapp.com/transcribe/object \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"object_key":"...","language":"vi"}'
# -> { "task_id": "abc123", "status": "queued" }
4 · Poll tác vụ
GET/transcribe/{task_id}

Poll đến khi status là done; kết quả gồm bản ghi, các đoạn có mốc thời gian và nhãn người nói.

curl https://api-sotaspeech.notexapp.com/transcribe/abc123 \
  -H "Authorization: Bearer YOUR_API_KEY"
# -> { "status": "done", "result": {
#      "text": "...", "language": "Vietnamese",
#      "duration_sec": 300.9, "segments": [
#        { "start": 1.7, "end": 10.1, "start_fmt": "00:01.720",
#          "text": "...", "speaker": "SPEAKER_00" } ],
#      "segment_count": 19 } }
POST/transcribe

Gợi ý ngôn ngữ: vi, en, ja, ko, hoặc bỏ trống để tự nhận diện.

curl -X POST https://api-sotaspeech.notexapp.com/transcribe \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_url":"https://example.com/audio.mp3","language":"vi"}'
# -> { "task_id": "...", "status": "queued" }  (then poll as above)

Đồng bộ một lần (tương thích OpenAI)

Endpoint multipart đồng bộ, tương thích API audio transcription của OpenAI.

POST/v1/audio/transcriptions
curl -X POST https://api-sotaspeech.notexapp.com/v1/audio/transcriptions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@meeting.wav" \
  -F "model=sotaspeech" \
  -F "language=vi" \
  -F "response_format=json"
# -> { "text": "..." }