openapi: 3.0.0 info: title: Speech To Text - Xdroid version: 1.0.0 description: | Xdroid Speech To Text API provides a seamless audio transcription service. ### Key highlights - **Sandbox:** Full-fledged capabilities. - **Security:** HTTPS, OAuth, Rate limit. - **Versioning:** Supports version-less API, version tight. If no version is provided (in header) it defaults to latest version. --- [Source view](https://app.swaggerhub.com/apis/kpn/speech-to-text-Xdroid)
[Documentation view](https://app.swaggerhub.com/apis-docs/kpn/speech-to-text-Xdroid/) --- [KPN Developer](https://developer.kpn.com/)
[Getting Started](https://developer.kpn.com/getting-started) --- contact: name: API Support Support email: api_developer@kpn.com url: 'https://developer.kpn.com/support' termsOfService: 'https://developer.kpn.com/legal' servers: - url: https://api-prd.kpn.com/data/kpn/voiceanalytics security: - oauth2: [] tags: - name: Upload audio description: | Uploads an audio file and start a new analytics job. - name: Retrieve transcription description: | To retrieve transcritions, check the processing status with your unique **job_id**. Please do not use intervals that are shorter than 10 seconds to check status to avoid a throttle penalty. paths: /job: post: tags: - Upload audio summary: Submits audio files for analyis. description: >- To create a new transcript use the following recommendations: + Accepted container formats: - .wav - .mp3 / .mp4 - .opus / .ogg + Preferred requirements: - Bitrate: 64 Kbit/s per channel (stero recording is supported) - Sample rate: 8 KHz - Uncompressed files preferred + Max audio file size: 150 MB. requestBody: content: multipart/form-data: schema: type: object properties: config: type: object description: | A JSON object defining the language of the audio file. For example: `{"language":"en","recording_start":"20201119121111" }` or `{"language":"en","recording_start":"" }` Body parameter | Description ---------------|---------------------- `language` | The parameter `language` is required in ISO language code. Supported language codes:
Global English: `en`
Global Spanish: `es`
Dutch: `nl`
French: `fr `
Example: `{"language":"en"}` `recording_start` | Day and time when the recording starts. Optional
Format: `YmdHis`. Example: `20201216081228` audio_file: type: string format: binary description: Attach the audio file to be transcribed. Requirements see above. responses: 200: $ref: '#/components/responses/ok' 400: $ref: '#/components/responses/bad_request' 401: $ref: '#/components/responses/unauthorized' 404: $ref: '#/components/responses/not_found' 413: $ref: '#/components/responses/request_entity_too_large' 500: $ref: '#/components/responses/server_error' /job/{job_id}: get: tags: - Retrieve transcription summary: Retrieves JSON transcript of a finished transcription job. description: >- Retrieves JSON file with the transcript of a previously uploaded audio file. parameters: - name: job_id in: path description: ID of job to fetch. required: true schema: $ref: '#/components/parameters/job_id' responses: 200: description: Success response if job is found. content: application/json: schema: type: object properties: data: type: object properties: job_id: type: integer description: Job ID example: 17424 created_at: type: string description: Job creation timestamp example: "2020-11-19 15:26:06" audio_file: type: string description: Uploaded audio file name example: "0036550e-720f-1239-0b99-eecf4973.wav" status: type: string description: Waiting | PROCESSING | Analyzed enum: ['queued', 'processing', 'parsing', 'analyzed'] results: type: object properties: data_type: type: string example: TRANSCRIPT data_channel: type: integer description: 0 = first speaker, 1 = second speaker example: 1 data_detect_start: type: integer description: block start in millisec example: 8820 data_detect_end: type: integer description: block end in millisec example: 9070 data_length: type: integer description: block length in millisec example: 250 data_probability: type: integer description: probability of result example: 0.83 400: $ref: '#/components/responses/bad_request' 401: $ref: '#/components/responses/unauthorized' 404: $ref: '#/components/responses/not_found' 413: $ref: '#/components/responses/request_entity_too_large' 500: $ref: '#/components/responses/server_error' components: securitySchemes: oauth2: type: oauth2 flows: clientCredentials: tokenUrl: https://api-prd.kpn.com/oauth/client_credential/accesstoken?grant_type=client_credentials scopes : {} schemas: job: type: object properties: job_id: type: integer description: The job_id identifies your request, you should refer to this identifier later. example: 17424 error: type: object properties: transactionId: type: string description: Transaction ID of the the request. title: Transaction ID status: type: string description: Status title: Status name: type: string description: Error name title: Error name message: type: string description: Error message title: Error message info: type: string description: Additional information about error. title: Info responses: ok: description: OK content: application/json: schema: $ref: '#/components/schemas/job' bad_request: description: Bad request content: application/json: schema: $ref: '#/components/schemas/error' unauthorized: description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/error' not_found: description: Not found content: application/json: schema: $ref: '#/components/schemas/error' server_error: description: Server error content: application/json: schema: $ref: '#/components/schemas/error' request_entity_too_large: description: Request entity too large content: application/json: schema: $ref: '#/components/schemas/error' parameters: job_id: in: path name: Job ID schema: type: string required: true description: ID of job to show