This tutorial walks you through the complete process of uploading an audio file, getting it transcribed, and translated into multiple languages using the Tiro API.
Upload your audio file to the provided signed URL:
# Upload audio file to the signed URL (replace UPLOAD_URI with the uploadUri from Step 1)curl -X PUT "$UPLOAD_URI" \ -H "Content-Type: audio/mpeg" \ --data-binary @/path/to/your/audio.mp3
Monitor the job status until processing is complete:
# Check job status (poll until status is COMPLETED or FAILED)curl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID" \ -H "Authorization: Bearer $TIRO_API_KEY"# Example response:# {# "id": "job_abc123",# "status": "COMPLETED",# "fileUploadedAt": "2024-01-01T12:00:20Z",# "processStartedAt": "2024-01-01T12:01:00Z",# "processCompletedAt": "2024-01-01T12:02:30Z"# }
Once the job is completed, fetch the transcript and translations:
# Get transcriptcurl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID/transcript" \ -H "Authorization: Bearer $TIRO_API_KEY"# Get all translationscurl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID/translations" \ -H "Authorization: Bearer $TIRO_API_KEY"# Get specific translation (e.g., English)curl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID/translations/en_US" \ -H "Authorization: Bearer $TIRO_API_KEY"# Get transcript paragraph summarycurl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID/transcript/paragraph-summary" \ -H "Authorization: Bearer $TIRO_API_KEY"# Get translation paragraph summarycurl -X GET "https://api.tiro.ooo/v1/external/voice-file/jobs/$JOB_ID/translations/en_US/paragraph-summary" \ -H "Authorization: Bearer $TIRO_API_KEY"
Paragraph summaries are automatically generated overviews of your transcript or translation content, broken down into logical sections. Each summary provides:
Concise Overview: Key points from each paragraph in markdown format
Language-Specific: Summaries generated for both transcript and translations
Structured Content: Easy to parse and integrate into your applications
When you fetch paragraph summaries, you’ll receive a response like this:
{ "jobId": "job-123", "locale": "ko_KR", "summary": [ { "type": "markdown", "content": "### 회의는 프로젝트 진행 상황을 점검하고, 다음 단계에 대한 계획을 수립하는 데 중점을 두었습니다." }, { "type": "markdown", "content": "### 팀원들은 각자의 담당 업무에 대한 현재 상태를 보고하고, 발생한 이슈들에 대해 논의했습니다." } ]}