Voz¶
Antes de comenzar¶
Prepare los números de destino y origen, y elija una plantilla de voz o una composición voice. TTS significa texto a voz. Para bloques WAV, cargue el audio en el File Server y conserve el ID del archivo.
Revise Autenticación y sustituya los valores de ejemplo, incluidos los IDs de plantilla y las fechas, antes de ejecutar una solicitud.
Secuencia de la solicitud¶
- Prepare la solicitud HTTP indicada a continuación.
- Complete los campos requeridos y solo los opcionales que necesite su integración.
- Ejecute la solicitud y revise la respuesta.
- Conserve el identificador retornado, cuando exista, y compruebe el resultado antes de repetir un envío.
Solicitud HTTP¶
La trama para realizar una llamada es la siguiente:
POST https://send.obmessage.ai/api/v1/voice
X-Api-Key: {{API_KEY}}
Content-Type: application/json
{
"phone": "string",
"from": "string",
"reference": "string",
"group": "string",
"template_id": "string",
"not_sent_after": "string",
"replay_times": 1,
"voice": {
"name": "string",
"audio": {
"pitch": 0,
"speed": 0,
"volume_db": 0,
"profile": "string"
},
"messages": [
{
"type": "string",
"file": {
"id": "string"
}
},
{
"type": "string",
"input": {
"text": "string"
}
}
]
},
"fields": [
{
"name": "string",
"value": "string",
"short": true
}
]
}
Importante
También es compatible el uso de plantillas de voz. En este caso, en lugar de enviar voice, se envía template_id con el código de identificación de la plantilla.
Importante
Para usar archivos .wav, estos deben subirse al File Server y se debe enviar el ID del archivo en voice.messages.file.id.
Campos de la solicitud¶
La tabla identifica campos requeridos y opcionales. Los requisitos de campos anidados aplican cuando se utiliza el objeto o tipo de mensaje correspondiente.
| Campo | Descripción | Obligatorio |
|---|---|---|
| phone | Número telefónico al cual se realiza la llamada. Debe ser compatible con la recomendación E.164. | Sí |
| from | Número telefónico del emisor. | Sí |
| reference | Valor de referencia individual del mensaje. | No |
| template_id | ID de la plantilla. Si este campo se envía, se ignora voice. | No |
| not_sent_after | Todo mensaje procesado después de la hora indicada se marcará con estado cancelled. El formato de hora debe ser UTC. Este campo no es obligatorio, pero es recomendable para evitar envíos fuera del horario regulado. Ver el apartado de políticas. | No |
| replay_times | Cantidad de veces que se repetirá el audio de la llamada. | No |
| voice.name | Nombre de la voz utilizada para la generación de TTS. | No |
| voice.audio | Datos para la configuración del audio TTS. | No |
| voice.audio.pitch | Define el tono de voz. | No |
| voice.audio.speed | Define la velocidad de la voz. | No |
| voice.audio.volume_db | Define el volumen de la voz. | No |
| voice.audio.profile | Define el perfil de optimización de voz. | No |
| voice.messages | Conjunto de mensajes para reproducir durante la llamada. | Sí |
| voice.messages.type | Define el tipo de mensaje. Tipos disponibles: wav y tts. | No |
| voice.messages.file | Datos del archivo .wav. Solo aplica para type=wav. | No |
| voice.messages.file.id | ID del archivo en el File Server. | Sí |
| voice.messages.input | Datos para la generación de tts. Solo aplica para type=tts. | No |
| voice.messages.input.text | Texto para convertir a voz. | Sí |
| fields | Conjunto de campos dinámicos asociados al mensaje. | No |
| fields.name | Nombre del campo. | Sí |
| fields.value | Valor correspondiente al campo. | Sí |
| fields.short | Indica si el valor del campo será acortado. | No |
Trama JSON de ejemplo¶
POST https://send.obmessage.ai/api/v1/voice
X-Api-Key: {{API_KEY}}
Content-Type: application/json
{
"phone": "+18099999999",
"from": "8099999999",
"reference": "9999",
"group": "999",
"template_id": "581970c8-f7ce-4533-be7e-8064c3adce0e",
"not_sent_after": "2024-02-12T23:30:59Z",
"replay_times": 1,
"fields": [
{
"name": "cuota",
"value": "138.98",
"short": false
}
]
}
Respuesta¶
El endpoint retorna 200 OK con la siguiente respuesta JSON. Revise status; esta respuesta no confirma por sí sola que la llamada haya sido atendida o completada.
{
"id": "string",
"phone": "string",
"reference": "string",
"group": "string",
"status": "string",
"created_at": "string"
}
Campos de la respuesta¶
| Campo | Descripción |
|---|---|
| id | Código de identificación del mensaje. |
| phone | Número telefónico del destinatario. |
| reference | Valor de referencia del mensaje, correspondiente al mismo valor enviado. |
| group | Valor de referencia grupal del mensaje, correspondiente al mismo valor enviado. |
| status | Estado actual del mensaje. Los estados son received y error. |
| created_at | Fecha en la que se recibe el mensaje, en formato RFC 3339. |
Soporte TTS¶
Contamos con una amplia variedad de voces. Entre los tipos disponibles se encuentran:
- Neural2: voces basadas en la misma tecnología utilizada para crear voces personalizadas. Neural2 representa una generación avanzada de voz sintética y permite su uso sin necesidad de entrenar una voz personalizada.
- WaveNet: red neuronal profunda para generar audio muestra a muestra.
Más información
Para conocer más sobre estos servicios, puede hacer clic en este enlace.
Para consultar las voces disponibles, utilice el siguiente endpoint:
GET https://send.obmessage.ai/api/v1/voices
Este endpoint retorna una respuesta similar a la siguiente:
{
"name": "gl-ro-RO-Wavenet-A",
"language_code": "ro-RO",
"type": "wavenet",
"gender": "female",
"natural_sample_rate_hertz": 24000
}
Consultar resultados y errores¶
Revise los registros del canal en Actividades. Conserve la referencia y el grupo utilizados por la integración para localizar los registros. Ante solicitudes fallidas, consulte Respuestas de error.