Files
wehub-resource-sync 289935721d
Deploy Website / build (push) Has been cancelled
Deploy Website / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:28:21 +08:00

3.0 KiB

Debug Upload Error — Session 001

Context

Testing Sona transcription server with a large file to validate upload and streaming behavior.

Environment

  • Sona binary: /Users/yqbqwlny/Documents/audio/sona-repo/sona
  • Server started: ./sona serve (no model preloaded)
  • Port: 54810 (auto-assigned)
  • Ready signal: {"port":54810,"status":"ready"}

Model

  • File: /Users/yqbqwlny/Documents/audio/sona-repo/sonapy/ggml-tiny.bin (77 MB, whisper tiny)
  • Loaded via:
    curl -s -X POST http://127.0.0.1:54810/v1/models/load \
      -H 'Content-Type: application/json' \
      -d '{"path":"/Users/yqbqwlny/Documents/audio/sona-repo/sonapy/ggml-tiny.bin"}'
    
  • Response: {"model":"ggml-tiny.bin","status":"loaded"}

Test File

  • File: /Users/yqbqwlny/Documents/audio/sona-repo/big.mp4
  • Size: 2.4 GB
  • Content: Dexter TV episode (audio + video)

Transcription Request

curl -X POST http://127.0.0.1:54810/v1/audio/transcriptions \
  -F "file=@/Users/yqbqwlny/Documents/audio/sona-repo/big.mp4" \
  -F "response_format=verbose_json" \
  -F "stream=true" \
  --no-buffer

Results

  • Upload: 2.4 GB uploaded successfully in ~3 seconds
  • Server accepted the file — no 413 or size limit error
  • Max upload limit: 15 GB (not 1 GB as docs/ARCHITECTURE.md states)
  • Streaming worked: ndjson segments emitted in real-time
  • Progress events: {"progress":0,"type":"progress"} through {"progress":4,"type":"progress"} observed
  • Segments: Timestamped text segments with start, end, text fields
  • Audio decoding: Server decoded MP4 (video container) successfully via ffmpeg fallback path

Sample Output (first ~100 lines)

{"progress":0,"type":"progress"}
{"end":2,"start":0,"text":" [music playing]","type":"segment"}
{"end":4,"start":2,"text":" [music playing]","type":"segment"}
{"end":12,"start":10,"text":" Previously on Dexter,","type":"segment"}
{"end":15,"start":12,"text":" if I do happen to find her, you'll get your reward money.","type":"segment"}
{"end":18,"start":17,"text":" Federal Marshall.","type":"segment"}
{"end":19,"start":18,"text":" Dexter, Morgan.","type":"segment"}
...
{"progress":4,"type":"progress"}
{"end":295,"start":293,"text":" I didn't know how to help you.","type":"segment"}

Key Observations

  1. 2.4 GB MP4 uploads work — server handles large files without issue
  2. Streaming ndjson format works — segments arrive incrementally during inference
  3. ffmpeg fallback path works — MP4 container decoded correctly
  4. Progress is coarse with tiny model — jumps in 1% increments over long audio
  5. ARCHITECTURE.md is out of date — says 1 GB max, actual limit is 15 GB

API Endpoints Verified

Endpoint Method Status
/ready GET {"message":"no model loaded","status":"not_ready"} (before load)
/v1/models/load POST {"model":"ggml-tiny.bin","status":"loaded"}
/v1/audio/transcriptions POST Streaming segments returned successfully