Silence Detection Endpoint
1. Overview
The https://api.revidapi.com/paid/media/silence endpoint is part of the Media API and is designed to detect silence intervals in a given media file. It takes a media URL, along with various parameters for configuring the silence detection process, and returns the detected silence intervals.
2. Endpoint
POST https://api.revidapi.com/paid/media/silence
3. Request
Headers
x-api-key(required): The API key for authentication.
Body Parameters
The request body should be a JSON object with the following parameters:
media_url(required, string): The URL of the media file to be processed.start(optional, string): The start time for the silence detection process, in the formatHH:MM:SS.ms. If not provided, the process will start from the beginning of the media file.end(optional, string): The end time for the silence detection process, in the formatHH:MM:SS.ms. If not provided, the process will continue until the end of the media file.noise(optional, string): The noise threshold for silence detection, in decibels (dB). Default is-30dB.duration(required, number): The minimum duration (in seconds) for a silence interval to be considered valid.mono(optional, boolean): Whether to process the audio as mono (single channel) or not. Default istrue.webhook_url(required, string): The URL to which the response should be sent as a webhook.id(required, string): A unique identifier for the request.
The validate_payload directive in the routes file enforces the following JSON schema for the request body:
{
"type": "object",
"properties": {
"media_url": {"type": "string", "format": "uri"},
"start": {"type": "string"},
"end": {"type": "string"},
"noise": {"type": "string"},
"duration": {"type": "number", "minimum": 0.1},
"mono": {"type": "boolean"},
"webhook_url": {"type": "string", "format": "uri"},
"id": {"type": "string"}
},
"required": ["media_url", "duration"],
"additionalProperties": False
}
Example Request
{
"media_url": "https://example.com/audio.mp3",
"start": "00:00:10.0",
"end": "00:01:00.0",
"noise": "-25dB",
"duration": 0.5,
"mono": false,
"webhook_url": "https://example.com/webhook",
"id": "unique-request-id"
}
curl -X POST \
https://api.revidapi.com/paid/media/silence \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"media_url": "https://example.com/audio.mp3",
"start": "00:00:10.0",
"end": "00:01:00.0",
"noise": "-25dB",
"duration": 0.5,
"mono": false,
"webhook_url": "https://example.com/webhook",
"id": "unique-request-id"
}'
4. Response
Success Response
The success response will be sent as a webhook to the specified webhook_url. The response format follows the general response structure defined in the main application context (app.py). Here's an example:
{
"endpoint": "/v1/media/silence",
"code": 200,
"id": "unique-request-id",
"job_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6",
"response": [
{
"start": 10.5,
"end": 15.2
},
{
"start": 20.0,
"end": 25.7
}
],
"message": "success",
"pid": 12345,
"queue_id": 1234567890,
"run_time": 1.234,
"queue_time": 0.123,
"total_time": 1.357,
"queue_length": 0,
"build_number": "1.0.0"
}
Error Responses
- 400 Bad Request: This error is returned when the request body is missing or contains invalid parameters. Example response:
{
"code": 400,
"message": "Invalid request payload"
}
- 401 Unauthorized: This error is returned when the
x-api-keyheader is missing or invalid. Example response:
{
"code": 401,
"message": "Unauthorized"
}
- 500 Internal Server Error: This error is returned when an unexpected error occurs during the silence detection process. Example response:
{
"code": 500,
"message": "An error occurred during the silence detection process"
}
5. Error Handling
The endpoint handles the following common errors:
- Missing or invalid request parameters: Returns a 400 Bad Request error.
- Missing or invalid
x-api-keyheader: Returns a 401 Unauthorized error. - Unexpected exceptions during the silence detection process: Returns a 500 Internal Server Error.
The main application context (app.py) also includes error handling for situations where the task queue has reached its maximum length (MAX_QUEUE_LENGTH). In such cases, a 429 Too Many Requests error is returned.
6. Usage Notes
- The
media_urlparameter should point to a valid media file that can be processed by the silence detection service. - The
startandendparameters are optional and can be used to specify a time range within the media file for silence detection. - The
noiseparameter allows you to adjust the noise threshold for silence detection. Lower values (e.g.,-40dB) will detect more silence intervals, while higher values (e.g.,-20dB) will detect fewer silence intervals. - The
durationparameter specifies the minimum duration (in seconds) for a silence interval to be considered valid. This can be useful for filtering out very short silence intervals that may not be relevant. - The
monoparameter determines whether the audio should be processed as a single channel (mono) or multiple channels (stereo or surround).
7. Common Issues
- Providing an invalid or inaccessible
media_url. - Specifying
startandendtimes that are outside the duration of the media file. - Setting the
durationparameter to an unreasonably low value, which may result in detecting too many short silence intervals.
8. Best Practices
- Validate the
media_urlparameter to ensure it points to a valid and accessible media file. - Consider using the
startandendparameters to focus the silence detection on a specific time range within the media file, if needed. - Adjust the
noiseanddurationparameters based on your specific use case and requirements for silence detection. - If you need to process stereo or surround audio, set the
monoparameter tofalse. - Monitor the response from the endpoint to ensure that the silence detection process completed successfully and that the detected silence intervals meet your expectations.