Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función...

173
Verbio Software Reference Referencia de las funciones del Dialogic SDK Verbio Technologies, S.L.

Transcript of Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función...

Page 1: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Verbio Software Reference

Referencia de las funciones del Dialogic SDK

Verbio Technologies, S.L.

Page 2: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Verbio Software Reference: Referencia de las funciones delDialogic SDKVerbio Technologies, S.L.

publicado Septiembre de 2011Copyright © 2011 Verbio Technologies, S.L.

Page 3: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 4: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 5: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Tabla de contenidos1. Introducción ..................................................................................................................... 12. Descripción de las funciones ................................................................................................ 3

1. vx_activatevcb .......................................................................................................... 42. vx_ApplyDictionary ................................................................................................... 63. vx_asr_init ............................................................................................................... 84. vx_asv_addfile .........................................................................................................115. vx_asv_spkinfo ........................................................................................................136. vx_asv_init ..............................................................................................................157. vx_asv_train ............................................................................................................168. vx_asv_verify ..........................................................................................................199. ATVX_BUILTIN .....................................................................................................2110. vx_chkwrd .............................................................................................................2211. vx_clrrsp ...............................................................................................................2312. vx_clrvad ..............................................................................................................2413. vx_deactivatevcb ....................................................................................................2514. vx_devclose ...........................................................................................................2715. vx_dtmf_close ........................................................................................................2816. vx_dtmf_open ........................................................................................................2917. vx_dtmf_word ........................................................................................................3018. vx_dtmf_write ........................................................................................................3119. ATVX_ERRMSGP .................................................................................................3220. vx_getasrlic ...........................................................................................................3321. vx_GetDllVersion ...................................................................................................3522. vx_getparm ............................................................................................................3623. vx_getttslic ............................................................................................................3724. vx_getusedasrlic .....................................................................................................3825. vx_getusedttslic ......................................................................................................3926. ATVX_IVCB .........................................................................................................4027. ATVX_LASTERR ..................................................................................................4128. vx_libclose ............................................................................................................4229. vx_libinit ...............................................................................................................4330. vx_loadcd ..............................................................................................................4531. vx_loadvcb ............................................................................................................4732. vx_nbest ................................................................................................................4933. ATVX_NIND ........................................................................................................5134. vx_playstr ..............................................................................................................5235. vx_playstr_close .....................................................................................................5436. vx_playstr_open .....................................................................................................5537. vx_playstr_read ......................................................................................................5638. vx_playstr_release ...................................................................................................5739. vx_playstr_wait ......................................................................................................5840. vx_prevcb ..............................................................................................................5941. vx_prevcbdev .........................................................................................................6142. vx_prevcbex ..........................................................................................................6443. vx_prevcbex2 .........................................................................................................6644. vx_reccfg_release ...................................................................................................6945. vx_reccfg_wait .......................................................................................................7146. vx_recind ..............................................................................................................7347. vx_recstr ...............................................................................................................7548. vx_recstr_open .......................................................................................................7849. vx_recstr_release ....................................................................................................7950. vx_recstr_wait ........................................................................................................8051. vx_recstr_write .......................................................................................................8152. vx_RegisterVVICallback ..........................................................................................8253. vx_regsrvclose .......................................................................................................8354. vx_SapiClose .........................................................................................................8455. vx_SapiOpen ..........................................................................................................8556. vx_SapiOpenEx ......................................................................................................86

Page 6: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

57. vx_SapiSelect .........................................................................................................8958. vx_SetAbbreviations ................................................................................................9059. vx_setcd ................................................................................................................9260. vx_SetDictionary ....................................................................................................9461. vx_setparm ............................................................................................................9662. vx_setvcb ..............................................................................................................9763. vx_srvclose ............................................................................................................9964. vx_termplaystr ..................................................................................................... 10065. vx_termrecstr ....................................................................................................... 10166. vx_thclose ........................................................................................................... 10267. vx_tts_init ........................................................................................................... 10368. vx_ttsSetAbbreviations .......................................................................................... 10569. vx_ttsSetDictionary ............................................................................................... 10770. vx_unloadvcb ....................................................................................................... 10971. vx_vsd_close ........................................................................................................ 11172. vx_vsd_open ........................................................................................................ 11273. vx_vsd_write ........................................................................................................ 11474. vx_word .............................................................................................................. 11575. vx_wordex ........................................................................................................... 11676. vx_wordrule ......................................................................................................... 117

3. Estructuras de datos y parámetros ...................................................................................... 1191. VX_RSP - Recognize String Parameter ....................................................................... 1202. VAD_PRM - Voice Activity Detection Parameters ....................................................... 1213. MODEATTRIBUTES - SAPI Speaker Id .................................................................... 1254. Definición de parámetros para vx_getparm() y vx_setparm() ........................................... 1265. Obtención de información adicional mediante vx_word o vx_wordex ............................... 134

4. Código de ejemplos en C/C++ ........................................................................................... 1371. Ejemplo Síncrono ................................................................................................... 1382. Ejemplo Asíncrono ................................................................................................. 1443. Ejemplo con Barge-in .............................................................................................. 1504. Ejemplo de Detección de voz y de tonos DTMF ........................................................... 157

A. Ficheros utilizados por los ejemplos .................................................................................. 159Índice .............................................................................................................................. 163

Verbio Software Reference

vi Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 7: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Lista de tablas3.1. Parámetros globales en el SDK de Dialogic ....................................................................... 1263.2. Parámetros de canal en el SDK de Dialogic ....................................................................... 1293.3. Elementos de un vocabulario o gramática ABNF ................................................................ 134

Page 8: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 9: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Lista de ejemplos3.1. Información devuelta por el servidor de reconocimiento ...................................................... 1354.1. Ejemplo síncrono de Verbio Dialogic ............................................................................... 1384.2. Ejemplo asíncrono de Verbio Dialogic ............................................................................. 1444.3. Ejemplo con barge-in de Verbio Dialogic .......................................................................... 1504.4. Ejemplo de Detección de voz y de tonos DTMF ................................................................. 157

Page 10: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 11: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Capítulo 1. IntroducciónEl objectivo de este documento es describir el conjunto de funciones que constituyen el Dialogic SDKproporcionado en Verbio. Este SDK está diseñado pensando en aquellos integradores que trabajan en entornos deprogramación C/C++ sobre tarjetas Dialogic.

Es compatible con las versiones antiguas de Verbio (IberVox 6.41 y anteriores), aunque en nuevosdesarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevasfuncionalidades incorporadas en Verbio (aunque este SDK sólo está disponible en entornos de programaciónMicrosoft Visual Studio).

En el Capítulo 2. Descripción de las funciones se describen todas las funciones disponibles en el SDK.

En el Capítulo 3. Estructuras de datos y parámetros se describen las estructuras y parámetros comunes a lasfunciones del SDK.

En el Capítulo 4. Código de ejemplos en C/C++ se incluyen 3 ejemplos de utilización de este SDK: un ejemplode programación síncrona, otro de programación asíncrona y un tercero de programación utilizando la técnicadel barge-in.

Page 12: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 13: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Capítulo 2. Descripción de lasfunciones

Page 14: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

1. vx_activatevcb

FUNCION int vx_activatevcb(int chdev, int vcbhandle, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

int vcbhandle descriptor de un vocabulario o gramática ABNF previamentecargado

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA >=0 indicando el descriptor del vocabulario si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

1.1. Descripción

La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El descriptordel vocabulario cargado se obtiene invocando a la función vx_loadvcb(). Cuando no deba utilizarse en elsiguente proceso de reconocimiento, debe ser desactivado mediante la función vx_deactivatevcb().

1.2. Funcionamiento asíncrono

En modo asíncrono la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

1.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

vcbhandle descriptor de un vocabulario o gramática ABNF previamente cargado mediante la funciónvx_loadvcb().

mode especifica si debe ejecutarse la función vx_activatevcb() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_activatevcb() asíncronamente

EV_SYNC Ejecuta vx_activatevcb() síncronamente (valor por defecto)

1.4. Precauciones

En cualquier momento, pueden estar activos varios vocabularios y gramáticas. El descriptor utilizado en lafunción vx_activatevcb() debe ser el valor retornado por la función vx_loadvcb(). La función ATVX_IVCB()retorna el descriptor asociado al vocabulario que contiene la locución reconocida.

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

1.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuanto

Capítulo 2. Descripción de las funciones

4 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 15: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

finalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_INVWORD THE VOCABULARY TRANSCRIPTION WAS NOT FOUND

EVX_SYSTEM SYSTEM ERROR. Check errno.

1.6. Elementos relacionados

vx_setvcb, vx_loadvcb, vx_deactivatevcb, vx_unloadvcb, ATVX_IVCB

1.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 5

Page 16: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

2. vx_ApplyDictionary

FUNCION int vx_ApplyDictionary(const char *inVcbName, const char *outVcbName, constchar *Dictionary)

const char*inVcbName

nombre del fichero que contiene el vocabulario que debeprocesarse

const char*outVcbName

nombre del fichero bajo el que se almacenará el fichero devocabulario procesado

const char*Dictionary

nombre del fichero que contiene el vocabulario deexcepciones

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

2.1. Descripción

La función vx_ApplyDictionary() genera un fichero de vocabulario a partir de otro original incluyendo lasexcepciones y acrónimos contenidos en el diccionario especificado.

2.2. Descripción de los parámetros

inVcbName nombre del fichero de vocabulario original que debe ser procesado. Cada línea debecontener una palabra del vocabulario formado por una o más palabras.

outVcbName nombre del fichero que contendrá el nuevo vocabulario. Cada línea contendrá unapalabra del vocabulario formada por las palabras originales o bien poraquellas que hayan sido modificadas siguiendo las pautas del diccionario deexcepciones.

Dictionary nombre del fichero de texto que contiene las excepciones que deben considerarse.Consulte Verbio Software Reference: Guía del usuario para más información delformato que debe tener este un fichero de excepciones.

2.3. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_NOMEM OUT OF MEMORY

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_DICFILE THE DICTIONARY FILE NAME IS NOT VALID. Check the dictionary file name.

2.4. Elementos relacionados

vx_prevcb, vx_prevcbex, vx_chkwrd

Capítulo 2. Descripción de las funciones

6 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 17: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

2.5. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 7

Page 18: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

3. vx_asr_init

FUNCION int vx_asr_init(const char *configuration, const char *defasrlng)

const char*configuration

identificador de la configuración de reconocimiento pordefecto

const char*defasrlng

identificador del idioma de reconocimiento por defecto

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

3.1. Descripción

La función vx_asr_init() inicializa la librería de reconocimiento del habla de Verbio. En nuevos desarrollos esrecomendable utilizar esta función (conjuntamente con la función vx_tts_init en caso de que también serequiera síntesis del habla) en lugar de la función vx_libinit, puesto que permite indicar al servidor losparámetros de inicialización de una manera mucho más concreta.

3.2. Descripción de los parámetros

configuration especifica la configuración por defecto con la que arrancará el servidor dereconocimiento. Por configuración de reconocimiento se entiende el idioma oidiomas soportados (en caso de configuraciones multilingües) por el servidor dereconocimiento. Cualquier proceso de reconocimiento invocado usará los modelosde reconocimiento asociados con la configuración activa en ese momento, por loque únicamente podrá reconocerse en alguno de los idiomas contenidos en dichaconfiguración. Para más información, puede consultarse el documento VerbioSoftware Reference: Guía del Usuario.

CFG_SPANISH Español castellano

CFG_SPANISH_CATALAN Español castellano +catalán

CFG_SPANISH_BASQUE Español castellano +euskera

CFG_SPANISH_GALICIAN Español castellano +gallego

CFG_SPANISH_CATALAN_BASQUE_GALICIAN Español castellano +catalán + euskera + gallego

CFG_PORTUGUESE Portugués

CFG_PORTUGUESE_BRAZILIAN Portugués brasileño

CFG_SPANISH_ARGENTINIAN Español argentino

CFG_SPANISH_CHILEAN Español chileno

CFG_SPANISH_COLOMBIAN Español colombiano

Capítulo 2. Descripción de las funciones

8 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 19: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

CFG_SPANISH_MEXICAN Español mexicano

CFG_SPANISH_VENEZUELAN Español venezolano

CFG_FRENCH Francés

CFG_ENGLISH Inglés

defasrlng especifica el idioma por defecto con el que trabaja la configuración por defecto.En el caso de configuraciones monolingües es redundante, aunque sí esimprescindible cuando se activa una configuración multilingüe.

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_COLOMBIAN Español colombiano

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_VENEZUELAN Español venezolano

LNG_FRENCH Francés

LNG_ENGLISH Inglés

3.3. Precauciones

La función vx_asr_init() debe invocarse antes que ninguna otra de las funciones del SDK de Verbiorelacionadas con el reconocimiento del habla, a excepción de aquella destinada a establecer el servidor detrabajo por defecto en configuraciones cliente-servidor (vx_setparm).

3.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_SRERROR DIALOGIC SRL ERROR. Check ATDV_LASTERR() and ATDV_ERRMSGP().

EVX_DXERROR DIALOGIC VOICE ERROR. Check ATDV_LASTERR() andATDV_ERRMSGP().

EVX_NOBOARDS NO BOARDS DETECTED. Check Dialogic Drivers Start Up.

EVX_INVSETUP VERBIO INTERNAL ERROR. Files may be corrupted. Check disk and repeatSetup.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 9

Page 20: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EVX_NOMEM OUT OF MEMORY.

EVX_NOLICFILE NO LICENSE FILE WAS FOUND. Run CheckOut to obtain a license file.

EVX_INVLIC THE LICENSE FILE IS NOT VALID. Run CheckOut to obtain a valid licensefile.

EVX_SYSTEM SYSTEM ERROR.Check errno.

EVX_INVSRVER INVALID DIALOGIC SRL RELEASE (libsrlmt.dll). Check README.TXT.

EVX_INVDXVER INVALID DIALOGIC VOICE LIBRARY RELEASE (libdxxmt.dll).

3.5. Elementos relacionados

vx_libinit

vx_tts_init

vx_libclose

3.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

10 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 21: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

4. vx_asv_addfile

FUNCION int vx_asv_addfile(int chdev, const char* id, const char* filename, const char*transcription, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

const char *id identificador del usuario

const char *filename nombre del fichero de audio a incorporar al usuario

const char*transcription

transcripción del contenido del fichero

unsigned int mode formato de las muestras de audio

RETORNA 0 si el resultado es satisfactorio

<0 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

4.1. Descripción

La función vx_asv_addfile() almacena un fichero de audio en la base de datos de usuarios para ser utilizado enel momento de crear la huella vocal del usuario indicado, mediante la invocación de la función vx_asv_train.Adicionalmente, utilizando la capacidad de reconocimiento de Verbio ASR, comprueba también que elcontenido del fichero coincide con la transcripción, de modo que pueda certificarse que el usuario hapronunciado exactamente aquello que se le ha solicitado.

4.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante lafunción dx_open().

id identificador del usuario del que se ha obtenido un nuevo fichero de audio para elentrenamiento de su huella vocal.

El identificador de un usuario es una cadena alfanumérica (dígitos o caracteresa-z,A-Z) elegida por el desarrollador de la aplicación. Debe ser única para cadausuario, siendo habitual que el identificador coincida con el identificadornumérico (cadena de dígitos) que se le solicitará al usuario para identificarse en elsistema.

filename nombre completo del fichero que contiene la locución del usuario indicado,destinado a ser utilizado en el proceso de creación de su huella vocal.

transcription transcripción del contenido del fichero de audio, para certificar que el contenidocoincide con la secuencia de dígitos solicitada.

mode especifica el formato de las muestras de audio del fichero.

MC_ALAW fichero sin cabecera, muestras de audio en formato Ley A (8bits, 8 KHz).

MC_MULAW fichero sin cabecera, muestras de audio en formato Ley Mu (8bits, 8 KHz).

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 11

Page 22: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

MC_LIN16 fichero sin cabecera, muestras de audio en formato lineal (16bits, 8 KHz).

MC_WAVE fichero WAVE, muestras de audio en cualquiera de losformatos anteriores.

4.3. Precauciones

El contenido de los ficheros de entrenamiento debe ser, exclusivamente, cadenas de dígitos (de longitudvariable). Por lo tanto, las transcripciones proporcionadas deben ser cadenas numéricas, del tipo 12345678,952611232, etcétera. Se aconseja que las cadenas de entrenamiento tengan una longitud mínima de 8 dígitos yque se proporcionen, al menos, 20 de ellas, obtenidas en diferentes días (mínimo dos) y franjas horarias(mañana/tarde).

Alternativamente a utilizar la función vx_asv_addfile para cada nuevo fichero, también es posible invocardirectamente la función vx_asv_train especificando un listado de ficheros de audio a utilizar en elentrenamiento de la huella vocal del usuario. No obstante, se aconseja el uso de la función vx_asv_addfile amedida que se adquieren los ficheros de audio, ya que de este modo podrán tomarse acciones correctivas en casode que el proceso de validación indique que la transcripción no coincide con el contenido real del fichero.

4.4. Errores

En caso de error, la función retorna un valor negativo. Los posibles códigos de error retornados por esta funciónson:

-1 El canal especificado no es válido.

-4 Error interno de Verbio. La estructura de la base de datos está corrupta.

-6 Error al lanzar el proceso de reconocimiento del contenido del fichero de audio.

-18 Algún parámetro no ha sido especificado o bien es incorrecto.

-27 El contenido del fichero no coincide con la transcripción proporcionada, o bien no se ha podidocomprobar.

4.5. Elementos relacionados

vx_asv_init, vx_asv_spkinfo, vx_asv_train, vx_asv_verify

4.6. Códigos de ejemploConsulte el ejemplo de la Library SDK.

Capítulo 2. Descripción de las funciones

12 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 23: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

5. vx_asv_spkinfo

FUNCION int vx_asv_spkinfo(int chdev, const char* id, ASV_SPKINFO* info)

int chdev descriptor de un canal abierto de Dialogic

const char *id identificador del usuario

ASV_SPKINFO* info puntero a una estructura del tipo ASV SpeakerInformation

RETORNA 2 si el usuario está registrado y dispone de huella vocal

1 si el usuario está registrado y no dispone de huella vocal

0 si el usuario no está registrado

<0 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

5.1. Descripción

La función vx_asv_spkinfo() permite conocer el estado del usuario indicado, es decir, si está registrado (se harealizado alguna operación sobre él) y si está listo para que se realicen sobre él operaciones de verificación (seha generado su huella vocal). Además, a través de la estructura ASV Speaker Information(ASV_SPKINFO), permite obtener información adicional acerca de las locuciones de que dispone actualmenteel usuario para el entrenamiento de su huella vocal.

5.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

id identificador del usuario del que se desea obtener información.

el identificador de un usuario es una cadena alfanumérica (dígitos o caracteres a-z,A-Z) elegida porel desarrollador de la aplicación. Debe ser única para cada usuario, siendo habitual que elidentificador coincida con el identificador numérico (cadena de dígitos) que se le solicitará alusuario para identificarse en el sistema.

info NULL si no se requiere información adicional.

puntero a una estructura de tipo ASV Speaker Information (ASV_SPKINFO) en la querecibir información acerca de las locuciones de que dispone actualmente el usuario para elentrenamiento de su huella vocal. Para más información acerca de esta estructura, consulte Capítulo3. Estructuras de datos y parámetros.

5.3. Errores

Si la función retorna -1 indicando que se ha producido un error, debe comprobarse que el canal especificadocomo primer parámetro es válido.

5.4. Elementos relacionados

vx_asv_init, vx_asv_addfile, vx_asv_train, vx_asv_verify

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 13

Page 24: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

5.5. Códigos de ejemploConsulte el ejemplo de la Library SDK.

Capítulo 2. Descripción de las funciones

14 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 25: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

6. vx_asv_init

FUNCION int vx_asv_init()

RETORNA 0 si el resultado es satisfactorio

<0 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

6.1. Descripción

La función vx_asv_init() inicializa la librería Verbio, preparándola para poder recibir peticiones deverificación de locutor.

6.2. Precauciones

La función vx_asv_init() debe invocarse previamente a cualquier invocación del resto de funciones asociadas ala verificación de locutor, tales como: vx_asv_addfile, vx_asv_train, vx_asv_verify y vx_asv_spkinfo.

6.3. Errores

En caso de error, la función retorna un valor negativo. Los posibles códigos de error retornados por esta funciónson:

-13 Error interno de Verbio. Probablemente la instalación de los componentes de ASV no se ha realizado ose ha hecho de forma incorrecta.

-14 No se dispone de licencias de ASV o bien éstas han caducado.

6.4. Elementos relacionados

vx_asv_addfile, vx_asv_train, vx_asv_verify, vx_asv_spkinfo

6.5. Códigos de ejemploConsulte el ejemplo de la Library SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 15

Page 26: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

7. vx_asv_train

FUNCION int vx_asv_train(int chdev, const char* id, const char* filename, int* lpiword,unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

const char *id identificador del usuario

const char *filename listado de ficheros de audio a utilizar durante el proceso deentrenamiento

int *lpiword puntero a un entero que, en caso de error en alguno de losficheros, almacenará la línea que contiene el fichero erróneo

unsigned int mode formato de las muestras de audio de los ficheros

RETORNA 0 si el resultado es satisfactorio

<0 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

7.1. Descripción

La función vx_asv_train() lanza el proceso de generación de la huella vocal del usuario indicado. Laslocuciones del usuario que se utilizarán para este proceso serán las especificadas mediante el parámetrofilename junto con todas aquellas asignadas al usuario anteriormente mediante llamadas a las funcionesvx_asv_addfile y/o vx_asv_train().

Una vez completada correctamente la función vx_asv_train(), el usuario ya estará listo para que se realicensobre él operaciones de verificación mediante la función vx_asv_verify().

En caso de que el usuario ya dispusiera de huella vocal, se generará una nueva huella vocal que reemplazará a laya existente.

7.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

id identificador del usuario al que entrenar su huella vocal.

El identificador de un usuario es una cadena alfanumérica (dígitos o caracteres a-z,A-Z)elegida por el desarrollador de la aplicación. Debe ser única para cada usuario, siendohabitual que el identificador coincida con el identificador numérico (cadena de dígitos) quese le solicitará al usuario para identificarse en el sistema.

filename NULL si todos los ficheros de audio y sus respectivas transcripciones se han proporcionadopreviamente invocando las funciones vx_asv_addfile y/o vx_asv_train().

En caso contrario, nombre completo del fichero de texto que contiene el listado de ficherosde audio a utilizar para la generación de la huella vocal, junto con sus respectivastranscripciones. El formato de este fichero debe ser el siguiente (una línea, acabada enretorno de carro, para cada fichero de audio a utilizar):

nombre_fichero_audio TAB transcripcion_cadena_digitos RC

Capítulo 2. Descripción de las funciones

16 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 27: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

RC = Retorno de Carro, TAB = Tabulador

lpiword en caso de haber especificado un listado de ficheros mediante el parámetro filename,puntero a un entero que, en caso de error en alguno de los ficheros, recibirá el número de lalínea que contiene el fichero erróneo. Debe consultarse este valor si la función retorna elerror -27.

NULL en caso contrario.

mode en caso de haber especificado un listado de ficheros mediante el parámetro filename,indica el formato de las muestras de audio de los ficheros.

MC_ALAW fichero sin cabecera, muestras de audio en formato Ley A (8 bits, 8KHz).

MC_MULAW fichero sin cabecera, muestras de audio en formato Ley Mu (8 bits, 8KHz).

MC_LIN16 fichero sin cabecera, muestras de audio en formato lineal (16 bits, 8KHz).

MC_WAVE fichero WAVE, muestras de audio en cualquiera de los formatosanteriores.

7.3. Precauciones

El contenido de los ficheros de entrenamiento debe ser, exclusivamente, cadenas de dígitos (de longitudvariable). Por lo tanto, las transcripciones proporcionadas deben ser cadenas numéricas, del tipo 12345678,952611232, etcétera. Se aconseja que las cadenas de entrenamiento tengan una longitud mínima de 8 dígitos yque se proporcionen, al menos, 20 de ellas, obtenidas en diferentes días (mínimo dos) y franjas horarias(mañana/tarde).

En lugar de especificar conjuntamente el listado de ficheros y sus transcripciones mediante la funciónvx_asv_train, es preferible utilizar la función vx_asv_addfile individualmente para cada fichero según se vayanobteniendo las locuciones del usuario. De este modo, podrán tomarse acciones correctivas en caso de que elproceso de validación interno indique que el contenido de algún fichero no coincide con la transcripciónproporcionada.

7.4. Errores

En caso de error, la función retorna un valor negativo. Los posibles códigos de error retornados por esta funciónson:

-1 El canal especificado no es válido.

-4 Error interno de Verbio. La estructura de la base de datos está corrupta.

-5 No se dispone de suficiente memoria disponible para ejecutar la función.

-6 Error al lanzar el proceso de reconocimiento del contenido del fichero de audio.

-10 Error al lanzar el proceso de verificación del locutor.

-18 Algún parámetro no ha sido especificado o bien es incorrecto.

-21 El fichero especificado como parámetro no está disponible.

-27 El contenido de algún fichero no coincide con la transcripción proporcionada, o bien no se ha podidocomprobar.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 17

Page 28: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

-28 No se dispone de suficiente material para entrenar. Es necesario proporcionar más locuciones numéricasdel usuario a entrenar.

7.5. Elementos relacionados

vx_asv_init, vx_asv_spkinfo, vx_asv_addfile, vx_asv_verify

7.6. Códigos de ejemploConsulte el ejemplo de la Library SDK.

Capítulo 2. Descripción de las funciones

18 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 29: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

8. vx_asv_verify

FUNCION int vx_asv_verify(int chdev, const char* id, const char* filename, const char*transcription, float* score, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

const char *id identificador del usuario

const char *filename nombre del fichero de audio utilizado para verificar laidentidad del usuario

const char*transcription

transcripción del contenido del fichero de audio

float* score índice de confianza de la veracidad de la identidad del usuario

unsigned int mode formato de las muestras de audio

RETORNA 1 si el usario SÍ es quien dice ser

0 si el usario NO es quien dice ser

<0 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

8.1. Descripción

La función vx_asv_verify() lanza el proceso de verificación para determinar si la locución proporcionadapertenece realmente al usuario indicado. Para ello, se deberá haber generado previamente la huella vocal dedicho usuario mediante la función vx_asv_train.

8.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante lafunción dx_open().

id identificador del usuario cuya identidad pretende verificarse.

el identificador de un usuario es una cadena alfanumérica (dígitos o caracteresa-z,A-Z) elegida por el desarrollador de la aplicación. Debe ser única para cadausuario, siendo habitual que el identificador coincida con el identificadornumérico (cadena de dígitos) que se le solicitará al usuario para identificarse en elsistema.

filename nombre completo del fichero de audio que será utilizado en el proceso deverificación.

transcription transcripción del contenido del fichero de audio, para certificar que el contenidocoincide con la secuencia de dígitos solicitada.

score puntero a float que, tras el proceso de verificación, almacenará el índice deconfianza de la veracidad de la identidad del usuario.

mode especifica el formato de las muestras de audio del fichero.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 19

Page 30: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

MC_ALAW fichero sin cabecera, muestras de audio en formato Ley A (8bits, 8 KHz).

MC_MULAW fichero sin cabecera, muestras de audio en formato Ley Mu (8bits, 8 KHz).

MC_LIN16 fichero sin cabecera, muestras de audio en formato lineal (16bits, 8 KHz).

MC_WAVE fichero WAVE, muestras de audio en cualquiera de losformatos anteriores.

8.3. Precauciones

El contenido de los ficheros de verificación debe ser, exclusivamente, cadenas de dígitos (de longitud variable).Por lo tanto, las transcripciones proporcionadas deben ser cadenas numéricas, del tipo 12345678,952611232, etcétera. Se aconseja que las cadenas de verificación tengan una longitud de entre 6 y 8 dígitos(cuanto más larga, mayor fiablidad en el proceso de verificación).

En general, la decisión de si el usuario ha sido verificado o no deberá tomarse del valor devuelto por la función,y no del valor de índice de confianza (parámetro score), el cual se proporciona principalmente a efectosestadísticos.

8.4. Errores

En caso de error, la función retorna un valor negativo. Los posibles códigos de error retornados por esta funciónson:

-1 El canal especificado no es válido.

-4 Error interno de Verbio. La estructura de la base de datos está corrupta.

-5 No se dispone de suficiente memoria disponible para ejecutar la función.

-6 Error al lanzar el proceso de reconocimiento del contenido del fichero de audio.

-10 Error al lanzar el proceso de verificación del locutor.

-18 Algún parámetro no ha sido especificado o bien es incorrecto.

-21 El fichero especificado como parámetro no está disponible.

-27 El contenido del fichero no coincide con la transcripción proporcionada, o bien no se ha podidocomprobar.

8.5. Elementos relacionados

vx_asv_init, vx_asv_spkinfo, vx_asv_train, vx_asv_addfile

8.6. Códigos de ejemploConsulte el ejemplo de la Library SDK.

Capítulo 2. Descripción de las funciones

20 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 31: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

9. ATVX_BUILTIN

FUNCION int ATVX_BUILTIN(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 para indicar que el resultado del reconocimiento no procede de una gramática built-in

1 para indicar que el resultado del reconocimiento sí procede de una gramática built-in

INCLUDES vxxxlib.h

MODO síncrono

9.1. Descripción

La función ATVX_BUILTIN() indica si la gramática que ha devuelto el resultado de reconocimiento alfinalizar la llamada a la función vx_recind() o vx_nbest() es una gramática interna (built-in) o no.

9.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

9.3. Precauciones

El valor devuelto por la función ATVX_BUILTIN() únicamente es válido después de la correcta finalizaciónde la función vx_recind() o vx_nbest().

9.4. Elementos relacionados

vx_recind, vx_nbest

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 21

Page 32: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

10. vx_chkwrd

FUNCION int vx_chkwrd(const char *word, int language)

const char *word puntero a la palabra del vocabulario que desea verificarse

unsigned int language idioma del vocabulario

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

10.1. Descripción

La función vx_chkwrd() chequea la palabra del vocabulario especificada para garantizar que la funciónvx_prevcb() (o vx_prevcbex() o vx_prevcbex2() o vx_prevcbdev()) realizará la transcripción de texto afonema de forma correcta. Esta función es independiente del canal de Dialogic, por lo que únicamente debe serllamada una vez para cada nueva palabra de los vocabularios, independientemente de si, con posterioridad, elvocabulario se usará en varios canales.

10.2. Descripción de los parámetros

word puntero a la palabra del vocabulario (formada por una o más palabras) que deseaverificarse.

language especifica el idioma con el que se preparará el vocabulario que contiene la palabra aanalizar.

LVX_SPANISH Español

LVX_CATALAN Catalán

10.3. Precauciones

Esta función realiza una verificación más exhaustiva que la utilizada por la función vx_prevcb(). Por lo tanto,es posible que la función vx_prevcb() (o vx_prevcbex() o vx_prevcbex2() o vx_prevcbdev()) realice unacorrecta transcripción a pesar de que la función vx_chkwrd() devuelva error. No obstante, es aconsejablecorregir aquellas palabras incorrectas para conseguir una transcripción más precisa.

Esta función únicamente está disponible para los idiomas castellano y catalán.

10.4. Elementos relacionados

vx_prevcb, vx_prevcbex, vx_prevcbex2, vx_prevcbdev, vx_ApplyDictionary

10.5. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

22 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 33: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

11. vx_clrrsp

FUNCION void vx_clrrsp(VX_RSP *rspp)

VX_RSP *rspp puntero a una estructura de tipo Recognition StringParameter

RETORNA Nada

INCLUDES vxxxlib.h

MODO síncrono

11.1. Descripción

La función vx_clrrsp() resetea todos los campos de la estructura VX_RSP asignándoles sus valores por defecto.Es aconsejable utilizar esta función para inicializar cualquier estructura VX_RSP antes de ser utilizada por otrasfunciones.

11.2. Descripción de los parámetros

rspp puntero a la estructura de tipo Recognition String Parameter que desea inicializarse. Estaestructura especifica parámetros y condiciones de terminación adicionales para el proceso dereconocimiento. Consulte Capítulo 3. Estructuras de datos y parámetros para obtener mésinformación acerca de las estructuras VX_RSP.

11.3. Precauciones

La estructura RSP debe ser reseteada mediante la función vx_clrrsp() antes de modificar alguno de sus campos.

11.4. Elementos relacionados

vx_recstr, vx_recstr_open

11.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 23

Page 34: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

12. vx_clrvad

FUNCION void vx_clrvad(VAD_PRM *prm)

VAD_PRM *prm puntero a una estructura de tipo Voice ActivityDetection Parameter

RETORNA Nada

INCLUDES vxxxlib.h

MODO síncrono

12.1. Descripción

La función vx_clrvad() resetea todos los campos de la estructura VAD_PRM asignándoles sus valores pordefecto. Es aconsejable utilizar esta función para inicializar cualquier estructura VAD_PRM antes de ser utilizadapor otras funciones. Para conocer el contenido de la estructura y los valores por defecto que les asigna estafunción, consulte el Capítulo 3. Estructuras de datos y parámetros.

12.2. Descripción de los parámetros

prm puntero a la estructura de tipo Voice Activity Detection Parameter que desea inicializarse.Esta estructura especifica parámetros y condiciones de contorno para el proceso de detección de laactividad vocal. Consulte el Capítulo 3. Estructuras de datos y parámetros para obtener més informaciónacerca de la estructura VAD_PRM.

12.3. Precauciones

La estructura VAD_PRM debe ser reseteada mediante la función vx_clrvad antes de modificar cualquiera de suscampos.

12.4. Elementos relacionados

vx_vsd_open

12.5. Códigos de ejemploConsulte el ejemplo de detección de voz.

Capítulo 2. Descripción de las funciones

24 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 35: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

13. vx_deactivatevcb

FUNCION int vx_deactivatevcb(int chdev, int vcbhandle, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

int vcbhandle descriptor de un vocabulario o gramática ABNF previamentecargado y activado

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA >=0 indicando el descriptor del vocabulario si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

13.1. Descripción

La función vx_deactivatevcb() desactiva un vocabulario o gramática ABNF previamente cargado y activado enel canal especificado. El descriptor del vocabulario se obtiene al cargarlo mediante la función vx_loadvcb() ytambién debe usarse para activarlo mediante la función vx_activatevcb() o para descargarlo mediante la funciónvx_unloadvcb().

13.2. Funcionamiento asíncrono

En modo asíncrono la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

13.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

vcbhandle descriptor de un vocabulario o gramática ABNF previamente cargado mediante la funciónvx_loadvcb() y activado mediante la función vx_activatevcb().

mode especifica si debe ejecutarse la función vx_deactivatevcb() en modo síncrono oasíncrono.

EV_ASYNC Ejecuta vx_deactivatevcb() asíncronamente

EV_SYNC Ejecuta vx_deactivatevcb() síncronamente (valor pordefecto)

13.4. Precauciones

En cualquier momento, pueden estar activos varios vocabularios y gramáticas. El descriptor utilizado en lafunción vx_deactivatevcb() debe ser el valor retornado por la función vx_loadvcb().

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

13.5. Errores

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 25

Page 36: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID.

EVX_INVWORD THE VOCABULARY TRANSCRIPTION WAS OT FOUND

EVX_SYSTEM SYSTEM ERROR. Check errno.

13.6. Elementos relacionados

vx_setvcb, vx_loadvcb, vx_loadcd, vx_activatevcb, vx_unloadvcb, ATVX_IVCB

13.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

26 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 37: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

14. vx_devclose

FUNCION int vx_devclose(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

14.1. Descripción

La función vx_devclose() libera los recursos consumidos por el canal especificado. Es aconsejable invocarlacuando la aplicación no deba hacer uso de recursos de reconocimiento ni de síntesis por el canal indicado.

14.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open()

14.3. Precauciones

En aplicaciones cuyos descriptores de canal se creen y destruyan de forma permanente (es decir, que no sonutilizados a lo largo de todo el tiempo de vida de la aplicación) es muy recomandable invocar a esta función alfinalizar el uso del cada canal. De este modo, se liberaran recursos (memoria, procesos, etc.) que pueden serrequeridos por los nuevos canales a utilizar.

14.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_NOLINE NO MORE LINES ARE AVAILABLE FOR THE SPECIFIED CHANNEL DEVICE

14.5. Elementos relacionados

vx_libclose, vx_srvclose, vx_thclose

14.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 27

Page 38: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

15. vx_dtmf_close

FUNCION int vx_dtmf_close(int chdev, DTMF_REG* dtmfdev)

int chdev descriptor de un canal abierto de Dialogic

DTMF_REG*dtmfdev

descriptor de detección de tonos DTMF válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

15.1. Descripción

La función vx_dtmf_close() cierra el desciptor de detección de tonos DTMF abierto mediante la funciónvx_dtmf_open y libera los recursos utilizados durante el proceso de detección de tonos DTMF.

15.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

dtmfdev especifica el descriptor de detección de tonos DTMF válido obtenido mediante la funciónvx_dtmf_open.

15.3. Elementos relacionados

vx_dtmf_open, vx_dtmf_write

15.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

28 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 39: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

16. vx_dtmf_open

FUNCION DTMF_REG* vx_dtmf_open(int chdev, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

unsigned int mode formato de las muestras (Ley A, Ley Mu o lineal)

RETORNA != -1 para indicar el descriptor de detección de tonos DTMF

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

16.1. Descripción

La función vx_dtmf_open() inicializa el detector de tonos DTMF en el canal especificado, de modo que estépreparado para empezar a recibir las muestras de audio mediante la función vx_dtmf_write(). El valor devueltopor la función es requerido por las funciones vx_dtmf_write() y vx_dtmf_close().

16.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

mode especifica el formato de las muestras de audio pasadas al detector de voz.

MC_ALAW formato PCM (Ley A) a 8 KHz.

MC_MULAW formato PCM (Ley Mu) a 8 KHz.

MC_LIN16 formato PCM (lineal 16 bits) a 8 KHz.

16.3. Precauciones

Una vez finalizado el proceso de detección de tonos DTMF, es imprescindible invocar a la funciónvx_dtmf_close para liberar los recursos de memoria utilizados durante el proceso de detección.

16.4. Elementos relacionados

vx_dtmf_write, vx_dtmf_close

16.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 29

Page 40: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

17. vx_dtmf_word

FUNCION char* vx_dtmf_word(int chdev, const char *sequence)

int chdev descriptor de un canal abierto de Dialogic

const char* sequence cadena de tonos DTMF recibida en el canal.

RETORNA puntero a un vector de caracteres con el contenido de la palabra del vocabulario retornadapor la gramática, cuando se cumple una de sus alternativas.

puntero nulo si la secuencia no cumple ninguna de las opciones contempladas por lagramática DTMF.

INCLUDES vxxxlib.h

MODO síncrono

17.1. Descripción

La función vx_dtmfword() devuelve un puntero a un vector de caracteres ASCIIZ con el contenido asociado ala secuencia de tonos DTMF recibido por el canal y contenidos en el vocabulario o gramática activa en el canal.

17.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

sequence cadena de tonos DTMF recibida mediante las funciones vx_dtmf_open, vx_dtmf_write yvx_dtmf_close y de la que se desea saber si cumple la gramática DTMF cargada en el canalespecificado.

17.3. Elementos relacionados

vx_wordex, vx_recstr

17.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

30 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 41: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

18. vx_dtmf_write

FUNCION const char* vx_dtmf_write(DTMF_REG* dtmfdev, const void *buffer, unsignedint n)

DTMF_REG*dtmfdev

descriptor de detección de tonos DTMF válido

const void *buffer vector en el que se encuentran las muestras de audio que debeprocesar el detector de tonos DTMF

unsigned int n tamaño del vector de muestras (en bytes)

RETORNA puntero a un vector de caracteres con los tonos DTMF reconocidos en el vector de muestrasacabado de procesar

0 (NULL) en caso de que no se haya detectado ningún tono DTMF en el vector de muestrasacabado de procesar

INCLUDES vxxxlib.h

MODO síncrono

18.1. Descripción

La función vx_dtmf_write() envía las muestras recibidas hacia el detector de tonos DTMF para ser procesadas.

La función retorna los identificadores de los tonos DTMF detectados dentro de la última trama de muestrasprocesada. Los posibles identificadores son: 1 2 3 4 5 6 7 8 9 0 * # A B C D.

18.2. Descripción de los parámetros

dtmfdev especifica el descriptor de detección de tonos DTMF válido obtenido mediante la funciónvx_dtmf_open.

buffer vector en el que se encuentran las muestras de audio que debe procesar el detector de tonosDTMF.

n tamaño del vector de muestras.

18.3. Precauciones

El vector de caracteres retornado es volátil, de modo que en las sucesivas invocaciones a esta función o a lasfunciones vx_dtmf_open y vx_dtmf_close su valor se verá modificado, siendo necesario su almacenamiento sise requiere un procesado posterior del resultado retornado.

18.4. Elementos relacionados

vx_dtmf_open, vx_dtmf_close

18.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 31

Page 42: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

19. ATVX_ERRMSGP

FUNCION char * ATVX_ERRMSGP(int dev)

int dev descriptor de un canal abierto de Dialogic o -1 para funcionesindependientes del canal

RETORNA vector de caracteres con una descripción del error ocurrido en la última llamada a unafunción del SDK

INCLUDES vxxxlib.h

MODO síncrono

19.1. Descripción

La función ATVX_ERRMSGP() devuelve un puntero a un vector ASCIIZ que describe el motivo del errorproducido durante la última llamada a una función de la librería Verbio. Este puntero es válido a lo largo de laejecución de la aplicación. Si no se ha producido ningún error durante la última llamada a una función, el vectorcontiene el valor "NO ERROR".

Si el error se ha producido durante la llamada a una función dependiente del canal (vx_setvcb(), vx_recstr(), ...)el parámetro de entrada dev especifica el descriptor de canal de Dialogic correspondiente. Si el error se haproducido durante la llamada a una función independiente del canal (vx_libinit(), vx_prevcb(),vx_ApplyDictionary(), ...) debe utilizarse -1 como valor del parámetro dev.

19.2. Descripción de los parámetros

dev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open() o -1para funciones independientes del canal.

19.3. Elementos relacionados

ATVX_LASTERR

19.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

32 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 43: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

20. vx_getasrlic

FUNCION int vx_getasrlic(const char *configuration)

const char*configuration

identificador de la configuración de reconocimiento de la quese desean consultar las licencias disponibles

RETORNA Número de licencias máximas disponibles (adquiridas)

INCLUDES vxxxlib.h

MODO síncrono

20.1. Descripción

La función vx_getasrlic() consulta el número de licencias de la configuración especificada disponibles en total(adquiridas) en el servidor utilizado (aquél especificado antes de invocar a la función vx_libinit o vx_asr_init).

20.2. Descripción de los parámetros

configuration especifica la configuración de reconocimiento de la que se desea conocer elnúmero de licencias disponibles. Para más información, puede consultarse eldocumento Verbio Software Reference: Guía del Usuario.

CFG_SPANISH Español castellano

CFG_SPANISH_CATALAN Español castellano +catalán

CFG_SPANISH_BASQUE Español castellano +euskera

CFG_SPANISH_GALICIAN Español castellano +gallego

CFG_SPANISH_CATALAN_BASQUE_GALICIAN Español castellano +catalán + euskera + gallego

CFG_PORTUGUESE Portugués

CFG_PORTUGUESE_BRAZILIAN Portugués brasileño

CFG_SPANISH_ARGENTINIAN Español argentino

CFG_SPANISH_CHILEAN Español chileno

CFG_SPANISH_COLOMBIAN Español colombiano

CFG_SPANISH_MEXICAN Español mexicano

CFG_SPANISH_VENEZUELAN Español venezolano

CFG_FRENCH Francés

CFG_ENGLISH Inglés

20.3. Precauciones

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 33

Page 44: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

La función vx_getasrlic() debe invocarse una vez establecida la comunicación con el servidor dereconocimiento al que se le solicita el número de licencias disponibles, entendiendo por disponibles el númeromáximo de peticiones de reconocimiento simultáneas que pueden realizarse, en ese servidor, para laconfiguración especificada.

20.4. Elementos relacionados

vx_getusedasrlic, vx_getttslic vx_getusedttslic, vx_libinit vx_asr_init

20.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

34 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 45: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

21. vx_GetDllVersion

FUNCION int vx_GetDllVersion(unsigned long *fileverp, unsigned long *prodverp)

unsigned long*fileverp

número de versión del fichero DLL de VERBIO

unsigned long*prodverp

número de versión del producto

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

21.1. Descripción

La función vx_GetDllVersion() retorna el número de versión de la DLL de VERBIO tanto del fichero como delproducto.

21.2. Descripción de los parámetros

fileverp puntero en el que se guardará la información referente a la versión del fichero.

prodverp puntero en el que se guardará la información referente a la versión del producto.

21.3. Elementos relacionados

dx_GetDllVersion, sr_GetDllVersion (consulte la documentación de Dialogic)

21.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 35

Page 46: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

22. vx_getparm

FUNCION int vx_getparm(int dev, unsigned long parm, void *valuep)

int dev descriptor de un canal abierto de Dialogic o -1 paraparámetros globales de VERBIO (independientes del canal)

unsigned long parm parámetro del que se desea obtener el valor

void *valuep puntero a la variable en la que se almacenará el valor delparámetro solicitado

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

22.1. Descripción

La función vx_getparm() obtiene los valores actuales de los parámetros globales o dependientes del canal deVERBIO. Esta función puede obtener el valor de un único parámetro en cada invocación.

22.2. Descripción de los parámetros

dev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().Use -1 para obtener el valor de parámetros globales de VERBIO.

parm especifica el identificador del parámetro del que se desea recuperar el valor en la variableapuntada por valuep. Los identificadores de los parámetros pueden consultarse en Capítulo 3.Estructuras de datos y parámetros.

valuep puntero a la variable en la que se almacenará el valor del parámetro solicitado.

22.3. Elementos relacionados

vx_setparm, dx_getparm (consulte la documentación de Dialogic)

22.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

36 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 47: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

23. vx_getttslic

FUNCION int vx_getttslic(const char *language)

const char *language identificador del idioma de síntesis del que se deseanconsultar las licencias disponibles

RETORNA Número de licencias máximas disponibles (adquiridas)

INCLUDES vxxxlib.h

MODO síncrono

23.1. Descripción

La función vx_getttslic() consulta el número de licencias del idioma especificado disponibles en total(adquiridas) en el servidor utilizado (aquél especificado antes de invocar a la función vx_libinit o vx_tts_init).

23.2. Descripción de los parámetros

language especifica el idioma de síntesis del que se desea conocer el número de licencias disponibles.Para más información, puede consultarse el documento Verbio SoftwareReference: Guía del Usuario.

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_SPANISH_MEXICAN Español mexicano

LNG_FRENCH Francés

LNG_ENGLISH Inglés

23.3. Precauciones

La función vx_getttslic() debe invocarse una vez establecida la comunicación con el servidor de síntesis al quese le solicita el número de licencias disponibles, entendiendo por disponibles el número máximo de peticionesde síntesis simultáneas que pueden realizarse, en ese servidor, para el idioma especificado.

23.4. Elementos relacionados

vx_getusedttslic, vx_getasrlic, vx_getusedasrlic, vx_libinit, vx_tts_init

23.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 37

Page 48: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

24. vx_getusedasrlic

FUNCION int vx_getusedasrlic()

RETORNA Número de licencias disponibles en el momento de la invocación

INCLUDES vxxxlib.h

MODO síncrono

24.1. Descripción

La función vx_getusedasrlic() consulta el número de licencias de la configuración especificada disponibles enun momento determinado (libres) en el servidor utilizado (aquél especificado antes de invocar a la funciónvx_libinit o vx_asr_init).

24.2. Precauciones

La función vx_getusedasrlic() devuelve el número de licencias disponibles en un momento determinado, paracontrolar la disponibilidad de las mismas antes de realizar una petición. Puede combinarse también con lasfunciones vx_recstr_wait y vx_recstr_release.

24.3. Elementos relacionados

vx_getttslic, vx_recstr_wait, vx_recstr_release

24.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

38 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 49: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

25. vx_getusedttslic

FUNCION int vx_getusedttslic()

RETORNA Número de licencias disponibles en el momento de la invocación

INCLUDES vxxxlib.h

MODO síncrono

25.1. Descripción

La función vx_getusedttslic() consulta el número de licencias de la configuración especificada disponibles enun momento determinado (libres) en el servidor utilizado (aquél especificado antes de invocar a la funciónvx_libinit o vx_tts_init).

25.2. Precauciones

La función vx_getusedttslic() devuelve el número de licencias disponibles en un momento determinado, paracontrolar la disponibilidad de las mismas antes de realizar una petición. Puede combinarse también con lasfunciones vx_playstr_wait y vx_playstr_release.

25.3. Elementos relacionados

vx_getusedasrlic, vx_playstr_wait, vx_playstr_release

25.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 39

Page 50: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

26. ATVX_IVCB

FUNCION int ATVX_IVCB(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA >=0 indicando el descriptor del vocabulario afectado por el último resultado dereconocimiento

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

26.1. Descripción

La función ATVX_IVCB() retorna el descriptor del vocabulario del que se ha reconocido una secuencia duranteel último proceso de reconocimiento. Este valor está disponible después de la finalización de una llamadasíncrona o asíncrona a las funciones vx_recind() o vx_nbest().

26.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

26.3. Precauciones

El valor devuelto por la función ATVX_IVCB() sólo es válido tras la correcta finalización de la funciónvx_recind() o vx_nbest().

26.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_NORECIND NO RECIND. Call vx_recind() before calling ATVX_IVCB().

26.5. Elementos relacionados

vx_recind, vx_nbest

26.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

40 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 51: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

27. ATVX_LASTERR

FUNCION long ATVX_LASTERR(int dev)

int dev descriptor de un canal abierto de Dialogic o -1 para funcionesindependientes del canal

RETORNA número del error

INCLUDES vxxxlib.h

MODO síncrono

27.1. Descripción

La función ATVX_LASTERR() retorna un valor long que identifica el error que se ha producido durante laúltima llamada a una función del SDK de Verbio. Los errores están definidos en vxxxlib.h. Si no se haproducido ningún error durante la última llamada a una función, el valor devuelto es 0.

Si el error se ha producido durante la llamada a una función dependiente del canal (vx_setvcb(), vx_recstr(), ...)el parámetro de entrada dev especifica el descriptor de canal de Dialogic correspondiente. Si el error se haproducido durante la llamada a una función independiente del canal (vx_libinit(), vx_prevcb(),vx_ApplyDictionary(), ...) debe utilizarse -1 como valor del parámetro dev.

27.2. Descripción de los parámetros

dev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open() o -1para funciones independientes del canal.

27.3. Elementos relacionados

ATVX_ERRMSGP

27.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 41

Page 52: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

28. vx_libclose

FUNCION int vx_libclose()

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

28.1. Descripción

La función vx_libclose libera las conexiones con el motor de síntesis y o reconocimiento del habla iniciadasmediante la función vx_libinit, vx_asr_init o vx_tts_init y libera todos los recursos utilizados por el cliente deVerbio. Una vez finalizada la función vx_libclose, no pueden invocarse otras funciones del SDK de Verbiodesde el cliente afectado, exceptuando aquellas destinadas a establecer de nuevo la conexión con el servidor.

28.2. Elementos relacionados

vx_libinit, vx_asr_init, vx_tts_init

28.3. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

42 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 53: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

29. vx_libinit

FUNCION int vx_libinit(int options)

int options identificador del idioma por defecto

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

29.1. Descripción

La función vx_libinit() inicializa la librería Verbio. El parámetro options especifica el idioma por defectoque utilizarán el servidor de reconocimiento y el servidor de síntesis.

Esta función está incluida por compatibilidad con versiones anteriores, aunque en nuevos desarrollos es muyrecomendable utilizar las nuevas funciones equivalentes vx_asr_init y/o vx_tts_init, según las necesidadesconcretas.

29.2. Descripción de los parámetros

options especifica el idioma de trabajo por defecto y si deben inicializarse los servidores dereconocimiento y de síntesis (por defecto, ambos se inicializan).

LVX_SPANISH Español

LVX_CATALAN Catalán

LVX_BASQUE Euskera

LVX_GALICIAN Gallego

LVX_PORTUGUESE Portugués

LVX_BRAZILIAN Portugués brasileño

OVX_NORECSTR no se inicializa el servidor de reconocimiento

OVX_NOPLAYSTR no se inicializa el servidor de síntesis

OVX_TTSLITE inicialización rápida (menores prestaciones) del sintetizador(depuración)

29.3. Precauciones

La función vx_libinit() debe invocarse antes que ninguna otra de las funciones del SDK de Verbio, aexcepción de aquella destinada a establecer el servidor de trabajo por defecto en configuracionescliente-servidor (vx_setparm).

29.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 43

Page 54: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EVX_SRERROR DIALOGIC SRL ERROR. Check ATDV_LASTERR() and ATDV_ERRMSGP().

EVX_DXERROR DIALOGIC VOICE ERROR. Check ATDV_LASTERR() andATDV_ERRMSGP().

EVX_NOBOARDS NO BOARDS DETECTED. Check Dialogic Drivers Start Up.

EVX_INVSETUP VERBIO INTERNAL ERROR. Files may be corrupted. Check disk and repeatSetup.

EVX_NOMEM OUT OF MEMORY.

EVX_NOLICFILE NO LICENSE FILE WAS FOUND. Run CheckOut to obtain a license file.

EVX_INVLIC THE LICENSE FILE IS NOT VALID. Run CheckOut to obtain a valid licensefile.

EVX_SYSTEM SYSTEM ERROR.Check errno.

EVX_INVSRVER INVALID DIALOGIC SRL RELEASE (libsrlmt.dll). Check README.TXT.

EVX_INVDXVER INVALID DIALOGIC VOICE LIBRARY RELEASE (libdxxmt.dll).

29.5. Elementos relacionados

vx_libclose, vx_asr_init, vx_tts_init

29.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

44 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 55: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

30. vx_loadcd

FUNCION int vx_loadcd(int chdev, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA >=0 indicando el descriptor del vocabulario si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

30.1. Descripción

La función vx_loadcd() carga el vocabulario de dígitos conectados (consulte Sección 59 para más información)en el canal especificado. En caso satisfatorio, retorna un descriptor asociado con el vocabulario cargado paraque éste pueda ser activado, desactivado y descargado mediante las funciones vx_activatevcb(),vx_deactivatevcb() y vx_unloadvcb() respectivamente.

30.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

30.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

mode especifica si debe ejecutarse la función vx_loadcd() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_loadcd() asíncronamente

EV_SYNC Ejecuta vx_loadcd() síncronamente (valor por defecto)

30.4. Precauciones

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

30.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_SYSTEM SYSTEM ERROR. Check errno.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 45

Page 56: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

30.6. Elementos relacionados

vx_setcd, vx_loadvcb, vx_activatevcb, vx_deactivatevcb, vx_unloadvcb, ATVX_IVCB

Capítulo 2. Descripción de las funciones

46 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 57: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

31. vx_loadvcb

FUNCION int vx_loadvcb(int chdev, const char *filename, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

const char *filename nombre del vocabulario o de la gramática ABNF/DTMF quedebe cargarse

unsigned int mode funcionamiento síncrono o asíncrono y/o gramática ABNF oDTMF

RETORNA >=0 indicando el descriptor del vocabulario si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

31.1. Descripción

La función vx_loadvcb() carga el vocabulario o la gramática ABNF o DTMF en el canal especificado. En casosatisfatorio, retorna un descriptor asociado con el vocabulario cargado para que éste pueda ser activado,desactivado y descargado mediante las funciones vx_activatevcb(), vx_deactivatevcb() y vx_unloadvcb()respectivamente.

31.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

31.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

filename puntero al nombre del fichero de texto que contiene el vocabulario (cada línea contiene unapalabra del vocabulario formada por una o más palabras) o la gramática ABNF.

mode indica el tipo de vocabulario o gramática y si debe ejecutarse la función vx_loadvcb() enmodo síncrono o asíncrono (pueden especificarse dos o más flag mediante el operadorlógico "|".

GVX_ISOLATED Palabras aisladas. El reconocedor espera reconocer una únicapalabra del vocabulario de este vocabulario.

GVX_CONNECTED Palabras conectadas (valor por defecto). El reconocedorespera reconocer una o más palabras delvocabulario de este vocabulario.

GVX_ABNF gramática ABNF. El reconocedor espera reconocer una o máspalabras de la gramática.

GVX_DTMF gramática DTMF. El reconocedor espera recibir uno o mástonos DTMF.

EV_ASYNC Ejecuta vx_loadvcb() asíncronamente

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 47

Page 58: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_SYNC Ejecuta vx_loadvcb() síncronamente (valor por defecto)

31.4. Precauciones

Sin la opción GVX_ABNF habilitada, la función vx_loadvcb() requiere el fichero de definiciones y el fichero detranscripciones generados mediante la función vx_prevcb() o vx_prevcbex() o vx_prevcbdev(). Si estosficheros existen y el fichero de vocabulario correspondiente no ha sido modificado desde que se llamó a lafunción vx_prevcb() (o vx_prevcbex() o vx_prevcbdev()), no es necesario volver a invocarlas antes de cargarel vocabulario mediante la función vx_loadvcb().

Con la opción GVX_ABNF habilitada, la función vx_loadvcb() requiere el fichero de estados de la gramática, elfichero de definiciones y el fichero de transcripciones generado mediante la función vx_prevcb() ovx_prevcbex() o vx_prevcbdev(). Si estos ficheros existen y la gramática ABNF correspondiente no ha sidomodificado desde que se llamó a la función vx_prevcb() (o vx_prevcbex() o vx_prevcbdev()), no es necesariovolver a invocarlas antes de cargar la gramática mediante la función vx_loadvcb().

Con la opción GVX_DTMF la gramática no crea ficheros adicionales resultados de la compilación.

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

31.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY.

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID.

EVX_INVWORD THE VOCABULARY TRANSCRIPTION WAS NOT FOUND.

EVX_SYSTEM SYSTEM ERROR. Check errno.

31.6. Elementos relacionados

vx_setcd, vx_loadcd, vx_activatevcb, vx_deactivatevcb, vx_unloadvcb, ATVX_IVCB

31.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

48 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 59: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

32. vx_nbest

FUNCION int vx_nbest(int chdev, int maxind, int *index, float *score, int ibest, unsignedint mode)

int chdev descriptor de un canal abierto de Dialogic

int maxind número máximo de palabras del vocabularioconectadas o de palabras de la gramática

int *index vector de enteros en el que se recibirán los índices de laspalabras reconocidas

float *score vector de float en el que se recibirán los índices deconfianza de las palabras reconocidas

int ibest número de la hipótesis de interés

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 para indicar que se ha iniciado satisfactoriamente (Asíncrono)

>=0 para indicar la cantidad de palabras reconocidas (Síncrono)

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

32.1. Descripción

La función vx_nbest() debe ser llamada al finalizar las funciones vx_recstr() o vx_recstr_open() para obtenerlos índices y niveles de confianza de las palabras reconocidas correspondientes a la hipótesis ibest-ésima. Lafunción vx_nbest() es una extensión de la función vx_recind() para permitir la obtención de múltiples hipótesisde reconocimiento de una misma locución.

El número máximo de hipótesis devuelto por el servidor de reconocimiento depende del parámetroVXCH_ACTIVE_NBEST (y VXCH_NBEST). Estos parámetros son dependientes del canal y deben serespecificados mediante la función vx_setparm() antes de iniciar el reconocimiento mediante las funcionesvx_recstr() o vx_recstr_open(). El valor por defecto de ambos parámetros es 1.

Si el número de palabras reconocidas es cero, index[0] contiene uno de los siguientes índices especiales:

IND_NOVOICE No se ha detectado voz.

IND_NOWORD No se ha reconocido ninguna palabra del vocabulario ni de la gramática.

IND_EARLY_START No se ha detectado silencio inicial.

32.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_RECIND en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

La cantidad de palabras reconocidas puede obtenerse mediante la función ATVX_NIND().

32.3. Descripción de los parámetros

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 49

Page 60: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

maxind especifica el número máximo de palabras del vocabulario conectadas o palabras de lagramática que pueden reconocerse. En reconocimiento de palabras aisladas, el valor de estaparámetro debe fijarse a 1.

index puntero a un vector de enteros que recibirá los índices de las palabras reconocidas. El tamaño deeste vector debe ser mayor o igual a maxind.

score puntero a un vector de float que recibirá los niveles de confianza de las palabras reconocidas.El nivel de confianza de cada índice proporciona una medida de fiabilidad del reconocimiento,que puede ser utilizada para rechazar o pedir confirmación de las palabras reconocidas. Eltamaño de este vector debe ser mayor o igual a maxind.

ibest número de la hipótesis de interés. El valor de este parámetro puede estar entre 0 (hipótesis másfiable) y NBest-1, donde NBest es el máximo número de hipótesis activo en un canalespecificado mediante la función vx_setparm() (parámetro VXCH_ACTIVE_NBEST).

mode especifica si debe ejecutarse la función vx_nbest() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_nbest() asíncronamente

EV_SYNC Ejecuta vx_nbest() síncronamente (valor por defecto)

32.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_NORECSTR NO RECOGNITION. Use vx_recstr() to start recognition.

32.5. Elementos relacionados

vx_recstr, vx_recstr_open, vx_recind, ATVX_NIND

32.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

50 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 61: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

33. ATVX_NIND

FUNCION int ATVX_NIND(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA >=0 para indicar el número de palabras del vocabulario o de la gramáticareconocidas

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

33.1. Descripción

La función ATVX_NIND() retorna el número de palabras del vocabulario o de la gramáticareconocidas después de la finalización de la llamada a la función vx_recind() o vx_nbest().

33.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

33.3. Precauciones

El valor devuelto por la función ATVX_NIND() únicamente es válido después de la correcta finalización de lafunción vx_recind() o vx_nbest().

33.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_NORECIND NO RECIND. Call vx_recind() before calling ATVX_NIND().

33.5. Elementos relacionados

vx_recind, vx_nbest

33.6. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 51

Page 62: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

34. vx_playstr

FUNCION int vx_playstr(int chdev, char *string, DV_TPT *tptp, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

char *string vector ASCIIZ con el texto que debe ser sintetizado

DV_TPT *tptp puntero a una estructura del tipo TerminationParameter Table

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

34.1. Descripción

La función vx_playstr() inicia la conversión de texto a voz del texto especificado. Una vez la función esinvocada, la conversión continua hasta el final del texto, la invocación de la función dx_stopch() o elcumplimiento de alguna de las condiciones de terminación especificadas en los campos de la estructuraDV_TPT.

34.2. Funcionamiento asíncrono

Para ejecutar esta función de forma asíncrona, debe especificarse EV_ASYNC en el parámetro mode. Una vezinvocada en modo asíncrono, la función retorna 0 para indicar que se ha iniciado satisfactoriamente y generaráel evento TDX_PLAY al finalizar.

Al finalizar la función vx_playstr(), la información referente al estado del canal actual (incluyendo el motivo dela finalización) puede consultarse utiliando las funciones Extended Attribute.

NOTA: El evento TDX_PLAY puede recibirse a pesar de no haberse sintetizado todo el texto (debido a larecepción de un tono DTMF o al colgado de la línea por parte del usuario). Por lo tanto, una vez recibido elevento, debe invocarse la función vx_termplaystr() para indicar al servidor de síntesis que no se le enviará mástexto y que, por lo tanto, ya pueden liberarse todos los recursos asignados a la función vx_playstr().

34.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

string vector ASCIIZ con el texto que debe ser sintetizado. Para una óptima síntesis, es imprescindibleque el texto esté bien puntuado, acentuado, etc.

tptp puntero a una estructura de tipo Termination Parameter Table (DV_TPT) en la que seespecifican las condiciones de terminación del proceso de síntesis. Las condiciones válidas quepueden especificarse son las siguientes:

DX_DIGTYPE Digit termination for user defined tone

DX_MAXDTMF Maximum number of digits received

DX_MAXSIL Maximum silence

Capítulo 2. Descripción de las funciones

52 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 63: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

DX_MAXNOSIL Maximum non-silence

DX_LCOFF Loop current off

DX_IDDTIME Inter-digit delay

DX_MAXTIME Function time

DX_DIGMASK Digit mask termination

DX_PMOFF Pattern match silence off

DX_PMON Pattern match silence on

DX_TONE Tone-off or Tone-on detection

Consulte la descripción de la función dx_play() en la documentación de Dialogic paraobtener más información acerca de esta estructura.

NOTA: Adicionalmente a las condiciones de terminación definidas mediante la estructuraDV_TPT, la función vx_playstr también termina al sintetizar todo el texto o al invocarse a lafunción dx_stopch(). En ambos casos, el motivo de la finalización obtenido mediante la funciónATDX_TERMMSK() será TM_EOD (End of data).

mode especifica si debe ejecutarse la función vx_playstr() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_playstr() asíncronamente

EV_SYNC Ejecuta vx_playstr() síncronamente (valor por defecto)

34.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SRERROR DIALOGIC SRL ERROR. Check ATDV_LASTERR() and ATDV_ERRMSGP().

EVX_DXERROR DIALOGIC VOICE ERROR. Check ATDV_LASTERR() andATDV_ERRMSGP().

EVX_SYSTEM SYSTEM ERROR. Check errno.

34.5. Elementos relacionados

vx_termplaystr, dx_play (consulte la documentación de Dialogic)

34.6. Códigos de ejemplo

Consulte el ejemplo síncrono.

Consulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 53

Page 64: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

35. vx_playstr_close

FUNCION int vx_playstr_close(int chdev, int playdev)

int chdev descriptor de un canal abierto de Dialogic

int playdev descriptor de reproducción válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

35.1. Descripción

La función vx_playstr_close() cierra el descriptor de reproducción abierto mediante la funciónvx_playstr_open y libera los recursos utilizados durante el proceso de síntesis.

35.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

playdev especifica el descriptor de reproducción válido obtenido mediante la funciónvx_playstr_open.

35.3. Elementos relacionados

vx_playstr_open, vx_playstr_read

35.4. Códigos de ejemploConsulte el ejemplo del Library SDK.

Capítulo 2. Descripción de las funciones

54 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 65: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

36. vx_playstr_open

FUNCION int vx_playstr_open(int chdev, char *string, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

char *string vector ASCIIZ que contiene el texto a sintetizar

unsigned int mode formato de las muestras (Ley A o Ley Mu)

RETORNA != -1 para indicar el descriptor de reproducción

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

36.1. Descripción

La función vx_playstr_open() inicia la síntesis del texto especificado y no finaliza hasta que se haya sintetizadocompletamente. Las muestras de audio resultantes se obtendrán mediante la función vx_playstr_read(),utilizando el descriptor de reproducción devuelto por la función vx_playstr_open().

36.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

string vector ASCIIZ que contiene el texto que debe sintetizarse. Para una óptima síntesis, esimprescindible que el texto esté bien puntuado, acentuado, etc.

mode especifica el formato de las muestras de audio generadas por el sintetizador.

MC_ALAW Muestras de audio en formato de Ley A (8 bits, 8 KHz)

MC_MULAW Muestras de audio en formato de Ley Mu (8 bits, 8 KHz)

MC_LIN16 Muestras de audio en formato lineal (16 bits, 8 KHz). (valor por defecto)

36.3. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SYSTEM SYSTEM ERROR. Check errno.

36.4. Elementos relacionados

vx_playstr_read, vx_playstr_close

36.5. Códigos de ejemploConsulte el ejemplo del Library SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 55

Page 66: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

37. vx_playstr_read

FUNCION int vx_playstr_read(int playdev, void *buffer, unsigned int count)

int playdev descriptor de reproducción válido

void *buffer vector en el que se almacenarán las muestras de audioprocedentes del sintetizador

unsigned int count número de muestras a obtener (en bytes)

RETORNA >=0 número de muestras obtenidas del sintetizador

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

37.1. Descripción

La función vx_playstr_read() obtiene las muestras de audio generadas por la función vx_playstr_open().

La función retorna un número igual al número de bytes solicitados para indicar que todavía no ha finalizado elproceso de síntesis.

La función retorna un número de muestras menor que el solicitado para indicar que el servidor de síntesis ya nodispone de más muestras de voz sintética para entregar, por lo que no debe invocarse a la funciónvx_playstr_read() nuevamente.

37.2. Descripción de los parámetros

playdev especifica el descriptor de reproducción válido obtenido mediante la funciónvx_playstr_open.

buffer vector en el que se almacenarán las muestras de audio procedentes del sintetizador. Debe tenerun tamaño igual o superior al número de muestras solicitadas mediante el parámetro n.

n cantidad de muestras solicitadas al sintetizador.

37.3. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SYSTEM SYSTEM ERROR. Check errno.

37.4. Elementos relacionados

vx_playstr_open, vx_playstr_close

37.5. Códigos de ejemploConsulte el ejemplo del Library SDK.

Capítulo 2. Descripción de las funciones

56 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 67: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

38. vx_playstr_release

FUNCION int vx_playstr_release(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

38.1. Descripción

La función vx_playstr_release() libera un recurso (licencia) de síntesis del habla reservado mediante la funciónvx_playstr_wait() en el canal especificado.

38.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

38.3. Elementos relacionados

vx_playstr_wait, vx_getusedttslic, vx_recstr_release, vx_recstr_wait

38.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 57

Page 68: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

39. vx_playstr_wait

FUNCION int vx_playstr_wait(int chdev, int ms)

int chdev descriptor de un canal abierto de Dialogic

int ms tiempo máximo de espera para obtener un recurso (en milisegundos)

RETORNA 0 si el resultado es satisfactorio

-1 en caso de no poder obtener un recurso en el tiempo especificado

INCLUDES vxxxlib.h

MODO síncrono

39.1. Descripción

La función vx_playstr_wait() reserva un recurso (licencia) de síntesis del habla para el canal especificado hastaque se libere mediante la función vx_playstr_release(). La función espera un máximo de ms milisegundos ladisponibilidad de un recurso, transcurridos los cuales devuelve un error.

El uso de esta función es aconsejable para gestionar el uso de los recursos (licencias) disponibles. En entornosen los que nunca se producirán más peticiones simultáneas de síntesis que licencias disponibles no es necesariosu uso.

39.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

ms tiempo máximo de espera, en milisegundos, para obtener un recurso (licencia) de síntesis del hablapara el canal especificado.

39.3. Elementos relacionados

vx_playstr_release, vx_getusedttslic, vx_recstr_wait, vx_recstr_release

39.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

58 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 69: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

40. vx_prevcb

FUNCION int vx_prevcb(const char *filename, unsigned int mode)

const char *filename puntero al nombre del fichero que contiene el vocabulario o lagramática ABNF a preparar

unsigned int mode funcionamiento síncrono o asíncrono e indicación de trabajarcon una gramática ABNF

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

40.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vx_prevcb() realiza la transcripciónfonética del contenido del fichero, almacenándola en un nuevo fichero binario con el mismo nombre que el delvocabulario pero con extensión ".trc". Esta función es independiente del canal y debe utilizarse una vez paracada vocabulario aunque éste se utilice en distintos canales (sí es necesario invocar de nuevo a la funcióncuando se modifica dinámicamente el contenido del vocabulario).

Cuando se especifica el modo GVX_ABNF (gramática ABNF), la función vx_prevcb() compila la gramáticaespecificada. El resultado de la compilación se almacena en un nuevo fichero de texto con el mismo nombre quela gramática pero con extensión ".trx" (conteniendo el vocabulario de la gramática) y en un nuevo fichero detexto con extensión ".grm" (conteniendo los estados de la gramática). También se realiza la trancripciónfonética que se almacena en un nuevo fichero binario con el mismo nombre que el de la gramática pero conextensión ".trc". Esta función es independiente del canal y debe utilizarse una vez para cada gramáticaaunque ésta se utilice en distintos canales (sí es necesario invocar de nuevo a la función cuando se modificadinámicamente el contenido de la gramática). En caso que deba preparar gramáticas dinámicas en distintoscanales, debe utilizarse la función vx_prevcbdev para evitar conflictos entre ellos.

El vocabulario se preparará en el idioma y configuración de reconocimiento especificados mediante la funciónvx_asr_init o bien mediante la función vx_setparm (parámetros VXCH_DEFASRCFG y VXCH_DEFASRLNG ).Únicamente el idioma puede especificarse independientemente usando la función vx_prevcbex2.

40.2. Funcionamiento asíncrono

Cuando se ejecuta asíncronamente, esta función no genera ningún evento de terminación. Si deben prepararsenuevos vocabularios o gramáticas en entornos asíncronos, puede invocarse la función vx_prevcb() seguida de lafunción vx_setvcb(): el evento de terminación TVX_SETVCB indicará que ambas funciones han finalizadosatisfactoriamente.

40.3. Descripción de los parámetros

filename puntero al nombre del fichero que contiene el vocabulario (cada línea constituye unapalabra del vocabulario formada por una o más palabras) o la gramática ABNF.

mode especifica si debe ejecutarse la función vx_prevcb() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_prevcb() asíncronamente

EV_SYNC Ejecuta vx_prevcb() síncronamente (valor por defecto)

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 59

Page 70: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

especifica si se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

40.4. Precauciones

La función vx_prevcb() preparará el vocabulario en el idioma por defecto que se haya especificado al motor(excepto aquellas palabras que incorporen el identificador del idioma). Si desea especificarse un idioma distinto,deberá utilizarse la función vx_prevcbex2() o bien modificarlo previamente mediante la función vx_setparm.

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

40.5. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_NOMEM OUT OF MEMORY

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_PARSER ABNF PARSER ERROR. Check the ABNF grammar syntax.

EVX_INVWORD THE VOCABULARY CONTAINS AN INVALID WORD. Check and correctinvalid words

EVX_SYSTEM SYSTEM ERROR. Check errno.

40.6. Elementos relacionados

vx_prevcbex, vx_prevcbex2, vx_prevcbdev, vx_setvcb, vx_loadvcb

40.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

60 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 71: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

41. vx_prevcbdev

FUNCION int vx_prevcbdev(int chdev, const char *filename, unsigned int mode, int*lpiword, const char *language)

int chdev descriptor de un canal abierto de Dialogic

const char *filename puntero al nombre del fichero que contiene el vocabulario o lagramática ABNF a preparar

unsigned int mode funcionamiento síncrono o asíncrono e indicación de trabajarcon una gramática ABNF

int *lpiword puntero que almacenará la línea errónea del fichero en caso deerror

const char *language idioma en el que se preparará el vocabulario

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

41.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vx_prevcbdev() realiza latranscripción fonética del contenido del fichero en el canal indicado, almacenándola en un nuevo fichero binariocon el mismo nombre que el del vocabulario pero con extensión ".trc". Esta función está indicada parapreparar gramáticas dinámicas que no pueden haberse preparado al lanzar la aplicación mediante las funcionesvx_prevcb, vx_prevcbex o vx_prevcbex2.

Cuando se especifica el modo GVX_ABNF (gramática ABNF), la función vx_prevcbdev() compila la gramáticaespecificada en el canal indicado. El resultado de la compilación se almacena en un nuevo fichero de texto conel mismo nombre que la gramática pero con extensión ".trx" (conteniendo el vocabulario de la gramática) yen un nuevo fichero de texto con extensión ".grm" (conteniendo los estados de la gramática). También serealiza la trancripción fonética que se almacena en un nuevo fichero binario con el mismo nombre que el de lagramática pero con extensión ".trc".

Para evitar conflictos entre gramáticas preparadas simultáneamente entre distintos canales, es absolutamenteimprescindible evitar que canales distintos preparen gramáticas con el mismo nombre. En caso de que seprodujera este hecho, los resultados son imprevisibles. Por lo tanto, una estrategia recomendada es la de utilizarnombres de gramática que incluyan también el identificador del canal. De este modo, se imposibilita lacoincidencia de nombres de gramática en canales distintos.

41.2. Funcionamiento asíncrono

Cuando se ejecuta asíncronamente, esta función no genera ningún evento de terminación. Si deben prepararsenuevos vocabularios o gramáticas en entornos asíncronos, puede invocarse la función vx_prevcbdev() seguidade la función vx_setvcb(): el evento de terminación TVX_SETVCB indicará que ambas funciones han finalizadosatisfactoriamente.

41.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 61

Page 72: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

filename puntero al nombre del fichero que contiene el vocabulario (cada línea constituye unapalabra del vocabulario formada por una o más palabras) o la gramática ABNF.

mode especifica si debe ejecutarse la función vx_prevcbdev() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_prevcbdev() asíncronamente

EV_SYNC Ejecuta vx_prevcbdev() síncronamente (valor por defecto)

especifica si se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

lpiword en caso de error, este puntero contendrá la línea del fichero en la que se encuentra la primerapalabra incorrecta.

language idioma en el que se preparará el vocabulario, independientemente del idioma por defectoestablecido en el canal. El vocabulario se preparará en la configuración de reconocimientoespecificada mediante la función vx_asr_init o bien mediante la función vx_setparm(parámetro VXCH_DEFASRCFG).

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_FRENCH Francés

LNG_ENGLISH Inglés

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_COLOMBIAN Español colombiano

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_VENEZUELAN Español venezolano

41.4. Precauciones

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

41.5. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)

Capítulo 2. Descripción de las funciones

62 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 73: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_NOMEM OUT OF MEMORY.

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_PARSER ABNF PARSER ERROR. Check the ABNF grammar syntax.

EVX_INVWORD THE VOCABULARY CONTAINS AN INVALID WORD. Check and correctinvalid words.

EVX_SYSTEM SYSTEM ERROR. Check errno.

41.6. Elementos relacionados

vx_prevcb, vx_prevcbex, vx_prevcbex2, vx_chkwrd, vx_setvcb, vx_loadvcb

41.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 63

Page 74: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

42. vx_prevcbex

FUNCION int vx_prevcbex(const char *filename, unsigned int mode, int *lpiword)

const char *filename puntero al nombre del fichero que contiene el vocabulario o lagramática ABNF a preparar

unsigned int mode funcionamiento síncrono o asíncrono e indicación de trabajarcon una gramática ABNF

int *lpiword puntero que almacenará la línea errónea del fichero en caso deerror

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

42.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vx_prevcbex() realiza latranscripción fonética del contenido del fichero, almacenándola en un nuevo fichero binario con el mismonombre que el del vocabulario pero con extensión ".trc". Esta función es independiente del canal y debeutilizarse una vez para cada vocabulario aunque éste se utilice en distintos canales (sí es necesario invocar denuevo a la función cuando se modifica dinámicamente el contenido del vocabulario).

Cuando se especifica el modo GVX_ABNF (gramática ABNF), la función vx_prevcbex() compila la gramáticaespecificada. El resultado de la compilación se almacena en un nuevo fichero de texto con el mismo nombre quela gramática pero con extensión ".trx" (conteniendo el vocabulario de la gramática) y en un nuevo fichero detexto con extensión ".grm" (conteniendo los estados de la gramática). También se realiza la trancripciónfonética que se almacena en un nuevo fichero binario con el mismo nombre que el de la gramática pero conextensión ".trc". Esta función es independiente del canal y debe utilizarse una vez para cada gramáticaaunque ésta se utilice en distintos canales (sí es necesario invocar de nuevo a la función cuando se modificadinámicamente el contenido de la gramática). En caso que deba preparar gramáticas dinámicas en distintoscanales, debe utilizarse la función vx_prevcbdev para evitar conflictos entre ellos.

El vocabulario se preparará en el idioma y configuración de reconocimiento especificados mediante la funciónvx_asr_init o bien mediante la función vx_setparm (parámetros VXCH_DEFASRCFG y VXCH_DEFASRLNG ).Únicamente el idioma puede especificarse independientemente usando la función vx_prevcbex2.

42.2. Funcionamiento asíncrono

Cuando se ejecuta asíncronamente, esta función no genera ningún evento de terminación. Si deben prepararsenuevos vocabularios o gramáticas en entornos asíncronos, puede invocarse la función vx_prevcbex() seguida dela función vx_setvcb(): el evento de terminación TVX_SETVCB indicará que ambas funciones han finalizadosatisfactoriamente.

42.3. Descripción de los parámetros

filename puntero al nombre del fichero que contiene el vocabulario (cada línea constituye unapalabra del vocabulario formada por una o más palabras) o la gramática ABNF.

mode especifica si debe ejecutarse la función vx_prevcbex() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_prevcbex() asíncronamente

Capítulo 2. Descripción de las funciones

64 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 75: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_SYNC Ejecuta vx_prevcbex() síncronamente (valor por defecto)

especifica si se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

lpiword en caso de error, este puntero contendrá la línea del fichero en la que se encuentra la primerapalabra incorrecta.

42.4. Precauciones

La función vx_prevcbex() preparará el vocabulario en el idioma por defecto que se haya especificado al motor(excepto aquellas palabras que incorporen el identificador del idioma). Si desea especificarse un idioma distinto,deberá utilizarse la función vx_prevcbex2() o bien modificarlo previamente mediante la función vx_setparm.

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

42.5. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_NOMEM OUT OF MEMORY.

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_PARSER ABNF PARSER ERROR. Check the ABNF grammar syntax.

EVX_INVWORD THE VOCABULARY CONTAINS AN INVALID WORD. Check and correctinvalid words.

EVX_SYSTEM SYSTEM ERROR. Check errno.

42.6. Elementos relacionados

vx_prevcb, vx_prevcbex2, vx_prevcbdev, vx_chkwrd, vx_setvcb, vx_loadvcb

42.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 65

Page 76: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

43. vx_prevcbex2

FUNCION int vx_prevcbex2(const char *filename, unsigned int mode, int *lpiword, constchar *language)

const char *filename puntero al nombre del fichero que contiene el vocabulario o lagramática ABNF a preparar

unsigned int mode funcionamiento síncrono o asíncrono e indicación de trabajarcon una gramática ABNF

int *lpiword puntero que almacenará la línea errónea del fichero en caso deerror

const char *language idioma en el que se preparará el vocabulario

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

43.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vx_prevcbex2() realiza latranscripción fonética del contenido del fichero, almacenándola en un nuevo fichero binario con el mismonombre que el del vocabulario pero con extensión ".trc". Esta función es independiente del canal y debeutilizarse una vez para cada vocabulario aunque éste se utilice en distintos canales (sí es necesario invocar denuevo a la función cuando se modifica dinámicamente el contenido del vocabulario).

Cuando se especifica el modo GVX_ABNF (gramática ABNF), la función vx_prevcbex2() compila la gramáticaespecificada. El resultado de la compilación se almacena en un nuevo fichero de texto con el mismo nombre quela gramática pero con extensión ".trx" (conteniendo el vocabulario de la gramática) y en un nuevo fichero detexto con extensión ".grm" (conteniendo los estados de la gramática). También se realiza la trancripciónfonética que se almacena en un nuevo fichero binario con el mismo nombre que el de la gramática pero conextensión ".trc". Esta función es independiente del canal y debe utilizarse una vez para cada gramáticaaunque ésta se utilice en distintos canales (sí es necesario invocar de nuevo a la función cuando se modificadinámicamente el contenido de la gramática). En caso que deba preparar gramáticas dinámicas en distintoscanales, debe utilizarse la función vx_prevcbdev para evitar conflictos entre ellos.

43.2. Funcionamiento asíncrono

Cuando se ejecuta asíncronamente, esta función no genera ningún evento de terminación. Si deben prepararsenuevos vocabularios o gramáticas en entornos asíncronos, puede invocarse la función vx_prevcbex2() seguidade la función vx_setvcb(): el evento de terminación TVX_SETVCB indicará que ambas funciones han finalizadosatisfactoriamente.

43.3. Descripción de los parámetros

filename puntero al nombre del fichero que contiene el vocabulario (cada línea constituye unapalabra del vocabulario formada por una o más palabras) o la gramática ABNF.

mode especifica si debe ejecutarse la función vx_prevcbex2() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_prevcbex2() asíncronamente

Capítulo 2. Descripción de las funciones

66 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 77: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_SYNC Ejecuta vx_prevcbex2() síncronamente (valor por defecto)

especifica si se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

lpiword en caso de error, este puntero contendrá la línea del fichero en la que se encuentra la primerapalabra incorrecta.

language idioma en el que se preparará el vocabulario, independientemente del idioma por defectoestablecido en el canal. El vocabulario se preparará en la configuración de reconocimientoespecificada mediante la función vx_asr_init o bien mediante la función vx_setparm(parámetro VXCH_DEFASRCFG).

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_FRENCH Francés

LNG_ENGLISH Inglés

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_COLOMBIAN Español colombiano

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_VENEZUELAN Español venezolano

43.4. Precauciones

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

Esta función está indicada para permitir preparar vocabularios y gramáticas en distintos idiomas de laconfiguración de reconocimiento activa en el motor. En caso de que se desee utilizar un idioma no contenido enla configuración activa, es necesario activarla primero mediante la función vx_setparm (parámetroVXCH_DEFASRCFG). Por ejemplo, en caso de que esté cargada la configuración multilingüeCFG_SPANISH_CATALAN, pueden prepararse gramáticas en ambos idiomas utilizando esta función sinnecesidad de cambiar la configuración ni de idioma por defecto mediante la función vx_setparm (parámetroVXCH_DEFASRLANG).

43.5. Errores

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 67

Page 78: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_NOMEM OUT OF MEMORY.

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID. Check the vocabulary filename and path writing permission.

EVX_PARSER ABNF PARSER ERROR. Check the ABNF grammar syntax.

EVX_INVWORD THE VOCABULARY CONTAINS AN INVALID WORD. Check and correctinvalid words.

EVX_SYSTEM SYSTEM ERROR. Check errno.

43.6. Elementos relacionados

vx_prevcb, vx_prevcbex, vx_prevcbdev, vx_chkwrd, vx_setvcb, vx_loadvcb

43.7. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

68 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 79: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

44. vx_reccfg_release

FUNCION int vx_reccfg_release(int chdev, const char * cfg)

int chdev descriptor de un canal abierto de Dialogic

const char* cfg configuración de la que se desea liberar una licencia o 0 paralicencia de motor ASR

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

44.1. Descripción

La función vx_reccfg_release() libera un recurso (licencia) de reconocimiento del habla reservado mediante lafunción vx_reccfg_wait() en el canal especificado. De este modo, otras peticiones de licencias pendientespodrán ser atendidas por el recurso liberado.

44.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

cfg Especifica el tipo de licencia de reconocimiento que debe liberarse. Los posibles valores son:

NULL o 0 Libera una licencia de motor dereconocimiento

CFG_SPANISH Español castellano

CFG_SPANISH_CATALAN Español castellano + catalán

CFG_SPANISH_BASQUE Español castellano + euskera

CFG_SPANISH_GALICIAN Español castellano + gallego

CFG_SPANISH_CATALAN_BASQUE_GALICIAN Español castellano + catalán +euskera + gallego

CFG_PORTUGUESE Portugués

CFG_PORTUGUESE_BRAZILIAN Portugués brasileño

CFG_SPANISH_MEXICAN Español mexicano

CFG_SPANISH_ARGENTINIAN Español argentino

CFG_SPANISH_CHILEAN Español chileno

CFG_SPANISH_VENEZUELAN Español venezolano

CFG_SPANISH_COLOMBIAN Español colombiano

CFG_FRENCH Francés

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 69

Page 80: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

CFG_ENGLISH US English

44.3. Elementos relacionados

vx_reccfg_wait, vx_playstr_release, vx_playstr_wait

44.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

70 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 81: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

45. vx_reccfg_wait

FUNCION int vx_reccfg_wait(int chdev, int ms, const char * cfg)

int chdev descriptor de un canal abierto de Dialogic

int ms tiempo máximo de espera para obtener un recurso (enmilisegundos)

const char* cfg configuración de la que se desea reservar una licencia o 0 paralicencia de motor ASR

RETORNA 0 si el resultado es satisfactorio

-1 en caso de no poder obtener una licencia en el tiempo especificado

INCLUDES vxxxlib.h

MODO síncrono

45.1. Descripción

La función vx_reccfg_wait() es muy útil para controlar que, en el momento de requerir una licencia dereconocimiento (ya sea de motor o de configuración), se dispondrá de una, evitándose de este modo el error enlas funciones invocadas. En la Guía del Usuario se detallan los momentos en los que se consume unalicencia aunque, a grandes rasgos, podría resumirse del siguiente modo:

1. Las licencias de motor se consumen durante el procesado de las muestras con la finalidad de obtener lapalabra o palabras del vocabulario reconocidas. Por norma general, el intervalo de uso de este tipo de licenciases pequeño.

2. Las licencias de configuración se empiezan a consumir desde que se establece un vocabulario en un canal o semanipula algún parámetro relacionado con el reconocimiento en un canal (NBEST, ACTIVE_NBEST,KLENGTH, GRMWEIGHT, GRMCONSTANT, RECMODE, DEACTWORD y ACTWORD ) hasta que secambia a otra configuración o se libera la licencia con la función miembro vx_reccfg_release(). Lógicamente, eltiempo de uso de estas licencias es superior al de las licencias de motor (el vocabulario debe haberse establecidocon anterioridad y no puede liberarse hasta finalizado el reconocimiento), llegando incluso (según laprogramación) a estar ocupadas durante gran parte de la ejecución.

En aquellos entornos que dispongan de tantas licencias como líneas atendidas, no es necesario tomar ningún tipode precaución, de modo que el uso de estas funciones no aporta ninguna ventaja. Sin embargo, para evitarerrores de funcionamiento debidos a falta de licencia en momentos puntuales en aquellos entornos que atiendanmás líneas que licencias disponen, sí es muy aconsejable tener la precaución de reservar con antelación unalicencia de motor y/o de configuración. De este modo, si no se obtiene la licencia en el momento deseado, sepodrá mantener al usuario a la espera de forma controlada (por ejemplo, haciendo sonar música ambiental hastaque se disponga del recurso).

La función vx_reccfg_wait() reserva un recurso (licencia) de reconocimiento del habla para el canalespecificado hasta que se libere mediante la función vx_reccfg_release(). La función espera un máximo de msmilisegundos la disponibilidad de un recurso, transcurridos los cuales devuelve un error.

45.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

ms tiempo máximo de espera, en milisegundos, para obtener un recurso (licencia) de reconocimientodel habla para el canal especificado.

cfg Especifica el tipo de licencia de reconocimiento que debe reservarse. Los posibles valores son:

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 71

Page 82: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

NULL o 0 Reserva una licencia de motor dereconocimiento

CFG_SPANISH Español castellano

CFG_SPANISH_CATALAN Español castellano + catalán

CFG_SPANISH_BASQUE Español castellano + euskera

CFG_SPANISH_GALICIAN Español castellano + gallego

CFG_SPANISH_CATALAN_BASQUE_GALICIAN Español castellano + catalán +euskera + gallego

CFG_PORTUGUESE Portugués

CFG_PORTUGUESE_BRAZILIAN Portugués brasileño

CFG_SPANISH_MEXICAN Español mexicano

CFG_SPANISH_ARGENTINIAN Español argentino

CFG_SPANISH_CHILEAN Español chileno

CFG_SPANISH_VENEZUELAN Español venezolano

CFG_SPANISH_COLOMBIAN Español colombiano

CFG_FRENCH Francés

CFG_ENGLISH US English

45.3. Precauciones

A pesar de que no es necesario este control de acceso a las licencias, su práctica es altamente recomendable enaquellos entornos en los que se sobreexplotan las licencias de reconocimiento para evitar errores dereconocimiento indeseados debidos a la falta de licencias disponibles en un momento puntual.

Una vez finalizada la petición de reconocimiento, debe liberarse inmediatamente la licencia mediante la funciónvx_reccfg_release para permitir que peticiones que están esperando en cola puedan ser procesadas rápidamente.

Atención

Cuando se reserva licencia para una configuración, automáticamente se descarga la configuraciónanterior activa hasta ese momento.

45.4. Elementos relacionados

vx_reccfg_release, vx_playstr_wait, vx_playstr_release

45.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

72 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 83: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

46. vx_recind

FUNCION int vx_recind(int chdev, int maxind, int *index, float *score, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

int maxind número máximo de palabras del vocabularioconectadas o de palabras de la gramática

int *index vector de enteros en el que se recibirán los índices de laspalabras reconocidas

float *score vector de float en el que se recibirán los índices deconfianza de las palabras reconocidas

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 para indicar que se ha iniciado satisfactoriamente (Asíncrono)

>=0 para indicar la cantidad de palabras reconocidas (Síncrono)

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

46.1. Descripción

La función vx_recind() debe ser llamada al finalizar las funciones vx_recstr() o vx_recstr_open() para obtenerlos índices y niveles de confianza de las palabras reconocidas.

Si el número de palabras reconocidas es cero, index[0] contiene uno de los siguientes índices especiales:

IND_NOVOICE No se ha detectado voz.

IND_NOWORD No se ha reconocido ninguna palabra del vocabulario ni de la gramática.

IND_EARLY_START No se ha detectado silencio inicial.

46.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_RECIND en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

La cantidad de palabras reconocidas puede obtenerse mediante la función ATVX_NIND().

46.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

maxind especifica el número máximo de palabras del vocabulario conectadas o palabras de lagramática que pueden reconocerse. En reconocimiento de palabras aisladas, el valor de estaparámetro debe fijarse a 1.

index puntero a un vector de enteros que recibirá los índices de las palabras reconocidas. El tamaño deeste vector debe ser mayor o igual a maxind.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 73

Page 84: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

score puntero a un vector de float que recibirá los niveles de confianza de las palabras reconocidas.El nivel de confianza de cada índice proporciona una medida de fiabilidad del reconocimiento,que puede ser utilizada para rechazar o pedir confirmación de las palabras reconocidas. Eltamaño de este vector debe ser mayor o igual a maxind.

mode especifica si debe ejecutarse la función vx_recind() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_recind() asíncronamente

EV_SYNC Ejecuta vx_recind() síncronamente (valor por defecto)

46.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_NORECSTR NO RECOGNITION. Use vx_recstr() to start recognition.

46.5. Elementos relacionados

vx_recstr, vx_recstr_open, vx_nbest

46.6. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

74 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 85: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

47. vx_recstr

FUNCION int vx_recstr(int chdev, DV_TPT *tptp, VX_RSP *rspp, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

DV_TPT *tptp puntero a una estructura del tipo TerminationParameter Table

VX_RSP *rspp puntero a una estructura del tipo Recognition StringParameter

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

47.1. Descripción

La función vx_recstr() inicia el reconocimiento de la señal de voz procedente del canal especificado.Adicionalmente a las condiciones de terminación de la función de grabación dx_rec(), la función vx_recstr()acepta condiciones de terminación adicionales especificadas mediante la estructura VX_RSP pasada comoparámetro.

Una vez invocada la función vx_recstr(), el proceso de reconocimiento continua hasta que se invoque a lafunción dx_stopch() o se cumpla alguna de las condiciones de terminación establecidas mediante las estructurasDV_TPT o VX_RSP.

Opcionalmente, la función vx_recstr() puede grabar la señal de voz de entrada. El formato de la grabación esPCM (ley A o ley Mu), con una frecuencia de muestreo de 8KHz y sin control automático de ganancia. Eldescriptor del fichero en el que se almacenará la grabación se especifica en la estructura VX_RSP (descrita en elCapítulo 3. Estructuras de datos y parámetros).

47.2. Funcionamiento asíncrono

Para ejecutar esta función de forma asíncrona, debe especificarse EV_ASYNC en el parámetro mode. Una vezinvocada en modo asíncrono, la función retorna 0 para indicar que se ha iniciado satisfactoriamente y generaráel evento TDX_RECORD al finalizar.

Una vez finaliza la función, el motivo de la finalización puede obtenerse mediante la funciónATDX_TERMMSK().

NOTA: El evento TDX_RECORD puede recibirse a pesar de no haberse enviado todas las muestras alreconocedor (debido a la recepción de un tono DTMF o al colgado de la línea por parte del usuario). Por lotanto, una vez recibido el evento, debe invocarse la función vx_termrecstr() para indicar al servidor dereconocimiento que no se le enviarán más muestras y que, por lo tanto, ya pueden liberarse todos los recursosasignados a la función vx_recstr().

47.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

tptp puntero a una estructura de tipo Termination Parameter Table (DV_TPT) en la que seespecifican las condiciones de terminación del proceso de reconocimiento. Las condiciones

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 75

Page 86: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

válidas que pueden especificarse son las siguientes:

DX_DIGTYPE Digit termination for user defined tone

DX_MAXDTMF Maximum number of digits received

DX_MAXSIL Maximum silence

DX_MAXNOSIL Maximum non-silence

DX_LCOFF Loop current off

DX_IDDTIME Inter-digit delay

DX_MAXTIME Function time

DX_DIGMASK Digit mask termination

DX_PMOFF Pattern match silence off

DX_PMON Pattern match silence on

DX_TONE Tone-off or Tone-on detection

Consulte la descripción de la función dx_rec() en la documentación de Dialogic para obtenermás información acerca de esta estructura.

NOTA: Adicionalmente a las condiciones de terminación definidas mediante la estructuraDV_TPT, la función vx_recstr también termina al cumplirse alguna de las condicionesestablecidas en la estructura VX_RSP o al invocarse a la función dx_stopch(). En ambos casos,el motivo de la finalización obtenido mediante la función ATDX_TERMMSK() seráTM_USRSTOP.

rspp puntero a una estructura de tipo String Parameter Structure (VX_RSP) en la que seespecifican condiciones adicionales de terminación del proceso de reconocimiento. Si el valor deeste parámetro es NULL se utilizarán los valores por defecto de los campos de la estructura. Paramás información acerca de esta estructura, consulte el Capítulo 3. Estructuras de datos yparámetros.

mode especifica el modo de funcionamiento.

EV_ASYNC Ejecuta vx_recstr() asíncronamente

EV_SYNC Ejecuta vx_recstr() síncronamente (valor por defecto)

RM_TONE Emite un tono antes de iniciar el reconocimiento. Si no se selecciona estemodo, no se transmite ningún tono (valor por defecto).

RM_ALAW El formato de grabación se realizará en ley A. Si no se especifica, se usará elvalor por defecto (ley Mu).

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

NOTAS:

Primera La función vx_recstr() modifica el valor de la velocidad de grabación a 8 KHz.Esta velocidad será la vigente en el siguiente proceso de grabación, a menosque se especifique lo contrario modificando el parámetro DXCH_RECRDRATEmediante la función dx_setparm().

Segunda La función vx_recstr() se ejecutará en modo síncrono si no se especifica

Capítulo 2. Descripción de las funciones

76 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 87: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_ASYNC en el parámetro mode o si se especifica EV_SYNC (valor pordefecto).

Tercera Algunas tarjetas de Dialogic permiten trabajar en ley A o en ley Mu(consulte la documentación del fabricante). Por defecto, todas ellas trabajan enley Mu y volverán a trabajar automáticamente en ley Mu después de cadagrabación.

47.4. Precauciones

La función vx_setvcb() o vx_loadvcb() debe ser llamada previamente a la función vx_recstr() para establecerel vocabulario o gramática activo.

La estructura VX_RSP utilizada como argumento de la función vx_recstr() debe ser inicializada a sus valorespor defecto mediante la función vx_clrrsp() antes de modificar los valores de sus campos.

47.5. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SRERROR DIALOGIC SRL ERROR. Check ATDV_LASTERR() and ATDV_ERRMSGP().

EVX_DXERROR DIALOGIC VOICE ERROR. Check ATDV_LASTERR() andATDV_ERRMSGP().

EVX_SYSTEM SYSTEM ERROR. Check errno.

EVX_NOSETVCB NO ACTIVE VOCABULARY. Use vx_setvcb() to set the active vocabulary.

47.6. Elementos relacionados

vx_termrecstr, dx_rec (consulte la documentación de Dialogic)

47.7. Códigos de ejemplo

Consulte el ejemplo síncrono.

Consulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 77

Page 88: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

48. vx_recstr_open

FUNCION int vx_recstr_open(int chdev, VX_RSP *rspp, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

VX_RSP *rspp puntero a una estructura del tipo Recognition StringParameter

unsigned int mode formato de las muestras (Ley A o Ley Mu)

RETORNA != -1 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

48.1. Descripción

La función vx_recstr_open() inicializa el servidor de reconocimiento en el canal especificado, de modo queesté preparado para empezar a recibir las muestras de audio mediante la función vx_recstr_write().

48.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

rspp puntero a una estructura de tipo String Parameter Structure (VX_RSP) en la que seespecifican condiciones adicionales de terminación del proceso de reconocimiento. Si el valor deeste parámetro es NULL se utilizarán los valores por defecto de los campos de la estructura. Paramás información acerca de esta estructura, consulte Capítulo 3. Estructuras de datos y parámetros.

mode especifica el formato de las muestras de audio pasadas al reconocedor.

MC_ALAW formato PCM (Ley A) a 8 KHz.

MC_MULAW formato PCM (Ley Mu) a 8 KHz.

48.3. Elementos relacionados

vx_recstr_write

48.4. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

78 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 89: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

49. vx_recstr_release

FUNCION int vx_recstr_release(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

49.1. Descripción

La función vx_recstr_release() libera un recurso (licencia) de reconocimiento del habla reservado mediante lafunción vx_recstr_wait() en el canal especificado.

Esta función se incluye por compatibilidad con versiones anteriores, aunque debería caer en desuso. Para nuevosdesarrollos es aconsejable utilizar la función vx_reccfg_release.

49.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

49.3. Elementos relacionados

vx_recstr_wait, vx_reccfg_wait, vx_reccfg_release, vx_getusedasrlic, vx_playstr_release, vx_playstr_wait

49.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 79

Page 90: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

50. vx_recstr_wait

FUNCION int vx_recstr_wait(int chdev, int ms)

int chdev descriptor de un canal abierto de Dialogic

int ms tiempo máximo de espera para obtener un recurso (en milisegundos)

RETORNA 0 si el resultado es satisfactorio

-1 en caso de no poder obtener un recurso en el tiempo especificado

INCLUDES vxxxlib.h

MODO síncrono

50.1. Descripción

La función vx_recstr_wait() reserva un recurso (licencia) de reconocimiento del habla para el canalespecificado hasta que se libere mediante la función vx_recstr_release(). La función espera un máximo de msmilisegundos la disponibilidad de un recurso, transcurridos los cuales devuelve un error.

El uso de esta función es aconsejable para gestionar el uso de los recursos (licencias) disponibles. En entornosen los que nunca se producirán más peticiones simultáneas de reconocimiento que licencias disponibles no esnecesario su uso.

Esta función se incluye por compatibilidad con versiones anteriores, aunque debería caer en desuso. Para nuevosdesarrollos es aconsejable utilizar la función vx_reccfg_wait.

50.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

ms tiempo máximo de espera, en milisegundos, para obtener un recurso (licencia) de reconocimientodel habla para el canal especificado.

50.3. Elementos relacionados

vx_recstr_release, vx_reccfg_wait, vx_reccfg_release, vx_getusedasrlic, vx_playstr_wait, vx_playstr_release

50.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

80 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 91: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

51. vx_recstr_write

FUNCION int vx_recstr_write(int chdev, const void *buffer, unsigned int n)

int chdev descriptor de un canal abierto de Dialogic

const void *buffer vector en el que se encuentran las muestras de audio que debeprocesar el reconocedor

unsigned int n tamaño del vector de muestras (en bytes)

RETORNA número de muestras procesadas por el motor de reconocimiento

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

51.1. Descripción

La función vx_recstr_write() envía las muestras recibidas hacia el servidor de reconocimiento.

La función retorna un número igual al número de bytes contenidos en el vector de muestras para indicar quetodavía no ha finalizado el proceso de reconocimiento y que, por lo tanto, es necesario seguir invocando a estafunción con nuevas muestras de audio.

La función retorna un número de muestras menor que el tamaño del vector de muestras para indicar que elservidor de reconocimiento ya no acepta más muestras debido a que se ha cumplido alguna de las condicionesde terminación especificadas en la función vx_recstr_open.

51.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

buffer vector en el que se encuentran las muestras de audio que debe procesar el reconocedor.

n tamaño del vector de muestras.

51.3. Elementos relacionados

vx_recstr_open

51.4. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 81

Page 92: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

52. vx_RegisterVVICallback

FUNCION int vx_RegisterVVICallback(int chdev, int (*function)(const char *,unsigned long, size_t))

int chdev descriptor de un canal abierto de Dialogic

int(*function)(constchar *, unsignedlong, size_t)

función de callback que será invocada cada vez que elmotor de lenguaje estadístico disponga de un nuevo resultado.

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

52.1. Descripción

La función vx_RegisterVVICallback() especifica una función de callback que será la encargada de recibirlos resultados que el motor de lenguaje natural de Verbio vaya generando durante el análisis de las muestras deaudio. Esta función es invocada automáticamente cada vez que el motor de reconocimiento dispone de nuevosresultados.

52.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante lafunción dx_open().

int (*function)(constchar *, unsigned long,size_t)

Función de callback encargada de recibir los resultados de reconocimientogenerados por el motor de reconocimiento estadístico.El resultado se entregará enel primer parámetro (const char* en modo texto. El índice de confianza delresultado se entregará en el segundo parámetro. El identificador del canal desde elque se ha definido la función de callback se entregará en el tercer parámetro.

52.3. Códigos de ejemploConsulte el ejemplo del Library SDK.

Capítulo 2. Descripción de las funciones

82 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 93: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

53. vx_regsrvclose

FUNCION int vx_regsrvclose(VX_SRVCLOSE function)

VX_SRVCLOSEfunction

función de callback que atenderá el evento de desconexión

RETORNAINCLUDES vxxxlib.h

MODO síncrono

53.1. Descripción

La función vx_regsrvclose() permite especificar una función (opcional) que será invocada en cuanto se detecteuna desconexión entre el cliente y el servidor de síntesis y/o reconocimiento.

53.2. Descripción de los parámetros

function especifica la función de callback que se invocará en cuanto se produzca una desconexiónentre el cliente y el servidor. La definición de la función es del tipo:

typedef void (*VX_SRVCLOSE) (const char *server)

donde recibirá como parámetro el nombre o dirección IP del servidor con el que se haperdido la comunicación.

53.3. Elementos relacionados

vx_srvclose

53.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 83

Page 94: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

54. vx_SapiClose

FUNCION int vx_SapiClose(int chdev, HSAPI pmode)

int chdev descriptor de un canal abierto de Dialogic

HSAPI pmode descriptor de un motor de síntesis compatible SAPI

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

vxxxlib.h

MODO síncrono

54.1. Descripción

La función vx_SapiClose() cierra un motor de síntesis compatible con SAPI previamente abierto mediante lafunción vx_SapiOpen().

54.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

pmode descriptor de un motor de síntesis compatible SAPI previamente abierto mediante la funciónvx_SapiOpen().

54.3. Elementos relacionados

vx_SapiOpen, vx_SapiSelect

54.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

84 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 95: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

55. vx_SapiOpen

FUNCION int vx_SapiOpen(int chdev, TTSMODEINO *TTSModeInfo, HSAPI *pmode,unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

TTSMODEINO*TTSModeInfo

puntero a una estructura del tipo Text-to-SpeechInformation

HSAPI *pmode puntero que recibirá el descriptor del motor de síntesis SAPIabierto

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

vxxxlib.h

MODO síncrono/asíncrono

55.1. Descripción

La función vx_SapiOpen() abre el motor de síntesis compatible SAPI que mejor se adapta a los requisitosespecificados mediante la estructura TTSMODEINFO en caso de existir.

Una vez finalizada satisfactoriamente la función vx_SapiOpen(), el motor de síntesis abierto puede serseleccionado mediante la función vx_SapiSelect(), especificando el descriptor obtenido. El motor de síntesisdebe ser cerrado mediante la función vx_SapiClose().

55.2. Funcionamiento asíncrono

Para ejecutar esta función de forma asíncrona, debe especificarse EV_ASYNC en el parámetro mode. Una vezinvocada en modo asíncrono, la función retorna 0 para indicar que se ha iniciado satisfactoriamente y generaráel evento TVX_SELECT al finalizar.

55.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

TTSModeInfo puntero a una estructura de tipo Text-to-Speech Mode Information(TTSMODEINFO), que proporciona información detallada acerca del motor desíntesis que desea utilizarse. Si este parámetro es NULL, se seleccionará el motor desíntesis por defecto.

En http://www.microsoft.com/speech podrá obtener más información acerca de estaestructura y del estándar SAPI (Speech API).

pmode puntero que contendrá el descriptor del motor de síntesis seleccionado al término dela función.

mode especifica si debe ejecutarse la función vx_SapiOpen() en modo síncrono oasíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 85

Page 96: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_ASYNC Ejecuta vx_SapiOpen() asíncronamente

EV_SYNC Ejecuta vx_SapiOpen() síncronamente (valor por defecto)

55.4. Errores

Si no se encuentra ningún motor de síntesis que se adapte mínimamente a las especificaciones contenidas en laestructura TTSMODEINFO, la función retorna -1 para indicar que se ha producido un error.

55.5. Elementos relacionados

vx_SapiOpenEx, vx_SapiSelect, vx_SapiClose

55.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

86 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 97: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

56. vx_SapiOpenEx

FUNCION int vx_SapiOpenEx(int chdev, PMODEATTRIBUTES ttsattributes, HSAPI*pmode, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

PMODEATTRIBUTESttsattributes

puntero a una estructura del tipo MODEATTRIBUTES

HSAPI *pmode puntero que recibirá el descriptor del motor de síntesis SAPIabierto

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

vxxxlib.h

MODO síncrono/asíncrono

56.1. Descripción

La función vx_SapiOpenEx() abre el motor de síntesis compatible SAPI que mejor se adapta a los requisitosespecificados mediante la estructura MODEATTRIBUTES en caso de existir.

Una vez finalizada satisfactoriamente la función vx_SapiOpenEx(), el motor de síntesis abierto puede serseleccionado mediante la función vx_SapiSelect(), especificando el descriptor obtenido. El motor de síntesisdebe ser cerrado mediante la función vx_SapiClose().

56.2. Funcionamiento asíncrono

Para ejecutar esta función de forma asíncrona, debe especificarse EV_ASYNC en el parámetro mode. Una vezinvocada en modo asíncrono, la función retorna 0 para indicar que se ha iniciado satisfactoriamente y generaráel evento TVX_SELECT al finalizar.

56.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante lafunción dx_open().

ttsattributes puntero a una estructura de tipo MODEATTRIBUTES que proporcionainformación detallada acerca del motor de síntesis que desea utilizarse. Si esteparámetro es NULL, se seleccionará el motor de síntesis por defecto.

En el Capítulo 3. Estructuras de datos y parámetros podrá obtener másinformación acerca de esta estructura.

pmode puntero que contendrá el descriptor del motor de síntesis seleccionado al términode la función.

mode especifica si debe ejecutarse la función vx_SapiOpenEx() en modo síncrono oasíncrono.

EV_ASYNC Ejecuta vx_SapiOpenEx() asíncronamente

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 87

Page 98: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_SYNC Ejecuta vx_SapiOpenEx() síncronamente (valor por defecto)

56.4. Errores

Si no se encuentra ningún motor de síntesis que se adapte mínimamente a las especificaciones contenidas en laestructura MODEATTRIBUTES, la función retorna -1 para indicar que se ha producido un error.

56.5. Elementos relacionados

vx_SapiOpen, vx_SapiSelect, vx_SapiClose

56.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

88 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 99: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

57. vx_SapiSelect

FUNCION int vx_SapiSelect(int chdev, HSAPI pmode)

int chdev descriptor de un canal abierto de Dialogic

HSAPI pmode descriptor de un motor de síntesis compatible SAPI

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

vxxxlib.h

MODO síncrono

57.1. Descripción

La función vx_SapiSelect() selecciona el motor de síntesis compatible SAPI abierto previamente mediante lafunción vx_SapiOpen().

Una vez invocada satisfactoriamente la función vx_SapiSelect(), el motor de síntesis compatible SAPIseleccionado estará activo en el canal hasta la siguiente llamada a esta función o a la función vx_SapiClose().

57.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

pmode descriptor de un motor de síntesis compatible SAPI previamente abierto mediante la funciónvx_SapiOpen().

57.3. Errores

Si no existe un motor de síntesis asociado con el descriptor especificado, la función retorna -1 para indicar quese ha producido un error.

57.4. Elementos relacionados

vx_SapiOpen, vx_SapiClose

57.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 89

Page 100: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

58. vx_SetAbbreviations

FUNCION int vx_SetAbbreviations(int chdev, const char *mcLang, const char *filename)

int chdev descriptor de un canal abierto de Dialogic

const char *mcLang especifica el idioma asociado al diccionario personal deabreviaturas

const char *filename puntero al nombre del fichero de texto que contiene lasabreviaturas personalizadas

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

58.1. Descripción

La función vx_SetAbbreviations() establece un conjunto de abreviaturas personalizadas para ser utilizadas porel servidor de síntesis en el canal especificado, pudiendo ser modificadas dinámicamente.

El diccionario de abreviaturas personalizadas se añade al diccionario global de abreviaturas usado por elservidor de síntesis para el idioma especificado.

Para una mayor información, consulte el capítulo de síntesis del habla en Verbio Software Reference:Guía del Usuario.

58.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

mclang especifica el idioma asociado con el vocabulario de abreviaturas personalizadas.

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_FRENCH Francés

LNG_ENGLISH Inglés

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_COLOMBIAN Español colombiano

Capítulo 2. Descripción de las funciones

90 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 101: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_VENEZUELAN Español venezolano

filename puntero al nombre del fichero de texto que contiene las abreviaturas personalizadas para elidioma seleccionado.

58.3. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá el motivo del error.

58.4. Elementos relacionados

vx_SetDictionary

58.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 91

Page 102: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

59. vx_setcd

FUNCION int vx_setcd(int chdev, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

59.1. Descripción

La función vx_setcd() establece el vocabulario de dígitos conectados en el canal especificado.

59.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

59.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

mode especifica si debe ejecutarse la función vx_setcd() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_setcd() asíncronamente

EV_SYNC Ejecuta vx_setcd() síncronamente (valor por defecto)

59.4. Precauciones

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

59.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_SYSTEM SYSTEM ERROR. Check errno.

59.6. Elementos relacionados

Capítulo 2. Descripción de las funciones

92 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 103: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

vx_setvcb, vx_loadvcb, vx_activatevcb, vx_deactivatevcb, vx_unloadvcb, ATVX_IVCB

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 93

Page 104: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

60. vx_SetDictionary

FUNCION int vx_SetDictionary(int chdev, const char *mcLang, const char *filename)

int chdev descriptor de un canal abierto de Dialogic

const char *mcLang especifica el idioma asociado al diccionario personal

const char *filename puntero al nombre del fichero de texto que contiene eldiccionario personalizado

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

60.1. Descripción

La función vx_SetDictionary() establece un diccionario personalizado para ser utilizado por el servidor desíntesis en el canal especificado, pudiendo ser modificado dinámicamente.

El diccionario personalizado se añade al diccionario global usado por el servidor de síntesis para el idiomaespecificado.

Para una mayor información, consulte el capítulo de síntesis del habla en Verbio Software Reference:Guía del Usuario.

60.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

mclang especifica el idioma al que afectará el diccionario personalizado.

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_FRENCH Francés

LNG_ENGLISH Inglés

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_COLOMBIAN Español colombiano

Capítulo 2. Descripción de las funciones

94 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 105: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_VENEZUELAN Español venezolano

filename puntero al nombre del fichero de texto que contiene el diccionario personalizado para elidioma seleccionado.

60.3. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá el motivo del error.

60.4. Elementos relacionados

vx_SetAbbreviations

60.5. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 95

Page 106: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

61. vx_setparm

FUNCION int vx_setparm(int dev, unsigned long parm, void *valuep)

int dev descriptor de un canal abierto de Dialogic o -1 paraparámetros globales de VERBIO (independientes del canal)

unsigned long parm parámetro del que se desea establecer el valor

void *valuep puntero a la variable en la que se almacena el valor delparámetro a modificar

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

61.1. Descripción

La función vx_setparm() permite modificar los valores de los parámetros globales o dependientes del canal deVERBIO. Esta función puede modificar el valor de un único parámetro en cada invocación.

61.2. Descripción de los parámetros

dev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().Use -1 para establecer el valor de parámetros globales de VERBIO (independientes del canal).

parm especifica el identificador del parámetro del que se desea modificar el valor por el de la variableapuntada por valuep. Los identificadores de los parámetros pueden consultarse en Capítulo 3.Estructuras de datos y parámetros.

valuep puntero a la variable en la que se almacena el valor del parámetro a modificar.

61.3. Elementos relacionados

vx_getparm, dx_getparm (consulte la documentación de Dialogic)

61.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

96 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 107: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

62. vx_setvcb

FUNCION int vx_setvcb(int chdev, const char *filename, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

const char *filename puntero al nombre del fichero que contiene el vocabulario o lagramática ABNF/DTMF o bien NULL para desactivar todos losvocabularios

unsigned int mode funcionamiento síncrono o asíncrono e indicación de trabajarcon una gramática ABNF o DTMF

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

62.1. Descripción

La función vx_setvcb() establece el vocabulario o la gramática ABNF o DTMF especificado en el canalespecificado.

62.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

62.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

filename puntero al nombre del fichero que contiene el vocabulario (cada línea constituye unapalabra del vocabulario formada por una o más palabras) o la gramáticaABNF/DTMF.

NULL para desactivar todos los vocabularios y gramáticas cargados hasta ese momento ypara liberar la licencia de idioma asociada al canal.

mode indica el tipo de vocabulario o gramática y si debe ejecutarse la función vx_setvcb() enmodo síncrono o asíncrono.

GVX_ISOLATED Palabras aisladas. El reconocedor espera reconocer una únicapalabra del vocabulario de este vocabulario.

GVX_CONNECTED Palabras conectadas (valor por defecto). El reconocedorespera reconocer una o más palabras delvocabulario de este vocabulario.

GVX_ABNF gramática ABNF. El reconocedor espera reconocer una o máspalabras de la gramática.

GVX_DTMF gramática DTMF. El reconocedor espera recibir uno o mástonos DTMF.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 97

Page 108: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

EV_ASYNC Ejecuta vx_setvcb() asíncronamente

EV_SYNC Ejecuta vx_setvcb() síncronamente (valor por defecto)

NOTA: puede combinar las distintas opciones mediante el operador lógico "|"

62.4. Precauciones

Sin la opción GVX_ABNF habilitada, la función vx_setvcb() requiere el fichero de definiciones y el fichero detranscripciones generados mediante la función vx_prevcb() o vx_prevcbex() o vx_prevcbex2() ovx_prevcbdev(). Si estos ficheros existen y el fichero de vocabulario correspondiente no ha sido modificadodesde que se llamó a la función vx_prevcb() (o vx_prevcbex() o vx_prevcbex2() o vx_prevcbdev()), no esnecesario volver a invocarlas antes de cargar el vocabulario mediante la función vx_setvcb().

Con la opción GVX_ABNF habilitada, la función vx_setvcb() requiere el fichero de estados de la gramática, elfichero de definiciones y el fichero de transcripciones generado mediante la función vx_prevcb() ovx_prevcbex() o vx_prevcbex2() o vx_prevcbdev(). Si estos ficheros existen y la gramática ABNFcorrespondiente no ha sido modificado desde que se llamó a la función vx_prevcb() (o vx_prevcbex() ovx_prevcbex2() o vx_prevcbdev()), no es necesario volver a invocarlas antes de cargar la gramática mediantela función vx_setvcb().

Con la opción GVX_DTMF la gramática no crea ficheros adicionales resultados de la compilación.

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que laexistente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

62.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY.

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID.

EVX_INVWORD THE VOCABULARY TRANSCRIPTION WAS NOT FOUND.

EVX_SYSTEM SYSTEM ERROR. Check errno.

62.6. Elementos relacionados

vx_setcd, vx_loadvcb, vx_activatevcb, vx_deactivatevcb, vx_unloadvcb, ATVX_IVCB

62.7. Códigos de ejemplo

Consulte el ejemplo síncrono.

Consulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

98 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 109: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

63. vx_srvclose

FUNCION void vx_srvclose(const char *server)

const char *server dirección IP del servidor con el que el cliente cierra laconexión

INCLUDES vxxxlib.h

MODO síncrono

63.1. Descripción

La función vx_srvclose() cierra todas las conexiones con el servidor especificado en la dirección IP.

63.2. Descripción de los parámetros

server especifica la dirección IP del servidor con el que se cerrarán todas las conexiones.

63.3. Elementos relacionados

vx_regsrvclose

63.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 99

Page 110: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

64. vx_termplaystr

FUNCION int vx_termplaystr(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

64.1. Descripción

La función vx_termplaystr() asegura que todos los eventos recibidos como consecuencia de una llamadaasíncrona a la función vx_playstr() son eliminados de la cola de eventos.

64.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

64.3. Precauciones

Esta función debe ser llamada únicamente cuando la función vx_playstr() se ha invocado asíncronamente.

64.4. Elementos relacionados

vx_playstr

64.5. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

100 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 111: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

65. vx_termrecstr

FUNCION int vx_termrecstr(int chdev)

int chdev descriptor de un canal abierto de Dialogic

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

65.1. Descripción

La función vx_termrecstr() indica el final del reconocimiento iniciado mediante la función vx_recstr_open() omediante la función vx_recstr() invocada asíncronamente.

65.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

65.3. Precauciones

Esta función debe ser llamada únicamente cuando la función vx_recstr() o vx_recstr_open() se ha invocadoasíncronamente.

65.4. Elementos relacionados

vx_recstr, vx_recstr_open

65.5. Códigos de ejemploConsulte el ejemplo asíncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 101

Page 112: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

66. vx_thclose

FUNCION int vx_thclose()

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

66.1. Descripción

La función vx_thclose libera las conexiones con el motor de síntesis y o reconocimiento del habla utilizadas porel thread (hilo) que la invoca. Por lo tanto, esta función debe invocarse siempre desde cualquier thread(hilo) que haya hecho uso de síntesis o reconocimiento, justo antes del momento de su destrucción. De estemodo, se liberarán los recursos utilizados para establecer la comunicación con los servidores de síntesis y/oreconocimiento del habla.

66.2. Elementos relacionadosvx_libclose, vx_srvclose, vx_devclose

66.3. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

102 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 113: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

67. vx_tts_init

FUNCION int vx_tts_init(const char *configuration, const char *defttslng)

const char*configuration

uso futuro. Debe tener el valor NULL.

const char*defttslng

identificador del idioma de síntesis por defecto

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

67.1. Descripción

La función vx_tts_init() inicializa la librería de síntesis del habla de Verbio. En nuevos desarrollos esrecomendable utilizar esta función (conjuntamente con la función vx_asr_init en caso de que también serequiera reconocimiento del habla) en lugar de la función vx_libinit, puesto que permite indicar al servidor losparámetros de inicialización de una manera mucho más concreta.

67.2. Descripción de los parámetros

configuration parámetro destinado a usos futuros. El valor debe ser fijado a NULL.

defttslng especifica el idioma por defecto con el que trabajará el servidor de síntesis.

LNG_SPANISH Español castellano

LNG_CATALAN Catalán

LNG_BASQUE Euskera

LNG_GALICIAN Gallego

LNG_PORTUGUESE Portugués

LNG_PORTUGUESE_BRAZILIAN Portugués brasileño

LNG_FRENCH Francés

LNG_ENGLISH Inglés

LNG_SPANISH_MEXICAN Español mexicano

LNG_SPANISH_ARGENTINIAN Español argentino

LNG_SPANISH_COLOMBIAN Español colombiano

LNG_SPANISH_CHILEAN Español chileno

LNG_SPANISH_VENEZUELAN Español venezolano

67.3. Precauciones

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 103

Page 114: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

La función vx_tts_init() debe invocarse antes que ninguna otra de las funciones del SDK de Verbiorelacionadas con la síntesis del habla, a excepción de aquella destinada a establecer el servidor de trabajo pordefecto en configuraciones cliente-servidor (vx_setparm).

67.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR(-1)y ATVX_ERRMSGP(-1) obtendrá alguno de los siguientes motivos de error:

EVX_SRERROR DIALOGIC SRL ERROR. Check ATDV_LASTERR() and ATDV_ERRMSGP().

EVX_DXERROR DIALOGIC VOICE ERROR. Check ATDV_LASTERR() andATDV_ERRMSGP().

EVX_NOBOARDS NO BOARDS DETECTED. Check Dialogic Drivers Start Up.

EVX_INVSETUP VERBIO INTERNAL ERROR. Files may be corrupted. Check disk and repeatSetup.

EVX_NOMEM OUT OF MEMORY.

EVX_NOLICFILE NO LICENSE FILE WAS FOUND. Run CheckOut to obtain a license file.

EVX_INVLIC THE LICENSE FILE IS NOT VALID. Run CheckOut to obtain a valid licensefile.

EVX_SYSTEM SYSTEM ERROR.Check errno.

EVX_INVSRVER INVALID DIALOGIC SRL RELEASE (libsrlmt.dll). Check README.TXT.

EVX_INVDXVER INVALID DIALOGIC VOICE LIBRARY RELEASE (libdxxmt.dll).

67.5. Elementos relacionados

vx_libinit, vx_asr_init, vx_libclose

67.6. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

104 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 115: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

68. vx_ttsSetAbbreviations

FUNCION int vx_ttsSetAbbreviations(int chdev, int mcLang, const char *filename)

int chdev descriptor de un canal abierto de Dialogic

int mcLang especifica el idioma asociado al diccionario personal deabreviaturas

const char *filename puntero al nombre del fichero de texto que contiene lasabreviaturas personalizadas

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

68.1. Descripción

La función vx_ttsSetAbbreviations() establece un conjunto de abreviaturas personalizadas para ser utilizadaspor el servidor de síntesis en el canal especificado, pudiendo ser modificadas dinámicamente.

El diccionario de abreviaturas personalizadas se añade al diccionario global de abreviaturas usado por elservidor de síntesis para el idioma especificado.

Esta función está obsoleta y se mantiene por compatibilidad con desarrollos antiguos. Para nuevos desarrollos,es aconsejable utilizar la función vx_SetAbbreviations.

Para una mayor información, consulte el capítulo de síntesis del habla en Verbio Software Reference:Guía del Usuario.

68.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

mclang especifica el idioma asociado con el vocabulario de abreviaturas personalizadas.

LVX_SPANISH Español

LVX_CATALAN Catalán

filename puntero al nombre del fichero de texto que contiene las abreviaturas personalizadas para elidioma seleccionado.

68.3. Precauciones

La función vx_ttsSetAbbreviations() está incluida por compatibilidad con antiguos desarrollos. Para nuevosproyectos es aconsejable utilizar la función equivalente vx_SetAbbreviations().

68.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() y

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 105

Page 116: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

ATVX_ERRMSGP() obtendrá el motivo del error.

68.5. Elementos relacionados

vx_ttsSetDictionary, vx_SetAbbreviations

68.6. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

106 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 117: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

69. vx_ttsSetDictionary

FUNCION int vx_ttsSetDictionary(int chdev, int mcLang, const char *filename)

int chdev descriptor de un canal abierto de Dialogic

int mcLang especifica el idioma asociado al diccionario personal

const char *filename puntero al nombre del fichero de texto que contiene eldiccionario personalizado

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

69.1. Descripción

La función vx_ttsSetDictionary() establece un diccionario personalizado para ser utilizado por el servidor desíntesis en el canal especificado, pudiendo ser modificado dinámicamente.

El diccionario personalizado se añade al diccionario global usado por el servidor de síntesis para el idiomaespecificado.

Esta función está obsoleta y se mantiene por compatibilidad con desarrollos antiguos. Para nuevos desarrollos,es aconsejable utilizar la función vx_SetDictionary.

Para una mayor información, consulte el capítulo de síntesis del habla en Verbio Software Reference:Guía del Usuario.

69.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

mclang especifica el idioma al que afectará el diccionario personalizado.

LVX_SPANISH Español

LVX_CATALAN Catalán

filename puntero al nombre del fichero de texto que contiene el diccionario personalizado para elidioma seleccionado.

69.3. Precauciones

La función vx_ttsSetDictionary() está incluida por compatibilidad con antiguos desarrollos. Para nuevosproyectos es aconsejable utilizar la función equivalente vx_SetDictionary().

69.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funciones ATVX_LASTERR() yATVX_ERRMSGP() obtendrá el motivo del error.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 107

Page 118: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

69.5. Elementos relacionados

vx_ttsSetAbbreviations, vx_SetDictionary

69.6. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

108 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 119: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

70. vx_unloadvcb

FUNCION int vx_unloadvcb(int chdev, int vcbhandle, unsigned int mode)

int chdev descriptor de un canal abierto de Dialogic

int vcbhandle descriptor de un vocabulario o gramática ABNF previamentecargado

unsigned int mode funcionamiento síncrono o asíncrono

RETORNA >=0 indicando el descriptor del vocabulario si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono/asíncrono

70.1. Descripción

La función vx_unloadvcb() descarga un vocabulario o gramática ABNF previamente cargado en el canalespecificado. El descriptor del vocabulario se obtiene al cargarlo mediante la función vx_loadvcb() y tambiéndebe usarse para activarlo mediante la función vx_activatevcb() o para descactivarlo mediante la funciónvx_deactivatevcb(). Si el descriptor del vocabulario es -1, la función vx_unloadvcb() descarga todos losvocabularios y gramáticas ABNF cargados previamente.

70.2. Funcionamiento asíncrono

En modo asíncrono, la función retorna de inmediato, generándose el evento TVX_SETVCB una vez hafinalizado. En caso de error, se genera el evento TVX_ERROR.

70.3. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la funcióndx_open().

vcbhandle descriptor de un vocabulario o gramática ABNF previamente cargado mediante la funciónvx_loadvcb().

mode especifica si debe ejecutarse la función vx_unloadvcb() en modo síncrono o asíncrono.

EV_ASYNC Ejecuta vx_unloadvcb() asíncronamente

EV_SYNC Ejecuta vx_unloadvcb() síncronamente (valor por defecto)

70.4. Precauciones

Si se establece el vocabulario o la gramática activa mediante la función vx_setvcb() o vx_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento (equivale ainvocar la función vx_unloadvcb() con el parámetro vcbhandle fijado al valor -1).

A diferencia de invocar a la función vx_setvcb() con el parámetro filename a valor NULL, si se descargantodos los vocabularios mediante la función vx_unloadvcb() con el parámetro vcbhandle fijado al valor -1,no se libera la licencia de idioma asociada al canal.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 109

Page 120: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

70.5. Errores

En modo asíncrono, la función retorna de forma inmediata, generándose el evento TVX_SETVCB en cuantofinalice. Si se produce un error, el evento recibido será TVX_ERROR. En este caso, utilice la funciónATVX_LASTERR() para conocer el motivo del error.

En modo síncrono, si la función retorna -1 indicando que se ha producido un error, la funciónATVX_LASTERR() devolverá alguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_VCBFILE THE VOCABULARY FILE NAME IS NOT VALID.

EVX_INVWORD THE VOCABULARY TRANSCRIPTION WAS OT FOUND

EVX_SYSTEM SYSTEM ERROR. Check errno.

70.6. Elementos relacionados

vx_setvcb, vx_loadvcb, vx_loadcd, vx_activatevcb, vx_deactivatevcb, ATVX_IVCB

70.7. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

110 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 121: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

71. vx_vsd_close

FUNCION int vx_vsd_close(int chdev, VAD_PARAM* vsddev)

int chdev descriptor de un canal abierto de Dialogic

VAD_PARAM*vsddev

descriptor de detección de voz válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

71.1. Descripción

La función vx_vsd_close() cierra el desciptor de detección de voz abierto mediante la función vx_vsd_open ylibera los recursos utilizados durante el proceso de detección de voz.

71.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

vsddev especifica el descriptor de detección de voz válido obtenido mediante la función vx_vsd_open.

71.3. Elementos relacionados

vx_vsd_open, vx_vsd_write

71.4. Códigos de ejemploConsulte el ejemplo de detección de voz.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 111

Page 122: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

72. vx_vsd_open

FUNCION VAD_PARAM* vx_vsd_open(int chdev, int recdev, VAD_PRM *prm, unsignedint mode)

int chdev descriptor de un canal abierto de Dialogic

int recdev descriptor del proceso de reconocimiento paralelo en caso deexistir

VAD_PRM *prm puntero a una estructura del tipo Voice ActivityDetection Parameter

unsigned int mode formato de las muestras (Ley A o Ley Mu)

RETORNA != -1 para indicar el descriptor de detección de la voz

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

72.1. Descripción

La función vx_vsd_open() inicializa el detector de voz en el canal especificado, de modo que esté preparadopara empezar a recibir las muestras de audio mediante la función vx_vsd_write(). El valor devuelto por lafunción es requerido por las funciones vx_vsd_write() y vx_vsd_close().

Con la finalidad de reducir el coste computacional en el servidor de reconocimiento, es una práctica aconsejableutilizar el detector de voz en la parte cliente de la aplicación, de modo que únicamente se mandan alreconocedor muestras de voz, liberando a éste de la tarea de separar la señal de voz de la señal supérflua. Paraello, debe obtenerse previamente un descriptor de reconocimiento mediante la función vx_recstr_open, queserá necesario especificar como segundo parámetro de la función vx_vsd_open.

72.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

recdev en caso de lanzar un proceso de reconocimiento utilizando el VAD en el cliente, es necesarioespecificar el descriptor de reconocimiento obtenido mediante la función vx_recstr_open en esteparámetro. De este modo, el servidor de reconocimiento se verá liberado de la tarea de separar laseñal de voz del silencio, reduciéndose así el coste computacional de la parte servidora. En casode que la estrategia de detección de voz no esté ligada a un proceso de reconocimiento, el valorde este parámetro debe ser 0.

prm puntero a una estructura de tipo Voice Activity Detection Structure (VAD_PRM)en la que se especifican las variables de entorno que condicionarán el comportamiento deldetector de voz. Si el valor de este parámetro es NULL se utilizarán los valores por defecto de loscampos de la estructura. Para más información acerca de esta estructura, consulte el Capítulo 3.Estructuras de datos y parámetros.

mode especifica el formato de las muestras de audio pasadas al detector de voz.

MC_ALAW formato PCM (Ley A) a 8 KHz.

MC_MULAW formato PCM (Ley Mu) a 8 KHz.

Capítulo 2. Descripción de las funciones

112 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 123: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

72.3. Precauciones

Una vez finalizado el proceso de detección de voz, es imprescindible invocar a la función vx_vsd_close paraliberar los recursos de memoria utilizados durante el proceso de detección.

72.4. Elementos relacionados

vx_vsd_write, vx_vsd_close

72.5. Códigos de ejemploConsulte el ejemplo de detección de voz.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 113

Page 124: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

73. vx_vsd_write

FUNCION int vx_vsd_write(VAD_PARAM* vsddev, const void *buffer, unsigned int n)

VAD_PARAM*vsddev

descriptor de detección de voz válido

const void *buffer vector en el que se encuentran las muestras de audio que debeprocesar el detector de voz

unsigned int n tamaño del vector de muestras (en bytes)

RETORNA estado en el que se encuentra el proceso de detección de voz.

-1 en caso de error

INCLUDES vxxxlib.h

MODO síncrono

73.1. Descripción

La función vx_vsd_write() envía las muestras recibidas hacia el detector de voz para ser procesadas.

La función retorna el estado en el que se ha quedado el algoritmo de detección de voz después de procesar elbuffer de muestras actual. Para conocer los posibles estados y las transiciones permitidas entre ellos, consulteel Capítulo 3. Estructuras de datos y parámetros. Es posible también especificar una función de callbackque se ejecute al finalizar el procesado de cada bloque de muestras, instante en el cual informará del estadoactual y de otros parámetros de interés. Encontrará más detalles en la definición del campo callback de laestructura VAD_PRM. Los parámetros también pueden consultarse de forma directa e individualmente mediantela función vx_getparm mediante los identificadores VXCH_INITSIL, VXCH_FINALSIL y VXCH_VOICE.Para más detalles, consulte el Capítulo 3. Estructuras de datos y parámetros.

73.2. Descripción de los parámetros

vsddev especifica el descriptor de detección de voz válido obtenido mediante la función vx_vsd_open.

buffer vector en el que se encuentran las muestras de audio que debe procesar el detector de voz.

n tamaño del vector de muestras.

73.3. Elementos relacionados

vx_vsd_open, vx_vsd_close

73.4. Códigos de ejemploConsulte el ejemplo de detección de voz.

Capítulo 2. Descripción de las funciones

114 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 125: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

74. vx_word

FUNCION char* vx_word(int chdev, int ind)

int chdev descriptor de un canal abierto de Dialogic

int ind índice asociado con la palabra del vocabulario o gramática que sedesea obtener

RETORNA puntero a un vector de caracteres con el contenido de la palabra del vocabulario apuntadapor el índice (fila) especificado

puntero a un vector vacío ("") si el índice especificado no es válido

INCLUDES vxxxlib.h

MODO síncrono

74.1. Descripción

La función vx_word() devuelve un puntero a un vector de caracteres ASCIIZ con el contenido asociado alíndice (fila) especificado del vocabulario o gramática activa en el canal.

74.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

ind índice asociado con la palabra del vocabulario o gramática que se desea obtener. Generalmente, losíndices de interés son aquellos devueltos por la función vx_recind o vx_nbest. En el caso de quererobtener toda la información posible ofrecida por el servidor de reconocimiento (reglas, valores,locuciones, niveles de confianza e intervalos temporales), debe utilizarse el valor IND_STREAM, encuyo caso el vector de caracteres ASCIIZ contiene toda la información estructurada siguiendo elformato especificado en Sección 5.

74.3. Elementos relacionados

vx_wordex, vx_recstr

74.4. Códigos de ejemploConsulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 115

Page 126: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

75. vx_wordex

FUNCION char* vx_wordex(int chdev, int ind, int pos)

int chdev descriptor de un canal abierto de Dialogic

int ind índice asociado con la palabra del vocabulario o gramática que sedesea obtener

int pos columna del vocabulario de la que se desea obtener el contenido

RETORNA puntero a un vector de caracteres con el contenido de la palabra del vocabulario apuntadapor el índice (fila) y columna especificados

puntero a un vector vacío ("") si el índice o la columna especificados no son válidos

INCLUDES vxxxlib.h

MODO síncrono

75.1. Descripción

La función vx_wordex() devuelve un puntero a un vector de caracteres ASCIIZ con el contenido asociado alíndice (fila) y columna especificados del vocabulario o gramática activa en el canal .

75.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

ind índice asociado con la palabra del vocabulario o gramática que se desea obtener. Generalmente, losíndices de interés son aquellos devueltos por la función vx_recind o vx_nbest. En el caso de quererobtener toda la información posible ofrecida por el servidor de reconocimiento (reglas, valores,locuciones, niveles de confianza e intervalos temporales), debe utilizarse el valor IND_STREAM, encuyo caso el vector de caracteres ASCIIZ contiene toda la información estructurada siguiendo elformato especificado en Sección 5.

pos columna del vocabulario de la que se desea obtener el contenido. Consulte Verbio SoftwareReference: Guía del usuario para más detalles acerca del contenido de cada una de las columnasque constituyen un vocabulario.

75.3. Elementos relacionados

vx_word, vx_recstr

75.4. Códigos de ejemploConsulte el ejemplo con barge-in.

Capítulo 2. Descripción de las funciones

116 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 127: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

76. vx_wordrule

FUNCION const char* vx_wordrule(int chdev, const char* rule, int pos, float * score)

int chdev descriptor de un canal abierto de Dialogic

const char* rule nombre de la regla de la gramática de la que se desea obtenerinformación

int pos tipo de información que se desea obtener de la regla

float* score índice de confianza del resultado asociado a la reglaespecificada

RETORNA NULL en caso de error

array de caracteres con la información solicitada en caso satisfactorio

INCLUDES vxxxlib.h

MODO síncrono

76.1. Descripción

La función vx_wordrule() permite obtener la información del resultado de reconocimiento desglosado paracada una de las reglas que constituyen la gramática ABNF utilizada en el proceso de reconocimiento. Para ello,es necesario indicar el nombre de la regla del que se desea obtener la información y el tipo de información quese desea: valor, utterance o peso. El ínidice de confianza (score) se devuelve en todos los casos.ConsulteVerbio Software Reference: Guía del usuario para más detalles acerca del contenido que puede devolverse paracada una de las reglas.

76.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido obtenido al abrir el canal mediante la función dx_open().

rule nombre completo de la regla del que se desea obtener la información. En caso de reglas de segundonivel o superiores, debe especificarse también las reglas inferiores hasta llegar a la regla de interés.Por ejemplo: "regla1.subregla2.subsubregla3".

pos especifica la información que devolverá la función (junto con el índice de confianza)

0 Valor (value) del resultado de reconocimiento

1 Locución (utterance) del resultado de reconocimiento

2 Peso aplicado a la regla

score índice de confianza del resultado parcial asociado a la regla especificada

76.3. Errores

Si la función retorna 0 (nulo) indicando que se ha producido un error puede ser debido a que se ha especificadoun nombre de regla incorrecto (o de tipo de resultado), o a que dicha regla no ha generado ningún resultado dereconocimiento.

76.4. Elementos relacionados

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Dialogic SDK 117

Page 128: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

vx_word, vx_wordex

76.5. Códigos de ejemplo

Consulte el ejemplo síncrono.

Capítulo 2. Descripción de las funciones

118 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 129: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Capítulo 3. Estructuras de datos yparámetros

Page 130: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

1. VX_RSP - Recognize String Parameter

La estructura VX_RSP incluye condiciones de terminación y parámetros adicionales para las funcionesvx_recstr() o vx_recstr_open().

El contenido (typedef) de la estructura se muestra a continuación:

typedef struct vx_rsp {/* Maximum silence after voice detection */int maxsil;/* Maximum initial silence (before detecting voice) */int initsil;/* File descriptor */int io_fhandle;/* Ignored initial samples */int skip_samples;/* Callback function */VX_RSP_CALLBACK callback;

} VX_RSP;

donde:

maxsil especifica la duración máxima, en unidades de 10 ms, del silencio final. Una vezdetectada señal de voz, la función vx_recstr() detiene el proceso dereconocimiento si se detecta un intervalo de silencio superior a este valor. (Valorpor defecto: 20).

initsil especifica la duración máxima, en unidades de 10 ms, del silencio inicial. Si antesde detectar señal de voz transcurre un tiempo superior al valor especificado, sedetiene el proceso de reconocimiento. (Valor por defecto: 350).

io_fhandle contiene un descriptor de fichero obtenido mediante la invocación de la funcióndx_fileopen(). Si el valor es distinto de -1, la función vx_recstr() grabará laseñal de entrada en este fichero. El formato de la grabación está fijado a PCM (leyA o ley Mu), con una frecuencia de muestreo de 8 KHz y sin Control Automáticode Ganancia. (Valor por defecto: -1).

skip_samples número de muestras iniciales que serán ignoradas por el reconocedor. Esespecialmente útil en aquellos casos en los que las muestras proceden de unfichero de audio con cabecera, debido a la necesidad de no procesar los primerosbytes, puesto que éstos pertenecen a la cabecera. (Valor por defecto: 0).

callback función que será invocada en cuanto finalice el reconocimiento. Debe seguir lasintaxis int (*VX_RSP_CALLBACK) (int);, en el que el parámetrorecibido (entero) es el descriptor del canal abierto mediante la función dx_open.Es especialmente útil cuando se implementan funcionalidades de barge-in, taly como se muestra en el ejemplo con barge-in.

Nota

Si no desea grabarse la señal de entrada, el campo io_fhandle debe tener el valor -1. Este es elvalor por defecto establecido mediante la función vx_clrrsp().

Capítulo 3. Estructuras de datos yparámetros

120 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 131: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

2. VAD_PRM - Voice Activity Detection Parameters

La estructura VAD_PRM contiene los parámetros de configuración del detector de voz de Verbio. Estosparámetros condicionarán el comportamiento del VAD durante el procesado de las muestras de audio.

El contenido (typedef) de la estructura se muestra a continuación:

typedef struct {unsigned short frame_len;unsigned short frame_step;float sil_req_ms;float voice_req_ms;float low_factor;float high_factor;float final_factor;float final_high_factor;float max_ref_factor;float min_high_thresh;float aam_min;float aam_max;

int (*callback)(int state, unsigned long initsil, unsigned long finalsil, unsigned long voice);}VAD_PRM;

donde:

frame_len especifica el tamaño, en muestras, de cada uno de los bloques de audio en los quese fragmentará la señal entrante antes de ser procesada. A mayor tamaño delbloque, menor coste computacional pero también menor precisión a la hora deobtenerse el instante en el que se empieza a recibir voz. Por el contrario, a menortamaño, mayor precisión incrementándose por contra el coste computacional. Elvalor por defecto tras la invocación de la función vox_clrvad es de 512.

frame_step especifica el tamaño, en muestras, de la ventana utilizada para el procesado decada uno de los bloques en los que se ha dividido la señal de audio a analizar. Aligual que en el caso del parámetro frame_len, a mayor tamaño menor precisióny coste computacional. Por el contrario, a menor tamaño mayor precisión y costecomputacional. El valor de este parámetro no puede ser nunca superior al deframe_len, siendo habitual que coincidan ambos valores. El valor por defectotras la invocación de la función vox_clrvad es de 512.

sil_req_ms especifica el tiempo de silencio mínimo, en milisegundos, para determinar que seha detectado voz en las muestras anteriores. Intervalos menores de silencio seentenderá que forman parte de la señal de voz previa. En función del uso al quevaya destinado el VAD puede usarse este valor para segmentar la señal enfragmentos de voz más o menos amplios. El valor por defecto tras la invocaciónde la función vox_clrvad es de 180.

voice_req_ms especifica la duración mínima, en milisegundos, de un segmento de voz para queel VAD la detecte como tal. De este modo, se evita que ruidos, etc. puedanocasionar numerosas falsas alarmas. El valor por defecto tras la invocación de lafunción vox_clrvad es de 120.

low_factor especifica un umbral a partir del cual se inicia el procesado de la señal paradeterminar si las muestras siguientes corresponden a voz o no. Por debajo de esteumbral se considera que la señal es de silencio, de modo que en función delentorno (más o menos ruidoso), la modificación de este valor permitirá ajustar ladetección de voz de la manera más precisa posible. El valor por defecto tras lainvocación de la función vox_clrvad es de 2.5.

high_factor especifica un segundo umbral (junto con low_factor) para determinar si laseñal recibida es voz o no. El detector de voz requiere que se superen ambosumbrales para determinar que se ha recibido voz. Su valor debe ser siempresuperior al especificado para low_factor. El valor por defecto tras lainvocación de la función vox_clrvad es de 4.5.

final_factor especifica el umbral que determina si, una vez detectada voz, la señal recibida acontinuación sigue siendo señal de voz o no. Si no lo es, empieza a contar el

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 121

Page 132: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

tiempo máximo de silencio (sil_req_ms) que puede formar parte de unfragmento de voz. El valor por defecto tras la invocación de la funciónvox_clrvad es de 0.8.

final_high_factor especifica un segundo umbral (junto con final_factor) que gestiona el fin dela detección de voz una vez detectada. Si, una vez detectada voz, el nivel de laseñal es inferior a final_factor i no ha transcurrido el tiempo especificadopor sil_req_ms, puede volverse al estado de voz siempre y cuando el nivel dela señal sea superior al valor especificado para este parámetro. Si ésto ocurre,vuelve a empezar el contador de sil_req_ms. El valor por defecto tras lainvocación de la función vox_clrvad es de 2.5.

max_ref_factor Uso futuro. El valor por defecto tras la invocación de la función vox_clrvad es de0.

min_high_thresh Valor mínimo que puede tener el umbral interno que gestiona la detección de voz.El valor por defecto tras la invocación de la función vox_clrvad es de 500.

aam_min Valor mínimo de la amplitud de la señal a analizar . Si la amplitud de la señal nosupera este valor, a efectos de detección se trabajará con el valor mínimo para esefragmento de sonido. El valor por defecto tras la invocación de la funciónvox_clrvad es de 50.

aam_max Valor máximo de la amplitud de la señal a analizar . Si la amplitud de la señalsupera este valor, a efectos de detección se trabajará con el valor máximo para esefragmento de sonido. El valor por defecto tras la invocación de la funciónvox_clrvad es de 200.

callback

Diagrama de flujo de los estados del detector de voz.

Función de callback que se ejecutará cada vez que se procese un bloque demuestras (de tamaño frame_len). Por defecto no se especifica ninguna funciónde callback, de modo que no se ejecutará ningún código adicional trasprocesarse un bloque de muestras. Los parámetros que recibirá esta funcióncontendrán la siguiente información:

state estado en el que se encuentra el detector de voz en el instanteactual. Los posibles valores son:

VVX_INIT Estado inicial. Únicamente se estáen este estado antes de procesar elprimer bloque de muestras. De ésteestado únicamente puede pasarseal estado VVX_SILENCE y nunca

Capítulo 3. Estructuras de datos yparámetros

122 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 133: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

puede volverse a él.

VVX_SILENCE Estado de silencio. A él se llegadesde el estado inicial o bien desdeel estado VVX_LOW (no se harecibido señal de suficienteamplitud como para pasar alestado VVX_HIGH) o bien desdeel estado VVX_FINAL (laduración de señal de nivel alto noha sido suficiente como paradeterminar que se ha detectadovoz) o bien desde el estadoVVX_VOICE (se ha recibidosuficiente señal de alta amplitudcomo para decidir que se harecibido voz).

Es posible mantenerse en esteestado durante el procesado devarios bloques de muestrasconsecutivos.

VVX_LOW Estado de inicio de detección devoz. Mientras la amplitud de laseñal de audio esté comprendidaentre los dos umbrales de decisión,el estado puede permanecer enVVX_LOW. A él se puede llegardesde el estado VVX_SILENCE(se ha recibido un bloque demuestras de amplitud intermedia)o bien desde el estadoVVX_VOICE (se ha detectado vozen un bloque anterior y el siguienteya empieza con un nivelintermedio de señal sin pasar porel estado de silencio).

Es posible mantenerse en esteestado durante el procesado devarios bloques de muestrasconsecutivos.

VVX_HIGH Estado de nivel alto de energía dela señal. Si se mantiene un tiemposuficiente en este estado, sedecidirá que se ha recibido voz. Aeste estado se puede llegar desde elestado VVX_SILENCE oVVX_LOW (se ha recibido unbloque de muestras de amplitudelevada) o bien desde el estadoVVX_FINAL (se ha pasadopreviamente por este estado perola llegada de bloques con energíaelevada provoca que se vuelva aél) o bien desde el estadoVVX_VOICE (se ha detectado vozen un bloque anterior y el siguienteya empieza con un nivel alto de

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 123

Page 134: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

señal sin pasar por el estado desilencio ni de nivel intermedio).

Es posible mantenerse en esteestado durante el procesado devarios bloques de muestrasconsecutivos.

VVX_FINAL Estado en el que se decide si haexistido voz en los bloques previoso no. A él se llega exclusivamentedesde el estado VVX_HIGH.Transcurrido el tiempo de guarda,en función del número de bloquesque hayan superado el umbral denivel de señal asociado a voz, sedecidirá que se ha recibido voz (sepasa al estado VVX_VOICE ) ono (se pasa al estadoVVX_SILENCE).

Es posible mantenerse en esteestado durante el procesado devarios bloques de muestrasconsecutivos.

VVX_VOICE Estado al que se llega cuando sedecide que en los bloques previosde señal había muestras de voz. Aeste estado únicamente puedellegarse desde el estadoVVX_FINAL.

initsil cantidad de muestras (de silencio) acumuladas desde el iniciode la locución sin que se haya detectado voz.

finalsil cantidad de muestras (se silencio) acumuladas desde que seprocesó la última trama de voz.

voice número de fragmentos de la locución que contienen muestrasde voz. Cuanto mayor sea el silencio final exigido para dar porfinalizado un fragmento de voz, menor número de fragmentosdeberían aparecer.

Nota

Es imprescindible invocar a la función vox_clrvad para inicializar toda variable del tipo VAD_PRM.

Capítulo 3. Estructuras de datos yparámetros

124 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 135: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

3. MODEATTRIBUTES - SAPI Speaker Id

La estructura MODEATTRIBUTES es utilizada para especificar las características deseadas para un locutorSAPI. Pretende ser un medio más directo que la estructura TTSMODEINFO (Text-to-SpeechInformation) definida en el estandar SAPI. En http://www.microsoft.com/speech podrá obtener másinformación acerca de esta estructura y del estándar SAPI.

Verbio intentará encontrar al locutor que mejor se adapte a las especificaciones, no siendo necesario, por lotanto, rellenarlas todas, aunque la búsqueda será más precisa cuanto más se detallen las características dellocutor deseado.

El contenido (typedef) de la estructura se muestra a continuación:

typedef struct {

char age[SAPI_AGE_SIZE]; //Child, Teen, Adult, Seniorchar gender[SAPI_GENDER_SIZE]; //Male, Femaleunsigned short int language;char name[SAPI_NAME_SIZE];char vendor[SAPI_VENDOR_SIZE];

} MODEATTRIBUTES, *PMODEATTRIBUTES;

donde:

age especifica la edad del locutor deseado. Las posibilidades son:

Child Infantil

Teen Adolescente

Adult Adulto

Senior Tercera edad

gender especifica el sexo del locutor deseado. Las posibilidades son:

Male Masculino

Female Femenino

language identificador análogo al del campo language.LanguageID de la estructuraTTSMODEINFO, que especifica el idioma (y dialecto en algunos casos) del locutor deseado.

name nombre bajo el que se registra el locutor deseado. Suele ser la manera más directa de hacerreferencia a un locutor.

vendor nombre de la empresa que ha desarrollado el locutor deseado.

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 125

Page 136: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

4. Definición de parámetros para vx_getparm() y vx_setparm()

El fichero vxxxlib.h contiene los parámetros que pueden ser consultados y modificados mediante lasfunciones vx_getparm() y vx_setparm() respectivamente. Existen parámetros globales (independientes delcanal) y parámetros dependientes del canal.

Tabla 3.1. Parámetros globales en el SDK de Dialogic

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

VXGB_RECSTRLIC int R - Licencias de reconocimientodisponibles, i.e., número máximo dellamadas simultáneas a las funciones

vx_recstr() o vx_recstr_open().

VXGB_PLAYSTRLIC int R - Licencias de síntesis disponibles, i.e.,número máximo de llamadas

simultáneas a la función vx_playstr().

VXGB_LICMODE int R - Tipo de licencias, i.e., disponibilidad deidiomas adicionales, Lite (prestacioneslimitadas) o versiones de evaluación.

VXGB_RECSAMPFREQ float R - Frecuencia de muestreo a la que trabajael motor de reconocimiento.

VXGB_VSDMAXREF float R/W 200 Gestión de la amplitud máximapermitida para señal de voz. Condicionael comportamiento del detector de voz(VAD) del motor de reconocimiento.

VXGB_VSDMINREF float R/W 50 Gestión de la amplitud mínimapermitida para señal de voz. Condicionael comportamiento del detector de voz(VAD) del motor de reconocimiento.Para entornos ruidosos, es necesario

incrementar el valor de este parámetropara que el ruido de fondo no se

confunda por señal de voz. El valor deeste parámetro no podrá nunca superarel especificado mediante el parámetro

VXGB_VSDMAXREF.

VXGB_NETTIMEOUT int R/W 5 Intervalo de guarda (en segundos) entrelas comunicaciones cliente-servidor.

Transcurrido este intervalo, se produceun error para indicar que la

comunicación entre el cliente y elservidor se ha perdido. En la fase dedepuración es conveniente poner estevalor a -1 para evitar que se produzcaun error al ejecutarse la aplicación paso

a paso.

VXGB_DEFSERVER char* R/W "127.0.0.1" Nombre o dirección IP del equipo en elque está operativo el servidor de síntesisy/o reconocimiento al que se conecta el

Capítulo 3. Estructuras de datos yparámetros

126 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 137: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

cliente. Es necesario especificarlo antesde invocar a la función vx_libinit o

vx_asr_init o vx_tts_init.

VXGB_LOCALADDR char* R - Nombre o dirección IP del equipo en elque está ejecutándose el cliente.

VXGB_TTSSPKINFO char* R - Listado de todos los locutoresdisponibles junto con sus características

principales. El formato del vector decaracteres obtenido es el siguiente(contiene información de todos loslocutores encontrados sin espaciosintermedios): Identificador:

Nombre: Sexo: Edad: Idioma;Identificador2: Nombre2:

Sexo2: Edad2: Idioma2; ...

VXGB_TUNNING_ACT int R/W 0 Habilita (1) o deshabilita (0) lagrabación de todas las locuciones

enviadas al reconocedor junto con losresultados de reconocimiento asociados.

Es especialmente últil en la fase depruebas para poder evaluar la calidad dereconocimiento y actuar, si cabe, sobre

las gramáticas o los diálogos paramejorar el rendimiento.

VXGB_TUNNING_DIR char* R/W "" Directorio en el que se almacenarán laslocuciones y los resultados de

reconocimiento si se ha habilitado elparámetro VXGB_TUNNING_ACT.

VXGB_VVI_ARQ char* W - Especifica el modelo estadístico queserá utilizado por la aplicación. Para

ello, el valor del parámetro debe ser elnombre de la arquitectura que contienelos modelos deseados. Para más detalles

acerca de cómo utilizar elreconocimiento basado en modelosestadísticos, consulte los ejemplos ocontacte con [email protected].

VXGB_START_SPK char* R - Permite obtener el listado de locutoresdisponibles en el motor de síntesis paraser utilizados desde la aplicación. Estafunción devuelve los códigos internosde los locutores, separados por comas.Los códigos internos de los locutores

siguen la siguiente nomenclatura:languageNAME (identificador de

idioma en minúscula seguido de dosletras mayúsculas que identifican al

locutor). Para obtener un listadocompleto de los identificadores de

idioma, consulte la función vx_tts_init yel fichero vxxxlib.h.

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 127

Page 138: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

VXGB_START_CONF char* R - Permite obtener el listado deconfiguraciones de reconocimiento

disponibles en el motor dereconocimiento para ser utilizadosdesde la aplicación. Esta función

devuelve los códigos internos de lasconfiguraciones, separados por comas.

Los códigos internos de lasconfiguraciones siguen la siguientenomenclatura: LANGUAGE (paraconfiguraciones monolingües) oLANGUAGE-LANGUAGE.... -

LANGUAGE (para configuracionesmultilingües). Para obtener un listado

completo de los identificadores deidioma (de 2 o 5 caracteres), consulte la

función vx_asr_init y el ficherovxxxlib.h.

VXGB_START_VIT char* R - Permite obtener el listado arquitecturasque contienen modelos estadísticos

(SLM) disponibles para ser utilizadasdesde el motor de reconocimiento

estadístico. El listado contiene cada unode los identificadores de las

arquitecturas, separados por comas. Elnombre de las arquitecturas es fijado

por el integrador durante laconstrucción de los modelos

estadísticos. Para más detalles acerca decómo utilizar el reconocimiento basado

en modelos estadísticos, consulte losejemplos o contacte [email protected].

VXGB_START_SLM char* R - Permite obtener el listado de modelosestadísticos (SLM) disponibles dentro

de la arquitectura cargada para serutilizadas desde el motor de

reconocimiento estadístico. El listadocontiene cada uno de los identificadoresde los modelos estadísticos, separados

por comas. El nombre de los modelos esfijado por el integrador durante la

construcción de los mismos. Para másdetalles acerca de cómo utilizar el

reconocimiento basado en modelosestadísticos, consulte los ejemplos ocontacte con [email protected].

VXGB_MAXFRAMES int W 2500 Permite definir la longitud máxima de larespuesta ante un proceso de

reconocimiento. El valor son la cantidadde unidades de 20ms permitidas a lo

largo de todo el proceso, de modo que,con el valor por defecto, la longitudmáxima de audio (antes de lanzar un

nuevo reconocimiento) que puede

Capítulo 3. Estructuras de datos yparámetros

128 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 139: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

procesarse es de 50 segundos. El valorde este parámetro es un entero, de modo

que no debe ser superior a 32767.

Tabla 3.2. Parámetros de canal en el SDK de Dialogic

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

VXCH_NBEST int R/W 1 Número máximo de hipótesis generadaspor las funciones de reconocimientovx_recstr() y vx_recstr_open(). Es

muy importante tener en cuenta que unamodificación de este parámetro implicatener que volver a cargar y activar todos

los vocabularios y gramáticapreviamente activos. Por lo tanto, esaconsejable fijar este valor desde un

principio al valor máximo de hipótesisque vayan a requerirse durante el

funcionamiento de toda la aplicación y,según las necesidades de cada

momento, ir solicitando más o menoshipótesis mediante la modificación delparámetro VXCH_ACTIVE_NBEST.

VXCH_ACTIVE_NBEST int R/W 1 Número de hipótesis generadas por lasfunciones de reconocimiento

vx_recstr() y vx_recstr_open(). Adiferencia del parámetro

VXCH_NBEST, la modificación de esteparámetro no afecta a los vocabularios ygramáticas activos, sino únicamente a lacantidad de hipótesis devueltas por losmismos. Sí hay que tener en cuenta, sinembargo, que nunca se podrán solicitarmás hipótesis mediante este parámetro

que las especificadas mediante elparámetro VXCH_NBEST.

VXCH_TTSFREQUENCY int R - Frecuencia de muestreo a la que trabajael motor de síntesis.

VXCH_TTSSPEED int R/W - Velocidad de la conversión de texto avoz en palabras por minuto. El valor por

defecto depende de cada locutor.

VXCH_TTSSPKNAME char* R/W - Nombre del locutor de síntesis activo.El valor inicial dependerá de cómo se

haya configurado el servidor de síntesismediante el Verbio Server

Configuration Manager. Este mismoconfigurador permite ver el nombre de

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 129

Page 140: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

los locutores asociados a cada uno delos idiomas disponibles.

VXCH_TTSLNG int R/W - Especifica el idioma de síntesismediante una constante (véasevxxxlib.h) que se usará en el

próximo proceso de conversión de textoa habla. Se mantiene por compatibilidad

con versiones anteriores. Para nuevosdesarrollos debería utilizarse el

parámetro VXCH_DEFTTSLANG. Elvalor inicial dependerá de cómo se haya

configurado el servidor de síntesismediante el Verbio ServerConfiguration Manager.

VXCH_DEFTTSLANG char* R/W - Especifica el idioma de síntesis enformato texto (véase vxxxlib.h) que

se usará en el próximo proceso deconversión de texto a habla. En nuevosdesarrollos es la opción recomendadafrente al obsoleto VXCH_TTSLNG. El

valor inicial dependerá de cómo se hayaconfigurado el servidor de síntesis

mediante el Verbio ServerConfiguration Manager.

VXCH_TTSPITCH int R/W - Tono medio de la voz sintetizada. Lasvoces femeninas tienen un tono superiorque el de las voces masculinas. El valor

por defecto depende del locutor.

VXCH_TTSVOLUME int R/W - Volumen de la voz sintetizada. Laamplitud se amplifica

proporcionalmente a la relación entre elnuevo valor y el valor por defecto. Por

lo tanto, la estrategia recomendadaconsiste en consultar el valor actual del

locutor, manipular el valorproporcionalmente para obtener el

volumen deseado y fijarloposteriormente. Se desaconseja puesfijar un valor aleatorio sin conocer el

valor actual de funcionamiento.

VXCH_DEFASRCFG char* R/W - Configuración de reconocimiento pordefecto que se utilizará en cualquier

proceso de reconocimiento hasta que seespecifique lo contrario. El valor inicialdependerá de cómo se haya configuradoel servidor de reconocimiento mediante

el Verbio Server ConfigurationManager.

VXCH_DEFASRLNG char* R/W - Idioma por defecto que usarán lasfunciones vx_prevcb() y

vx_prevcbex() para procesar losficheros de vocabulario. El valor inicial

Capítulo 3. Estructuras de datos yparámetros

130 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 141: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

dependerá de cómo se haya configuradoel servidor de reconocimiento mediante

el Verbio Server ConfigurationManager.

VXCH_SERVER char* R/W - Servidor de síntesis y/o reconocimientoal que se conecta el canal (nombre o IP

del equipo). El valor por defectodepende del parámetro

VXGB_DEFSERVER, aunque puedemodificarse con posterioridad para quecada línea pueda especificar su propio

servidor.

VXCH_VOICEDETECTED int R - Indica si se ha detectado voz durante elproceso de reconocimiento (el valor

devuelto en el parámatro es 1).Típicamente la consulta de este

parámetro se realiza entre llamadassucesivas a la función

vx_recstr_write() para conocer elmomento en el que el usuario haempezado a hablar, de modo quepuedan aplicarse, por ejemplo,

estrategias de Barge-in.

VXCH_GRMWEIGHT float R/W 1 Parámetro utilizado para calcular lapenalización que sufre una palabra a lahora de poder ser reconocida. A mayorpenalización, más dificultad para que la

palabra forme parte de la cadenareconocida. La penalización es una

función de tres parámetros: el peso decada palabra especificado en la

gramática (si no se especifica ningunoes 1), el valor de este parámetro y elvalor de VXCH_GRMCONSTANT.

El valor especificado en este parámetrodebe utilizarse cuando se quiera

acentuar la diferencia entre los pesos delas palabras, puesto que la penalizaciónes proporcional a su valor y al peso de

las palabras.

VXCH_GRMCONSTANT float R/W 0 Parámetro utilizado para calcular lapenalización que sufre una palabra a lahora de poder ser reconocida. A mayorpenalización, más dificultad para que la

palabra forme parte de la cadenareconocida. La penalización es una

función de tres parámetros: el peso decada palabra especificado en la

gramática (si no se especifica ningunoes 1), el valor de este parámetro y el

valor de VXCH_GRMWEIGHT.

El valor de este parámetro puede

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 131

Page 142: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

utilizarse para reducir la aparición deinserciones (aunmentar el valor reducela cantidad de palabras devueltas por elreconocedor) o bien para priorizar las

palabras largas respecto a las másbreves.

VXCH_INITSIL int R - cantidad de muestras (de silencio)acumuladas desde el inicio de la

locución sin que se haya detectado voz,siempre y cuando se estén utilizando las

funciones de detección de actividadvocal vx_vsd_open, vx_vsd_write y

vx_vsd_close

VXCH_FINALSIL int R - cantidad de muestras (de silencio)acumuladas desde que se procesó la

última trama de voz, siempre y cuandose estén utilizando las funciones de

detección de actividad vocalvx_vsd_open, vx_vsd_write y

vx_vsd_close

VXCH_VOICE int R - número de fragmentos de la locuciónque contienen muestras de voz. Cuantomayor sea el silencio final exigido paradar por finalizado un fragmento de voz,menor número de fragmentos deberían

aparecer. Para que esta información estédisponible, deben utilizarse las

funciones de detección de actividadvocal vx_vsd_open, vx_vsd_write y

vx_vsd_close

VXCH_DEACTWORD char* W - permite deshabilitar una regla de unagramática o de todas las gramáticas

activas en un momento determinado. Deeste modo, en entornos en los que se

parta de una gramática compleja que, enbase al diálogo, pueda irse acotando, noes necesario desglosarla en gramáticasmás sencillas a medida que el usuarionavega las opciones, sino que pueden

irse desactivando aquellas reglas que yano aplican en la siguiente posible

respuesta. Con ello se mejora la rapidezy la calidad del reconocimiento sin

apenas coste computacional, puesto queno hay que descargar ni cargar nuevas

gramáticas. El valor del parámetro debeser el nombre de la regla de la gramáticaABNF que debe desactivarse. En caso deque ese nombre pueda estar presentes enotras gramáticas activas en ese instante,puede especificarse el identificador de

la gramática de interés mediante elsiguiente formato:

Capítulo 3. Estructuras de datos yparámetros

132 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 143: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

nombre_regla#identificador,donde identificador es el valordevuelto por la función vx_setvcb o

vx_activatevcb. Si se desea desactivaresa regla en todas las gramáticas activas

que la contengas, el parámetro debecontener únicamente el nombre de la

regla.

VXCH_ACTWORD char* W - permite habilitar de nuevo una regla deuna gramática o de todas las gramáticasactivas en un momento determinado quehubiera sido desactivada, previamente,

mediante VXCH_DEACTWORD. Elformato del parámetro debe ser idéntico

al especificado en la descripción deVXCH_DEACTWORD.

VXCH_MINTHRESHOLD float R/W 55 Valor que regula el nivel de poda delmotor de reconocimiento. Cuantomayor es el valor, menos descartes

realiza el motor de reconocimiento, porlo que puede afinarse algo más el

resultado de reconocimiento, aunque acosta de un incremento sustancial delcoste computacional. No se aconsejamodificar el valor de este parámetro,salvo consejo del personal de Verbio.

VXCH_MSSPEECH int R - Permite consultar los milisegundos devoz (excluído el silencio) que se han

recibido en el anterior proceso dereconocimiento.

VXCH_RECSAMPLES int R - Permite consultar los milisegundos deaudio que se han recibido en el anterior

proceso de reconocimiento.

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 133

Page 144: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

5. Obtención de información adicional mediante vx_word ovx_wordex

El servidor de reconocimiento, a parte de la palabra o palabras reconocidas y del nivel de confianza de lasmismas, puede proporcionar más datos que pueden resultar de interés en algunos casos: reglas, valores ,locuciones, niveles de confianza y tiempos. Antes de proceder con la explicación de cada uno de estoselementos, es importante que el lector se familiarice con los aspectos relacionados con los vocabulariosconvencionales y las gramáticas ABNF, que encontrará detallados en Verbio Software Reference: Guía delusuario. A continuación se dará una explicación del significado de cada uno de estos campos para poder haceruso de ellos en caso de considerarse necesario.

Tabla 3.3. Elementos de un vocabulario o gramática ABNF

Elemento Descripción

Regla En vocabularios convencionales no se especifica explícitamente, de modo que se leasignará siempre el valor root.

En gramáticas ABNF las reglas ayudan a diseñar, compartir y clarificar el contenido delas mismas. En el ejemplo siguiente, existen 3 reglas: color (regla principal), rgb ycomp.

Valor Los valores son los items que devuelve el servidor como resultado delreconocimiento.

En vocabularios convencionales suele ser el contenido de la primera columna. En elejemplo inferior, alguno de los posibles valores devueltos son: Comercial o Técnico.

En gramáticas ABNF los valores se especifican entre llaves si difieren de la palabra delvocabulario. En el ejemplo siguiente, alguno de los posibles valores devueltos son:COLOR=R o color pero no rojo porque se le ha asociado explícitamente el valorCOLOR=R.

Locución Las locuciones se corresponden con lo que el usuario realmente ha dicho.

En vocabularios convencionales suele ser el contenido de la segunda columna (si sólohay una columna, valor y locución coinciden). En el ejemplo inferior, alguna de lasposibles locuciones devueltas son: Eduardo Campillo o Asunción Chinea.

En gramáticas ABNF son el texto que no tenga asociado ningún valor vacío {}. En elejemplo siguiente, alguna de las posibles locuciones devueltas son: rojo o color perono COLOR=R (se ha especificado como valor) ni por favor (se le ha asociado el valorvacío {}).

Confianza El nivel de confianza es un valor numérico que indica el grado de fiabilidad que se leda al resultado. A mayor valor, mayor probabilidad de que la secuencia reconocida seala correcta.

Intervalo El intervalo de tiempo en el que se ha pronunciado la locución es otro de los datosofrecidos por el servidor de reconocimiento. Concretamente, proporciona el instantede inicio y el instante de finalización de la locución.

El formato del vector de caracteres ASCIIZ devuelto por las funciones vx_word() o vx_wordex es el siguiente:

regla:"locución"(confianza,instante_inicial,instante_final)["valor1" "valor2" "..."]

En caso de no tratarse de una gramática ABNF, el nombre de la regla será root. En caso de tratarse de unagramática ABNF con subreglas (no únicamente una regla principal), el formato del vector de caracteres tendráun formato parecido al siguiente, en el que cada regla termina en ";" y cada subregla está contenida entre

Capítulo 3. Estructuras de datos yparámetros

134 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 145: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

llaves "{}", y en el que debe sustituirse "regla" por todo el texto asociado a cada regla (según se haespecificado en el párrafo anterior).

regla_principal{regla1{regla1_1;regla1_2;};regla2;regla3{regla3_1{regla3_1_1;};};};

La gramática ABNF asociada al ejemplo anterior podría ser parecida a:

#ABNF 1.0 ISO8859-1;root regla_principal = ... $regla1 ... $regla2 ... $regla3;

$regla1 = ... $regla1_1 ... $regla1_2 ...;$regla1_1 = ... ;$regla1_2 = ... ;

$regla2 = ... ;

$regla3 = ... $regla3_1 ... ;$regla3_1 = ... $regla3_1_1 ... ;$regla3_1_1 = ... ;

Vocabulario convencional.

Comercial Eduardo CampilloComercial Asunción ChineaTécnico Marta CuencaAdministración Emilio DobladoAdministración Guillermo EstradaTécnico Sergio Galíndez

Gramática ABNF de múltiples reglas.

#ABNF 1.0 ISO8859-1;$rgb = rojo {COLOR=R} | // se utiliza la palabra "rojo" y devuelve la palabra COLOR=R

verde {COLOR=G} | // se utiliza la palabra "verde" y devuelve la palabra COLOR=Gazul {COLOR=B}; // se utiliza la palabra "verde" y devuelve la palabra COLOR=G

$comp = marino {COMP=D} |osuro {COMP=D} |claro {COMP=L};

root $color = [color | "el color" | el] $rgb [$comp] ["por favor"{}];

Ejemplo 3.1. Información devuelta por el servidor de reconocimiento

Locución dictada: "Eduardo Campillo"

root:"Eduardo Campillo"(158.29,0.50,1.28)["Eduardo Campillo"];

Locución dictada: "El color rojo por favor"

color:"el color rojo"(127.59,0.26,1.00)["el color" "COLOR=R"]{rgb:"rojo"(168.40,0.76,1.00)["COLOR=R"];comp:;};

Locución dictada: "El azul marino"

color:"el azul marino"(185.46,0.56,1.37)["el" "COLOR=B" "COMP=D"]{rgb:"azul"(93.27,0.76,1.00)["COLOR=B"];comp:"marino"(318.19,1.00,1.37)["COMP=D"];};

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Dialogic SDK 135

Page 146: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 147: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Capítulo 4. Código de ejemplos enC/C++

NotaEl Apéndice A contiene los ficheros de vocabularios, gramáticas y diccionarios utilizados en losejemplos de esta sección.

Page 148: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

1. Ejemplo Síncrono

Ejemplo 4.1. Ejemplo síncrono de Verbio Dialogic

/******************************************************************************* DESCRIPTION: Verbio Synchronous Sample* Copyright (C) 2003 ATLAS-CTI********************************************************************************/

#include <stdio.h>#include <string.h>#include <fcntl.h>#include <direct.h>#include <signal.h>

#include <windows.h>#include <speech.h>#include <srllib.h>#include <dxxxlib.h>#include <vxxxlib.h>

/* Maximum number of channels */#define MAXCHAN 12

/* For the recognition part */#define TN_DISC 116#define NBEST 10

//Thread processDWORD WINAPI ThreadProc(LPVOID);

//Validate NIF formatint validate(const char *number);

//ASR & TTS functionlong PlayStr(int chdev, const char *str);long RecStr(int chdev, const char *filename, int maxsil);

//Error functionsvoid vx_error(const char *function, int chdev);void dx_error(const char *function, int chdev);

//Global variablesint nASR = 0, nTTS = 0, NoOfThreads = 0;int connected = -1;int active = 1;

//Interrupted Signal (CTRL+C) functionstatic void intr_hdlr(void){

printf("*******Received User Interrupted Signal*******\n");active = 0;

}

//Client-Server disconnection functionvoid srvclose(const char *server) {

connected = -1;

vx_libclose();

do {Sleep(2000);vx_setparm(-1, VXGB_DEFSERVER, server);

} while (vx_libinit(LVX_SPANISH) < 0);

connected = 0;}

int main(int argc, char *argv[]){

int i, chdev, error, mode;char channel[16];int chdevmain[MAXCHAN];

HANDLE hThread[MAXCHAN];unsigned long dwThreadId;unsigned long dwfilever, dwprodver;

signal(SIGINT, (void (__cdecl*)(int)) intr_hdlr);signal(SIGTERM, (void (__cdecl*)(int)) intr_hdlr);

int NoOfChannels = 1;

const char *DefServer = "127.0.0.1";

//Application parametersif (argc > 1) NoOfChannels = abs(atoi(argv[1])); //Number of channels to openif (argc > 2) DefServer = argv[2]; //Verbio Server IP Address

/********************************//* CLIENT - SERVER & STARTUP *//********************************/

Capítulo 4. Código de ejemplos en C/C++

138 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 149: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

#ifdef _DEBUGint timeout = -1;

#elseint timeout = 5;

#endif

//Set callback function to process disconnection events

vx_regsrvclose((VX_SRVCLOSE*) srvclose);

do {

vx_setparm(-1, VXGB_DEFSERVER, DefServer);

if (ATVX_LASTERR(-1) == EVX_NETWORK)return -1;

vx_setparm(-1, VXGB_NETTIMEOUT, &timeout);

connected = vx_asr_init(CFG_SPANISH_CATALAN, LNG_SPANISH);

if (connected >= 0)

connected = vx_tts_init(0, LNG_SPANISH);

} while (connected < 0);

// Get Verbio Product Version

vx_GetDllVersion(&dwfilever, &dwprodver);printf("SAMPLE. Verbio %d.%02d\n\n", HIWORD(dwprodver), LOWORD(dwprodver));

// Get number of licenses for vx_recstr

nASR = vx_getasrlic(CFG_SPANISH_CATALAN);printf(" * ASR licenses: %2d\n", nASR);

// Get number of licenses for vx_playstr

nTTS = vx_getttslic(LNG_SPANISH);printf(" * TTS licenses: %2d\n\n", nTTS);

vx_getparm(-1, VXGB_LICMODE, &mode);

if (mode & LIC_ASR_CATALAN) printf(" * ASR Catalan : Yes\n");else printf(" * ASR Catalan : No\n");if (mode & LIC_TTS_CATALAN) printf(" * TTS Catalan : Yes\n");else printf(" * TTS Catalan : No\n");if (mode & LIC_EVALUATION) printf(" * Evaluation\n");if (mode & LIC_LITE) printf(" * Lite\n");

/************************************//* PREPARING VOCABULARIES *//************************************/

if (nASR) {

if (vx_prevcbex("comandos.txt", EV_SYNC, &error) < 0) {if (ATVX_LASTERR(-1) == EVX_INVWORD)

return error;}

if (vx_prevcb("nif_numeric.bnf", EV_SYNC | GVX_ABNF) <0 ) {if (ATVX_LASTERR(-1) == EVX_PARSER)

return -1;}

}

/************************************//* LAUNCHING TRHREADS *//************************************/for (i=0; i<NoOfChannels; i++) {

//Open channelsprintf(channel, "dxxxB%1dC%1d", (i/4)+1, (i%4)+1);if ((chdev = dx_open(channel, 0)) == -1)

break;

chdevmain[NoOfThreads++] = chdev;

// Stop active I/O functionsif (dx_stopch(chdev, EV_SYNC) == -1)

dx_error("dx_stopch", chdev);

// Deletes all previous tone templatesif (dx_deltones(chdev) == -1)

dx_error("dx_deltones", chdev);

// Generate Disconnect tone templateif (dx_bldstcad(TN_DISC, 425, 10, 20, 2, 20, 2, 2) == -1)

dx_error("dx_bldstcad", chdev);

// Add tone templateif (dx_addtone(chdev, 0, 0) == -1)

dx_error("dx_addtone", chdev);

// Disable TONE OFF Detectionif (dx_distone(chdev, TN_DISC, DM_TONEOFF) == -1)

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 139

Page 150: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

dx_error("dx_distone", chdev);

hThread[i] = CreateThread(NULL, 8096, ThreadProc,(LPVOID) &(chdevmain[i]), CREATE_SUSPENDED, &dwThreadId);

SetThreadPriority(hThread[i], THREAD_PRIORITY_NORMAL);}

for (i=0; i<NoOfThreads; i++) {ResumeThread(hThread[i]);Sleep(1500);

}

WaitForMultipleObjects(NoOfThreads, hThread, TRUE, INFINITE);

for (i=0; i<NoOfThreads; i++) {CloseHandle(hThread[i]);

vx_devclose(chdevmain[i]);}

//Free ASR+TTS resources

vx_srvclose(DefServer);

vx_libclose();

return 0;}

DWORD WINAPI ThreadProc(LPVOID ichdev){

int i, nind, ibest, error, nbest = NBEST, hNIF, hVOC;float score[32], filename[_MAX_PATH], mscore;int index[32];char string[256], nif[256];

int chdev = * (int *) ichdev;

TTSMODEINFO TTSModeInfo;HSAPI english = NULL;

//Set Dictionary and Abbreviations

if (vx_SetDictionary(chdev, LNG_SPANISH, "dictionary.txt") != 0) {vx_error("vx_SetDictionary", chdev);return ATVX_LASTERR(chdev);

}

if (vx_SetAbbreviations(chdev, LNG_SPANISH, "abbreviations.txt") != 0) {vx_error("vx_SetAbbreviations", chdev);return ATVX_LASTERR(chdev);

}

sprintf(filename, "grammar%d.bnf", chdev);

if (vx_prevcbdev(chdev, filename, EV_SYNC, &error, LNG_SPANISH) < 0) {vx_error("vx_prevcbdev", chdev);

return ATVX_LASTERR(chdev);}

while (active) {while (connected < 0)

Sleep(200);

if (vx_reccfg_wait(chdev, 500, CFG_SPANISH_CATALAN) < 0)continue;

if (vx_setparm(chdev, VXCH_NBEST, (void *) &nbest) != 0)continue;

//COMMAND vocabularies (always active): help, repeat...

if (vx_setvcb(chdev, "comandos.txt", EV_SYNC | GVX_ISOLATED) != 0)continue;

//ABNF Grammar

if ((hNIF = vx_loadvcb(chdev, "nif_numeric.bnf", EV_SYNC | GVX_ABNF)) < 0)continue;

// Open English TTS Modememset(&TTSModeInfo, 0, sizeof(TTSModeInfo));TTSModeInfo.dwFeatures = TTSFEATURE_PHONEOPTIMIZED;TTSModeInfo.language.LanguageID = MAKELANGID(LANG_ENGLISH, SUBLANG_NEUTRAL);

if (vx_SapiOpen(chdev, &TTSModeInfo, &english, EV_SYNC) != 0 || !english)continue;

while (active) {// Stop active I/O functionsdx_stopch(chdev, EV_SYNC);dx_sethook(chdev, DL_ONHOOK, EV_SYNC);

printf("\n%s: ONHOOK -------------------\n\n", ATDV_NAMEP(chdev));

if (connected < 0)break;

Capítulo 4. Código de ejemplos en C/C++

140 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 151: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

do {dx_wtring(chdev, 1, DL_OFFHOOK, 1);

} while (active && ATDX_HOOKST(chdev) != DX_OFFHOOK);

if (!active)break;

printf("%s: OFFHOOK -------------------\n", ATDV_NAMEP(chdev));

if (vx_activatevcb(chdev, hNIF, EV_SYNC) < 0)break;

if (vx_SapiSelect(chdev, english) != 0)break;

strcpy(string, "Welcome to this demonstration of connected number's recognition.");if (PlayStr(chdev, string) & (TM_LCOFF | TM_TONE))

break;

if (vx_SapiSelect(chdev, NULL) != 0)break;

strcpy(string, "Bienvenido al sistema de reconocimiento de números nif en castellano.");

if (PlayStr(chdev, string) & (TM_LCOFF | TM_TONE))break;

while(active) {

strcpy(string, "Por favor, dicte su NIF dígito a dígito.");repeat:

if (PlayStr(chdev, string) & (TM_LCOFF | TM_TONE))break;

if (RecStr(chdev, "record.esu", 150) & (TM_LCOFF | TM_TONE))break;

for (ibest = 0; ibest < nbest; ++ibest) {

if ((nind = vx_nbest(chdev, 10, index, score, ibest, EV_SYNC)) < 0)continue;

if ((hVOC = ATVX_IVCB(chdev)) < 0)continue;

if (hVOC != hNIF) { //COMMANDfor (i = 0; i < nind; ++i) {

if (!strcmp(vx_word(chdev, index[i]), "REPEAT") && score[i] > 25.0) {strcpy(string, "Por favor, diga, dígito a dígito, el número de su nif, \junto con la letra correspondiente");goto repeat;

}else if (!strcmp(vx_word(chdev, index[i]), "HELP") && score[i] > 25.0) {

strcpy(string, "Debe dictar su Número de Identificación Fiscal, \dígito a dígito y luego la letra. Por ejemplo: <RATE SPEED=\"-20%\"> \3 2 4 2 5 5 6 0 B. </RATE>. <BREAK MSEC=500> ¿Cuál es su nif?");goto repeat;

}else if (!strcmp(vx_word(chdev, index[i]), "HOME") && score[i] > 25.0)

goto repeat;}continue;

}else { //NIF

*nif = 0;mscore = 0;for (i = 0; i < nind; ++i) {

if (score[i] < 5.0)continue;

mscore += score[i];strcat(nif, vx_word(chdev, index[i]));

}mscore /= nind;printf("%s\t%d\t", nif, (int)mscore);

if (validate(nif)) {printf("VALID\n");

printf("La letra se ha pronunciado como %s y ha tenido confianza %f\n", vx_wordrule(chdev, "nif.letra", 1, $mscore), mscore);break;

} else {printf("INVALID\n");*nif = 0;

}}

}

if (nind <= 0)strcpy(string, "Lo siento, no se ha reconocido nada");

else if (*nif == 0)strcpy(string, "Lo siento, no se ha reconocido ningún número de nif válido.");

elsesprintf(string, "El número de nif reconocido, es el <RATE SPEED=150> %s </RATE>", nif);

if (PlayStr(chdev, string) & (TM_LCOFF | TM_TONE))break;

}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 141

Page 152: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

if (vx_deactivatevcb(chdev, hNIF, EV_SYNC) < 0)break;

}

vx_SapiClose(chdev, english);

vx_unloadvcb(chdev, -1, EV_SYNC);

vx_reccfg_release(chdev, CFG_SPANISH_CATALAN);}

vx_thclose();

return 0;}

int validate(const char *number) {

const char *letter = "TRWAGMYFPDXBNJZSQVHLCKET";const char *n = number;char dni[9];int ndigits;

for (ndigits = 0; ndigits < 8; ++n) {if (*n == 0)

return 0;if (*n >= 'A' && *n <= 'Z')

break;if (*n >= '0' && *n <= '9')

dni[ndigits++] = *n;}dni[ndigits] = 0;if (ndigits < 7) return 0;

for (; *n < 'A' || *n > 'Z'; ++n)if (*n == 0) return 0;

return (letter[atoi(dni) % 23] == *n);}

long PlayStr(int chdev, const char *string){

DV_TPT ptpt[3];

ptpt[0].tp_type = IO_CONT;ptpt[0].tp_termno = DX_MAXDTMF;ptpt[0].tp_length = 1;ptpt[0].tp_flags = TF_MAXDTMF;

ptpt[1].tp_type = IO_CONT;ptpt[1].tp_termno = DX_TONE;ptpt[1].tp_length = TN_DISC;ptpt[1].tp_flags = TF_TONE;ptpt[1].tp_data = DX_TONEON;

ptpt[2].tp_type = IO_EOT;ptpt[2].tp_termno = DX_LCOFF;ptpt[2].tp_length = 1;ptpt[2].tp_flags = TF_LCOFF;

if (vx_getusedttslic() < 1)return -1;

if (NoOfThreads > nTTS) {

if (vx_playstr_wait(chdev, 500)) return -1;}

if (vx_playstr(chdev, string, ptpt, EV_SYNC) < 0) {vx_error("vx_playstr", chdev);return -1;

}

if (NoOfThreads > nTTS) {

if (vx_playstr_release(chdev)) return -1;}

printf("%s: %s\n", ATDV_NAMEP(chdev), string);

return ATDX_TERMMSK(chdev);}

long RecStr(int chdev, const char *filename, int maxsil){

DV_TPT ptpt[4];VX_RSP rsp;

ptpt[0].tp_type = IO_CONT;ptpt[0].tp_termno = DX_MAXTIME;ptpt[0].tp_length = 100;ptpt[0].tp_flags = TF_MAXTIME;

ptpt[1].tp_type = IO_CONT;ptpt[1].tp_termno = DX_MAXDTMF;ptpt[1].tp_length = 1;ptpt[1].tp_flags = TF_MAXDTMF;

Capítulo 4. Código de ejemplos en C/C++

142 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 153: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

ptpt[2].tp_type = IO_CONT;ptpt[2].tp_termno = DX_TONE;ptpt[2].tp_length = TN_DISC;ptpt[2].tp_flags = TF_TONE;ptpt[2].tp_data = DX_TONEON;

ptpt[3].tp_type = IO_EOT;ptpt[3].tp_termno = DX_LCOFF;ptpt[3].tp_length = 1;ptpt[3].tp_flags = TF_LCOFF;

vx_clrrsp(&rsp);rsp.io_fhandle = dx_fileopen(filename, (O_CREAT | O_WRONLY | O_BINARY | O_TRUNC), 0666);rsp.maxsil = maxsil;

if (vx_getusedasrlic() < 1)return -1;

if (NoOfThreads > nASR) {

if (vx_recstr_wait(chdev, 500))return -1;

}

if (vx_recstr(chdev, ptpt, &rsp, RM_TONE | EV_SYNC) < 0) {vx_error("vx_recstr", chdev);if (rsp.io_fhandle != -1) {

dx_fileclose(rsp.io_fhandle);rsp.io_fhandle = -1;

}return -1;

}if (rsp.io_fhandle != -1) {

dx_fileclose(rsp.io_fhandle);rsp.io_fhandle = -1;

}

if (NoOfThreads > nASR) {

if (vx_recstr_release(chdev))return -1;

}

return ATDX_TERMMSK(chdev);}

/********************************************//* ERROR FUNCIONS *//********************************************/void vx_error(const char *function, int chdev){

const char *msg;int ierror = ATVX_LASTERR(chdev);

if (chdev == -1) {

printf("*** ERROR: %s failed. %s ***\n", function, ATVX_ERRMSGP(chdev));}else {

if ((ierror == EVX_SRERROR) || (ierror == EVX_DXERROR))msg = ATDV_ERRMSGP(chdev);

elsemsg = ATVX_ERRMSGP(chdev);

printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, msg);}

}

void dx_error(const char *function, int chdev){

printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, ATDV_ERRMSGP(chdev));}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 143

Page 154: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

2. Ejemplo Asíncrono

Ejemplo 4.2. Ejemplo asíncrono de Verbio Dialogic

/******************************************************************************* DESCRIPTION: Verbio Asynchronous Sample* Copyright (C) 2003 ATLAS-CTI********************************************************************************/

#include <windows.h>#include <stdio.h>

#include <srllib.h>#include <dxxxlib.h>#include "vxxxlib.h"

#define NOMBRES1 "nombres1.txt"#define NOMBRES2 "nombres2.txt"#define DICTIONARY "dic.txt"#define TN_DISC 116

static int numrings = 1;static int nASR = 0;static int nTTS = 0;

int process_event(unsigned long);char *strcatdig(char *str, const char *dig);void vx_error(const char *function, int chdev);void dx_error(const char *function, int chdev);int vx_getlicmode();void init_tpt(void);void print_event(unsigned long ehandle);char *EVENTP(long event);char *CST_EVENTP(unsigned short cst_event);char *HOOK_EVENTP(unsigned short cst_event);void printf_term(long term);

DV_TPT playstr_ptpt[1];DV_TPT recstr_ptpt[2];DV_TPT getdig_ptpt[3];

struct {int index[32];float score[32];DV_DIGIT digit;VX_RSP rsp;int state;

} chinfo[64];

typedef enum {ST_NULL,ST_RESET,ST_ONHOOK,ST_RINGS,ST_OFFHOOK,ST_WELCOME,ST_PROMPT,ST_THANKS,ST_SEQUENCE,ST_RECIND,ST_RESULT,ST_DIGIT,ST_GETDIG,ST_END,

} app_states;

void info_reset(int chdev){

if (ATDX_STATE(chdev) != CS_IDLE)dx_stopch(chdev, EV_ASYNC);

chinfo[chdev].state = ST_NULL;vx_clrrsp(&chinfo[chdev].rsp);

}

int main(int argc, char *argv[]){

int chdev[32];const char *speaker = "carlos";const char *server = "127.0.0.1";int language = LVX_SPANISH;unsigned long evt_handle;int i, nchannels = 2;char channel[16];unsigned long dwfilever = 0, dwprodver = 0;

if (argc > 1)nchannels = abs(atoi(argv[1]));

if (argc > 2)server = argv[2];

init_tpt();

vx_setparm(-1, VXGB_DEFSERVER, server);

Capítulo 4. Código de ejemplos en C/C++

144 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 155: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

// Init Verbio libraryprintf("Initializing Verbio. Please wait ...\n\n");if (vx_libinit(LVX_SPANISH) == -1) {

vx_error("vx_libinit", -1);printf("\nPress any key to continue");getchar();return ATVX_LASTERR(-1);

}

// Get Verbio Product Versionvx_GetDllVersion(&dwfilever, &dwprodver);printf("TESTVX_EVT. Verbio %d.%02d\n", HIWORD(dwprodver), LOWORD(dwprodver));printf("------------------------------------------\n");

// Get number of licenses for vx_recstrif (vx_getparm(-1, VXGB_RECSTRLIC, &nASR) == -1) {

vx_error("vx_getparm", -1);return ATVX_LASTERR(-1);

}printf(" * ASR licenses: %2d\n", nASR);

// Get number of licenses for vx_playstrif (vx_getparm(-1, VXGB_PLAYSTRLIC, &nTTS) == -1) {

vx_error("vx_getparm", -1);return ATVX_LASTERR(-1);

}printf(" * TTS licenses: %2d\n", nTTS);printf(" * TTS speaker : %s\n\n", speaker);

vx_getlicmode();

if (nASR) {

if (vx_ApplyDictionary(NOMBRES1, NOMBRES2, DICTIONARY)) {printf("*** ERROR: vx_ApplyDictionary(...) failed. %s ***\n", ATVX_ERRMSGP(-1));return ATVX_LASTERR(-1);

}

if (vx_prevcbex2(NOMBRES2, EV_SYNC, &error, LNG_SPANISH) < 0) {printf("*** ERROR: vx_prevcbex2(\"%s\") failed. %s ***\n", NOMBRES2, ATVX_ERRMSGP(-1));return ATVX_LASTERR(-1);

}}

printf("\nDevice Event\n");printf("--------------------------------------------\n");

for (i=0; i<nchannels; i++) {sprintf(channel, "dxxxB%1dC%1d", (i/4)+1, (i%4)+1);if ((chdev[i] = dx_open(channel, 0)) == -1) {

printf("*** ERROR: dx_open(\"%s\") failed. ***\n", channel);break;

}

// Set servervx_setparm(chdev[i], VXCH_SERVER, server);

// Stop active I/O functionsif (dx_stopch(chdev[i], EV_SYNC) == -1)

dx_error("dx_stopch", chdev[i]);

// Deletes all previous tone templatesif (dx_deltones(chdev[i]) == -1)

dx_error("dx_deltones", chdev[i]);

// Generate Disconnect tone templateif (dx_bldstcad(TN_DISC, 425, 10, 20, 2, 20, 2, 2) == -1)

dx_error("dx_bldstcad", chdev[i]);

// Add tone templateif (dx_addtone(chdev[i], 0, 0) == -1)

dx_error("dx_addtone", chdev[i]);

// Disable TONE OFF Detectionif (dx_distone(chdev[i], TN_DISC, DM_TONEOFF) == -1)

dx_error("dx_distone", chdev[i]);

// Set number of ringsdx_setparm(chdev[i], DXCH_RINGCNT, &numrings);

// Reset stateinfo_reset(chdev[i]);

// Set TTS Speakerif (vx_setparm(chdev[i], VXCH_TTSSPKNAME, speaker) == -1)

vx_error("vx_setparm", chdev[i]);

// Set TTS Languageif (vx_setparm(chdev[i], VXCH_TTSLNG, &language) == -1)

vx_error("vx_setparm", chdev[i]);

// Set Active Vocabulary

if (vx_setvcb(chdev[i], NOMBRES2, EV_ASYNC | GVX_ISOLATED) == -1)vx_error("vx_setvcb", chdev[i]);

// Next statechinfo[chdev[i]].state = ST_RESET;

}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 145

Page 156: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

while (1) {sr_waitevtEx((long *) chdev, nchannels, -1, (long *) &evt_handle);process_event(evt_handle);

}

return 0;}

int process_event(unsigned long ehandle){

int chdev = sr_getevtdev(ehandle);char string[256];DX_EBLK *eblk;int nind;

print_event(ehandle);

switch(sr_getevttype(ehandle)) {case TDX_SETHOOK:

break;

case TDX_PLAY:

if (vx_termplaystr(chdev) < 0)vx_error("vx_termplaystr", chdev);

if (ATDX_TERMMSK(chdev) & TM_MAXDTMF)chinfo[chdev].state = ST_DIGIT;

if (ATDX_TERMMSK(chdev) & TM_ERROR)info_reset(chdev);

break;

case TDX_RECORD:

if (vx_termrecstr(chdev) < 0)vx_error("vx_termrecstr", chdev);

if (ATDX_TERMMSK(chdev) & TM_MAXDTMF)chinfo[chdev].state = ST_DIGIT;

if (ATDX_TERMMSK(chdev) & TM_ERROR)info_reset(chdev);

break;

case TDX_GETDIG:if (ATDX_TERMMSK(chdev) & TM_ERROR)

info_reset(chdev);break;

case TDX_CST:eblk = (DX_EBLK *) sr_getevtdatap(ehandle);switch(eblk->ev_event) {case DE_RINGS:

chinfo[chdev].state = ST_RINGS;break;

default:info_reset(chdev);return 0;break;

}break;

case TDX_ERROR:info_reset(chdev);break;

default:break;

}

switch(chinfo[chdev].state++) {case ST_RESET:

if (dx_clrdigbuf(chdev) == -1)dx_error("dx_clrdigbuf", chdev);

else if (dx_sethook(chdev, DL_ONHOOK, EV_ASYNC) == -1)dx_error("dx_sethook", chdev);

break;

case ST_ONHOOK:if (dx_setevtmsk(chdev, DM_RINGS | DM_LCOFF) == -1)

dx_error("dx_setevtmsk", chdev);break;

case ST_RINGS:if (dx_sethook(chdev, DL_OFFHOOK, EV_ASYNC) == -1)

dx_error("dx_sethook", chdev);break;

case ST_OFFHOOK:strcpy(string, "Bienvenido a la demostración de los sistemas de ");strcat(string, "reconocimiento y conversión texto a voz en castellano. ");

if (vx_playstr(chdev, string, playstr_ptpt, EV_ASYNC) < 0)vx_error("vx_playstr", chdev);

break;

case ST_WELCOME:strcpy(string, "Tras oir la señal indique un nombre o departamento de la lista");if (vx_playstr(chdev, string, playstr_ptpt, EV_ASYNC) < 0)

vx_error("vx_playstr", chdev);break;

case ST_PROMPT:

Capítulo 4. Código de ejemplos en C/C++

146 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 157: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

vx_clrrsp(&chinfo[chdev].rsp);chinfo[chdev].rsp.maxsil = 50;

if (vx_recstr(chdev, recstr_ptpt, &chinfo[chdev].rsp, RM_TONE | EV_ASYNC) < 0)vx_error("vx_recstr", chdev);

break;

case ST_THANKS:if (vx_playstr(chdev, "Gracias", playstr_ptpt, EV_ASYNC) < 0)

vx_error("vx_playstr", chdev);break;

case ST_SEQUENCE:

if (vx_recind(chdev, 1, chinfo[chdev].index, chinfo[chdev].score, EV_ASYNC) == -1)vx_error("vx_recind", chdev);

break;

case ST_RECIND:

nind = ATVX_NIND(chdev);if ((nind > 0) && (chinfo[chdev].score[0] > 35.0)) {

sprintf(string, "El nombre reconocido es %s",vx_word(chdev, chinfo[chdev].index[0]));

}else if ((nind > 0) && (chinfo[chdev].score[0] > 25.0)) {

sprintf(string, "El nombre más parecido de la lista es %s",vx_word(chdev, chinfo[chdev].index[0]));

}else if ((nind > 0) || (chinfo[chdev].index[0] == IND_NOWORD)) {

strcpy(string, "Lo siento, no se ha reconocido ningún nombre de la lista");}else {

strcpy(string, "Lo siento, no se ha reconocido nada");}

case ST_RESULT:if (vx_playstr(chdev, string, playstr_ptpt, EV_ASYNC) < 0)

vx_error("vx_playstr", chdev);else

chinfo[chdev].state = ST_WELCOME;break;

case ST_DIGIT:if (dx_getdig(chdev, getdig_ptpt, &chinfo[chdev].digit, EV_ASYNC) < 0)

dx_error("dx_getdig", chdev);break;

case ST_GETDIG:strcpy(string, "La secuencia de tonos detectada es");strcatdig(string, chinfo[chdev].digit.dg_value);dx_clrdigbuf(chdev);if (dx_clrdigbuf(chdev) == -1)

dx_error("dx_clrdigbuf", chdev);else if (vx_playstr(chdev, string, playstr_ptpt, EV_ASYNC) < 0)

vx_error("vx_playstr", chdev);else

chinfo[chdev].state = ST_WELCOME;break;

case ST_END:case ST_NULL:default:

info_reset(chdev);break;

}

if (chinfo[chdev].state == 0) {info_reset(chdev);if (vx_setvcb(chdev, NOMBRES2, EV_ASYNC | GVX_ISOLATED) != 0)

vx_error("vx_setvcb", chdev);chinfo[chdev].state = ST_RESET;

}

return 0;}

char * strcatdig(char *str, const char *dig){

static char *table[10] = {" cero"," uno"," dos"," tres"," cuatro"," cinco"," seis"," siete"," ocho"," nueve"};

unsigned int i;

for (i=0; i<strlen(dig); i++) {if ((dig[i]>='0') && (dig[i]<='9')) {

strcat(str, table[dig[i]-'0']);}

}return str;

}

void vx_error(const char *function, int chdev){

const char *msg;int ierror = ATVX_LASTERR(chdev);

if (chdev == -1) {printf("*** ERROR: %s failed. %s ***\n", function, ATVX_ERRMSGP(chdev));

}else {

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 147

Page 158: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

if ((ierror == EVX_SRERROR) || (ierror == EVX_DXERROR))msg = ATDV_ERRMSGP(chdev);

elsemsg = ATVX_ERRMSGP(chdev);

printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, msg);}info_reset(chdev);

}

void dx_error(const char *function, int chdev){

printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, ATDV_ERRMSGP(chdev));info_reset(chdev);

}

void init_tpt(void){

/* playstr */playstr_ptpt[0].tp_type = IO_EOT;playstr_ptpt[0].tp_termno = DX_MAXDTMF;playstr_ptpt[0].tp_length = 1;playstr_ptpt[0].tp_flags = TF_MAXDTMF;

/* recstr */recstr_ptpt[0].tp_type = IO_CONT;recstr_ptpt[0].tp_termno = DX_MAXTIME;recstr_ptpt[0].tp_length = 100;recstr_ptpt[0].tp_flags = TF_MAXTIME;

recstr_ptpt[1].tp_type = IO_EOT;recstr_ptpt[1].tp_termno = DX_MAXDTMF;recstr_ptpt[1].tp_length = 1;recstr_ptpt[1].tp_flags = TF_MAXDTMF;

/* getdig */getdig_ptpt[0].tp_type = IO_CONT;getdig_ptpt[0].tp_termno = DX_MAXTIME;getdig_ptpt[0].tp_length = 30;getdig_ptpt[0].tp_flags = TF_MAXTIME;

getdig_ptpt[1].tp_type = IO_CONT;getdig_ptpt[1].tp_termno = DX_MAXSIL;getdig_ptpt[1].tp_length = 20;getdig_ptpt[1].tp_flags = TF_MAXSIL;

getdig_ptpt[2].tp_type = IO_EOT;getdig_ptpt[2].tp_termno = DX_MAXDTMF;getdig_ptpt[2].tp_length = 3;getdig_ptpt[2].tp_flags = TF_MAXDTMF;

}

static void print_event(unsigned long ehandle){

int evtdev = sr_getevtdev(ehandle);long evttype = sr_getevttype(ehandle);long term = -1;DX_EBLK *eblk;

printf("%s %s ", ATDV_NAMEP(evtdev), EVENTP(evttype));

switch (evttype) {case TDX_GETDIG:case TDX_PLAY:case TDX_RECORD:

term = ATDX_TERMMSK(evtdev);printf_term(term);break;

case TDX_CST:eblk = (DX_EBLK *) sr_getevtdatap(ehandle);printf("%s", CST_EVENTP(eblk->ev_event));break;

case TDX_SETHOOK:eblk = (DX_EBLK *) sr_getevtdatap(ehandle);printf("%s", HOOK_EVENTP(eblk->ev_event));break;

case TVX_RECIND:printf("%d", ATVX_NIND(evtdev));// printf(" (%d)", *((int *) sr_getevtdatap(ehandle)));break;

default:break;

}printf("\n");

}

char *EVENTP(long event){

switch (event) {case TDX_PLAY: return "TDX_PLAY ";case TDX_PLAYTONE: return "TDX_PLAYTONE";case TDX_RECORD: return "TDX_RECORD ";case TDX_GETDIG: return "TDX_GETDIG ";case TDX_DIAL: return "TDX_DIAL ";case TDX_CALLP: return "TDX_CALLP ";case TDX_CST: return "TDX_CST ";case TDX_SETHOOK: return "TDX_SETHOOK ";case TDX_WINK: return "TDX_WINK ";

Capítulo 4. Código de ejemplos en C/C++

148 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 159: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

case TDX_ERROR: return "TDX_ERROR ";

case TVX_SETVCB: return "TVX_SETVCB ";case TVX_RECIND: return "TVX_RECIND ";case TVX_SELECT: return "TVX_SELECT ";case TVX_ERROR: return "TVX_ERROR ";

default: return "????????????";}

}

char *CST_EVENTP(unsigned short cst_event){

switch (cst_event) {case DE_DIGITS: return "DE_DIGITS ";case DE_LCOFF: return "DE_LCOFF ";case DE_LCON: return "DE_LCON ";case DE_LCREV: return "DE_LCREV ";case DE_RINGS: return "DE_RINGS ";case DE_RNGOFF: return "DE_RNGOFF ";case DE_SILOFF: return "DE_SILOFF ";case DE_SILON: return "DE_SILON ";case DE_TONEOFF: return "DE_TONEOFF ";case DE_TONEON: return "DE_TONEON ";case DE_WINK: return "DE_WINK ";default: return "????????????";}

}

char *HOOK_EVENTP(unsigned short cst_event){

switch (cst_event) {case DX_OFFHOOK: return "DX_OFFHOOK ";case DX_ONHOOK: return "DX_ONHOOK ";default: return "????????????";}

}

void printf_term(long term){

if (term == AT_FAILURE) {printf("AT_FAILURE ");return;

};

if (term == TM_NORMTERM) printf("TM_NORMTERM ");if (term & TM_MAXDTMF) printf("TM_MAXDTMF ");if (term & TM_MAXSIL) printf("TM_MAXSIL ");if (term & TM_MAXNOSIL) printf("TM_MAXNOSIL ");if (term & TM_LCOFF) printf("TM_LCOFF ");if (term & TM_IDDTIME) printf("TM_IDDTIME ");if (term & TM_MAXTIME) printf("TM_MAXTIME ");if (term & TM_DIGIT) printf("TM_DIGIT ");if (term & TM_PATTERN) printf("TM_PATTERN ");if (term & TM_USRSTOP) printf("TM_USRSTOP ");if (term & TM_EOD) printf("TM_EOD ");if (term & TM_TONE) printf("TM_TONE ");if (term & TM_ERROR) printf("TM_ERROR ");

}

int vx_getlicmode() {// Get license modeint mode;if (vx_getparm(-1, VXGB_LICMODE, &mode) == 0) {

if (mode & LIC_ASR_CATALAN)printf(" * ASR Catalan : Yes\n");

elseprintf(" * ASR Catalan : No\n");

if (mode & LIC_TTS_CATALAN)printf(" * TTS Catalan : Yes\n");

elseprintf(" * TTS Catalan : No\n");

if (mode & LIC_EVALUATION)printf(" * Evaluation\n");

if (mode & LIC_LITE)printf(" * Lite\n");

}return 0;

}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 149

Page 160: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

3. Ejemplo con Barge-in

Ejemplo 4.3. Ejemplo con barge-in de Verbio Dialogic

/******************************************************************************* FILE: testvx_csp.c* DESCRIPTION: Verbio Barge-in Demo* Copyright (C) 2003 ATLAS-CTI********************************************************************************/

#include <stdio.h>#include <string.h>#include <fcntl.h>

#include "windows.h"#include "srllib.h"#include "dxxxlib.h"#include "vxxxlib.h"#include "eclib.h"

void vxec_setup(int dev);int vxec_wait(long ec_dev, long timeout, long maxspeechtimeout);int vxec_recstr(int chdev, DV_TPT *tptp, DX_XPB *xpbp, unsigned int mode);int vxec_stopch(int chdev, unsigned int mode);

/* Maximum number of channels */#define MAXCHAN 32

/* For the recognition part */#define NOMBRES "nombres.txt"#define TN_DISC 116

DWORD WINAPI ThreadProc(LPVOID);long PlayStr(int dev, const char *str);long PlayRecStr(int chdev, const char *string);int CheckWords(const char *vcb, int language);void vx_error(const char *function, int chdev);void dx_error(const char *function, int chdev);int vx_getlicmode();

int chdevmain[MAXCHAN];

int main(int argc, char *argv[]){

int nASR = 0;int nTTS = 0;int i, chdev;char channel[16];HANDLE hThread[MAXCHAN];unsigned long dwThreadId;unsigned long dwfilever, dwprodver;int NoOfChannels = 1, NoOfThreads = 0;const char *DefServer = "127.0.0.1";

if (argc > 1)NoOfChannels = abs(atoi(argv[1]));

if (argc > 2) {DefServer = argv[2];vx_setparm(-1, VXGB_DEFSERVER, DefServer);

}

// Init Verbio libraryprintf("Initializing Verbio. Please wait ...\n\n");

#ifdef _DEBUGint timeout = -1;vx_setparm(-1, VXGB_NETTIMEOUT, &timeout);

if (vx_libinit(LVX_SPANISH | OVX_TTSLITE) == -1) {#else

if (vx_libinit(LVX_SPANISH) == -1) {#endif

vx_error("vx_libinit", -1);return ATVX_LASTERR(-1);

}

// Get Verbio Product Versionvx_GetDllVersion(&dwfilever, &dwprodver);printf("TESTVX_CSP. Verbio %d.%02d\n", HIWORD(dwprodver), LOWORD(dwprodver));printf("--------------------\n");

// Get number of licenses for vx_recstrif (vx_getparm(-1, VXGB_RECSTRLIC, &nASR) == -1) {

vx_error("vx_getparm", -1);return ATVX_LASTERR(-1);

}printf(" * ASR licenses: %2d\n", nASR);

// Get number of licenses for vx_playstrif (vx_getparm(-1, VXGB_PLAYSTRLIC, &nTTS) == -1) {

vx_error("vx_getparm", -1);return ATVX_LASTERR(-1);

}printf(" * TTS licenses: %2d\n\n", nTTS);

Capítulo 4. Código de ejemplos en C/C++

150 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 161: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

if (!(nASR && nTTS)) {printf("ERROR: ASR and TTS licenses are required\n");return -1;

}vx_getlicmode();

// Check vocabulary contentif ((i = CheckWords(NOMBRES, LVX_SPANISH)) != 0) {

printf("*** ERROR: invalid word in line %d. ***\n", i);return -1;

}

if (vx_prevcb(NOMBRES, EV_SYNC)) {printf("*** ERROR: vx_prevcb(\"%s\") failed. %s ***\n", NOMBRES, ATVX_ERRMSGP(-1));return ATVX_LASTERR(-1);

}

// Open all channelsfor (i=0; i<NoOfChannels; i++) {

/*Voice handle */sprintf(channel, "dxxxB%1dC%1d", (i/4)+1, (i%4)+1);if ((chdev = dx_open(channel, 0)) == -1) break;chdevmain[NoOfThreads++] = chdev;printf("\nChannel %s opened\n", channel);

// Stop active I/O functionsif (vxec_stopch(chdev, EV_SYNC) == -1)

dx_error("vxec_stopch", chdev);

// Deletes all previous tone templatesif (dx_deltones(chdev) == -1)

dx_error("dx_deltones", chdev);

// Generate Disconnect tone templateif (dx_bldstcad(TN_DISC, 425, 10, 20, 2, 20, 2, 2) == -1)

dx_error("dx_bldstcad", chdev);

// Add tone templateif (dx_addtone(chdev, 0, 0) == -1)

dx_error("dx_addtone", chdev);

// Disable TONE OFF Detectionif (dx_distone(chdev, TN_DISC, DM_TONEOFF) == -1)

dx_error("dx_distone", chdev);

hThread[i] = CreateThread(NULL, 8096, ThreadProc,(LPVOID) i, CREATE_SUSPENDED, &dwThreadId);

SetThreadPriority(hThread[i], THREAD_PRIORITY_NORMAL);}printf("\n");

for (i=0; i<NoOfThreads; i++) {ResumeThread(hThread[i]);Sleep(1500);

}

WaitForMultipleObjects(NoOfThreads, hThread, TRUE, INFINITE);

for (i=0; i<NoOfThreads; i++)CloseHandle(hThread[i]);

vx_srvclose(DefServer);vx_libclose();

return 0;}

DWORD WINAPI ThreadProc(LPVOID _ichdev){

int nind, nothing, niter;int ichdev = (int) _ichdev;int chdev = chdevmain[ichdev];int index[32];float score[32];char string[256];

//Set Dictionary and Abbreviations

if (vx_ttsSetDictionary(chdev, LVX_SPANISH, "dictionary.txt") != 0) {vx_error("vx_ttsSetDictionary", chdev);return ATVX_LASTERR(chdev);

}

if (vx_ttsSetAbbreviations(chdev, LVX_SPANISH, "abbreviations.txt") != 0) {vx_error("vx_ttsSetAbbreviations", chdev);return ATVX_LASTERR(chdev);

}

// Set Active Vocabularyif (vx_setvcb(chdev, NOMBRES, EV_SYNC | GVX_ISOLATED) != 0) {

vx_error("vx_setvcb", chdev);return ATVX_LASTERR(chdev);

} else {printf("%s: Active vocabulary is %s\n", ATDV_NAMEP(chdev), NOMBRES);

}

while (1) {nothing = 0;

if (vxec_stopch(chdev, EV_SYNC) == -1)

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 151

Page 162: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

dx_error("vxec_stopch", chdev);

if (dx_sethook(chdev, DL_ONHOOK, EV_SYNC) < 0)dx_error("dx_sethook", chdev);

printf("\n%s: ONHOOK -------------------\n\n", ATDV_NAMEP(chdev));

if (dx_wtring(chdev, 1, DL_OFFHOOK, -1) < 0)dx_error("dx_wtring", chdev);

printf("%s: OFFHOOK -------------------\n", ATDV_NAMEP(chdev));

vxec_setup(chdev);dx_setevtmsk(chdev, DM_LCOFF);

niter = 0;

while(1) {

if (niter == 0) {strcpy(string, "Bienvenido a la demostración de los sistemas de ");strcat(string, "reconocimiento y conversión texto a voz en castellano. ");

}else {

strcpy(string, "");}strcat(string, "Por favor indique un nombre o departamento de la lista.");

if (PlayRecStr(chdev, string) & (TM_LCOFF | TM_TONE))break;

if (PlayStr(chdev, "Gracias") & (TM_LCOFF | TM_TONE))break;

if ((nind = vx_recind(chdev, 1, index, score, EV_SYNC)) < 0) {vx_error("vx_recind", chdev);break;

}

printf("%s: ", ATDV_NAMEP(chdev), string);if (nind > 0) {

strcpy(string, vx_wordex(chdev, index[0], 0));printf("%s (%d) pertencese al departamento %s\n", vx_wordex(chdev, index[0], 1), (int) score[0], string);

}else

printf("%s\n", vx_wordex(chdev, index[0], 1));

if ((nind > 0) && (score[0] > 35.0)) {sprintf(string, "El nombre reconocido es %s", vx_wordex(chdev, index[0], 1));nothing = 0;

}else if ((nind > 0) && (score[0] > 25.0)) {

sprintf(string, "El nombre más parecido de la lista es %s", vx_wordex(chdev, index[0], 1));nothing = 0;

}else if ((nind > 0) || (index[0] == IND_NOWORD)) {

strcpy(string, "Lo siento, no se ha reconocido ningún nombre de la lista");if (++nothing >= 10)

break;}else {

strcpy(string, "Lo siento, no se ha reconocido nada");if (++nothing >= 10)

break;}

if (PlayStr(chdev, string) & (TM_LCOFF | TM_TONE))break;

niter++;}

}}

long PlayRecStr(int chdev, const char *string){

int timeout = 3000; // msec of silence after play completeint maxspeechtimeout = 8000; // msec of speech recognition after play complete

DV_TPT ptpt[3];DV_TPT rec_tpt;DX_XPB rec_xpb;

/* Set up rec DV_TPT */rec_tpt.tp_type = IO_EOT;rec_tpt.tp_termno = DX_MAXTIME;rec_tpt.tp_length = 60000;rec_tpt.tp_flags = TF_MAXTIME;

/* Set up DX_XPB */rec_xpb.wFileFormat = FILE_FORMAT_VOX;rec_xpb.wDataFormat = DATA_FORMAT_ALAW;rec_xpb.nSamplesPerSec = DRT_8KHZ;rec_xpb.wBitsPerSample = 8;

/* Set up play DV_TPT */ptpt[0].tp_type = IO_CONT;ptpt[0].tp_termno = DX_MAXDTMF;ptpt[0].tp_length = 1;

Capítulo 4. Código de ejemplos en C/C++

152 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 163: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

ptpt[0].tp_flags = TF_MAXDTMF;

ptpt[1].tp_type = IO_CONT;ptpt[1].tp_termno = DX_TONE;ptpt[1].tp_length = TN_DISC;ptpt[1].tp_flags = TF_TONE;ptpt[1].tp_data = DX_TONEON;

ptpt[2].tp_type = IO_EOT;ptpt[2].tp_termno = DX_LCOFF;ptpt[2].tp_length = 1;ptpt[2].tp_flags = TF_LCOFF;

vxec_setup(chdev);

if (vxec_recstr(chdev, &rec_tpt, &rec_xpb, RM_ALAW | EV_ASYNC))return -1;

if (vx_playstr(chdev, string, ptpt, PM_ALAW | EV_ASYNC) < 0) {vx_error("vx_playstr", chdev);return -1;

}printf("%s: %s\n", ATDV_NAMEP(chdev), string);

if (vxec_wait(chdev, timeout, maxspeechtimeout))return -1;

return ATDX_TERMMSK(chdev);}

long PlayStr(int chdev, const char *string){

DV_TPT ptpt[3];

ptpt[0].tp_type = IO_CONT;ptpt[0].tp_termno = DX_MAXDTMF;ptpt[0].tp_length = 1;ptpt[0].tp_flags = TF_MAXDTMF;

ptpt[1].tp_type = IO_CONT;ptpt[1].tp_termno = DX_TONE;ptpt[1].tp_length = TN_DISC;ptpt[1].tp_flags = TF_TONE;ptpt[1].tp_data = DX_TONEON;

ptpt[2].tp_type = IO_EOT;ptpt[2].tp_termno = DX_LCOFF;ptpt[2].tp_length = 1;ptpt[2].tp_flags = TF_LCOFF;

if (vx_playstr(chdev, string, ptpt, EV_SYNC) < 0) {vx_error("vx_playstr", chdev);return -1;

}printf("%s: %s\n", ATDV_NAMEP(chdev), string);return ATDX_TERMMSK(chdev);

}

int CheckWords(const char *vcb, int language){

FILE *fp = NULL;int line = 0, lang = 0;char word[260], *tmp, *pword;

if ((fp = fopen(vcb, "rt")) == NULL) return -1;while (fgets(word, 260, fp)) {

if (tmp = strchr(word, '\n')) *tmp = '\0';if (pword = strchr(word, '\t')) {

++pword;if (tmp = strchr(pword, '\t')) *tmp = '\0';

} elsepword = word;

line++;

if ((*pword != '[') && vx_chkwrd(pword, lang)) {fclose(fp);return line;

}}fclose(fp);return 0;

}

void vx_error(const char *function, int chdev){

const char *msg;int ierror = ATVX_LASTERR(chdev);

if (chdev == -1) {printf("*** ERROR: %s failed. %s ***\n", function, ATVX_ERRMSGP(chdev));

}else {

if ((ierror == EVX_SRERROR) || (ierror == EVX_DXERROR))msg = ATDV_ERRMSGP(chdev);

elsemsg = ATVX_ERRMSGP(chdev);

printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, msg);}

}

void dx_error(const char *function, int chdev)

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 153

Page 164: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

{printf("%s *** ERROR: %s failed. %s ***\n", ATDV_NAMEP(chdev), function, ATDV_ERRMSGP(chdev));

}

int vx_getlicmode() {// Get license modeint mode;if (vx_getparm(-1, VXGB_LICMODE, &mode) == 0) {

if (mode & LIC_ASR_CATALAN)printf(" * ASR Catalan : Yes\n");

elseprintf(" * ASR Catalan : No\n");

if (mode & LIC_TTS_CATALAN)printf(" * TTS Catalan : Yes\n");

elseprintf(" * TTS Catalan : No\n");

if (mode & LIC_EVALUATION)printf(" * Evaluation\n");

if (mode & LIC_LITE)printf(" * Lite\n");

}return 0;

}

/******************************************************************************* FILE: vxec.c* DESCRIPTION: Verbio Barge-in Demo* Copyright (C) 2003 ATLAS-CTI********************************************************************************/

#ifdef _DEBUGstatic int fileid = 0;static FILE* fp = 0;

#endif

/*--------------------------------------*//* Set up EC parameters *//*--------------------------------------*/void vxec_setup(int ec_dev){

int VADinit = 1;int BargeIn = 1;int XferSize = 2048;int NLP = 1;int TapLength = 128;int Threshold1 = -35; // Default = -40int Trigg1 = 5; // Default = 10int Window1 = 10; // Default = 10int Threshold2 = -35; // Default = -40int Trigg2 = 5; // Default = 10int Window2 = 10; // Default = 10

int ret;

/* set the event mask to send the VAD events up to the application */dx_setevtmsk(ec_dev, DM_VADEVTS);

/* Set DXCH_EC_TAP_LENGTH. This parm should be the first CSP parm to set* since it will reset all other parms to default.*/ret = ec_setparm(ec_dev, DXCH_EC_TAP_LENGTH, (void *) &TapLength);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));printf("\nPlease check if the current board and channel are CSP enabled.\n\n");

}ret = ec_getparm(ec_dev, DXCH_EC_TAP_LENGTH, (void *) &TapLength);

/* Set ECCH_XFERBUFFERSIZE */ret = ec_setparm(ec_dev, ECCH_XFERBUFFERSIZE, (void *) &XferSize);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));printf("\nPlease check if the current board and channel are CSP enabled.\n\n");

}ret = ec_getparm(ec_dev, ECCH_XFERBUFFERSIZE, (void *) &XferSize);

/* Turn off non-linear processing(comfort noise) *//* For ASR applications, you must turn this feature off; that is, set ECCH_NLP = 1. */ret = ec_setparm(ec_dev, ECCH_NLP, (void *) &NLP);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));printf("\nPlease check if the current board and channel are CSP enabled.\n\n");

}ret = ec_getparm(ec_dev, ECCH_NLP, (void *) &NLP);

/* Enable VADINITIATED for EC record */ret = ec_setparm(ec_dev, ECCH_VADINITIATED, (void *) &VADinit);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, ECCH_VADINITIATED, (void *) &VADinit);

/* Enable Barge In */ret = ec_setparm(ec_dev, DXCH_BARGEIN, (void *) &BargeIn);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

Capítulo 4. Código de ejemplos en C/C++

154 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 165: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

}ret = ec_getparm(ec_dev, DXCH_BARGEIN, (void *) &BargeIn);

/* Set threshold value for barge-in during a prompt */ret = ec_setparm(ec_dev, DXCH_SPEECHPLAYTHRESH, (void *) &Threshold1);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHPLAYTHRESH, (void *) &Threshold1);

/* set DXCH_SPEECHPLAYTRIGG to adjust sensitivity. */ret = ec_setparm(ec_dev, DXCH_SPEECHPLAYTRIGG, (void *) &Trigg1);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHPLAYTRIGG, (void *) &Trigg1);

/* set DXCH_SPEECHPLAYWINDOW to adjust sensitivity. */ret = ec_setparm(ec_dev, DXCH_SPEECHPLAYWINDOW, (void *) &Window1);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHPLAYWINDOW, (void *) &Window1);

/* Set threshold value for barge-in after the prompt */ret = ec_setparm(ec_dev, DXCH_SPEECHNONPLAYTHRESH, (void *) &Threshold2);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHNONPLAYTHRESH, (void *) &Threshold2);

/* set DXCH_SPEECHNONPLAYTRIGG to adjust sensitivity. */ret = ec_setparm(ec_dev, DXCH_SPEECHNONPLAYTRIGG, (void *) &Trigg2);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHNONPLAYTRIGG, (void *) &Trigg2);

/* set DXCH_SPEECHNONPLAYWINDOW to adjust sensitivity. */ret = ec_setparm(ec_dev, DXCH_SPEECHNONPLAYWINDOW, (void *) &Window2);if (ret == -1) {

printf("Error in ec_setparm(). Err Msg = %s, Lasterror = %d\n",ATDV_ERRMSGP(ec_dev), ATDV_LASTERR(ec_dev));

}ret = ec_getparm(ec_dev, DXCH_SPEECHNONPLAYWINDOW, (void *) &Window2);

#ifdef _DEBUGprintf("DXCH_EC_TAP_LENGTH = %4d\n", TapLength);printf("ECCH_XFERBUFFERSIZE = %4d\n", XferSize);printf("ECCH_NLP = %4d\n", NLP);printf("ECCH_VADINITIATED = %4d\n", VADinit);printf("DXCH_BARGEIN = %4d\n", BargeIn);printf("DXCH_SPEECHPLAYTHRESH = %4d\n", Threshold1);printf("DXCH_SPEECHPLAYTRIGG = %4d\n", Trigg1);printf("DXCH_SPEECHPLAYWINDOW = %4d\n", Window1);printf("DXCH_SPEECHNONPLAYTHRESH = %4d\n", Threshold2);printf("DXCH_SPEECHNONPLAYTRIGG = %4d\n", Trigg2);printf("DXCH_SPEECHNONPLAYWINDOW = %4d\n", Window2);

#endif}

/*------------------------------------------*//* Wait for events to come. *//*------------------------------------------*/int vxec_wait(long ec_dev, long timeout, long maxspeechtimeout){

int evttype = 0;int retv = 0;long ehandle;int tec_stream = 0;int tmout = -1;

/* Get out of the loop after EC record complete event received:** - speech recognition completed, or* - timeout msec of silence after play complete event received, or* - maxspeechtimeout msec after voice activity detection (VAD)*/while (!tec_stream){

if (sr_waitevtEx(&ec_dev, 1, tmout, &ehandle) == -1) {ec_stopch(ec_dev, RECEIVING, EV_ASYNC);continue;

}

evttype = sr_getevttype(ehandle);switch(evttype) {

case TEC_VAD:printf("TEC_VAD\n");ec_stopch(ec_dev, SENDING, EV_ASYNC);tmout = maxspeechtimeout;if ( ATDX_TERMMSK(ec_dev) & (TM_LCOFF | TM_TONE) ){

retv = -1;tmout = 1;

}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 155

Page 166: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

break;

case TDX_BARGEIN:printf("TDX_BARGEIN\n");break;

case TDX_CST:printf("TDX_CST\n");ec_stopch(ec_dev, FULLDUPLEX, EV_ASYNC);tmout = 1;retv = -1;break;

case TDX_PLAY:printf("TDX_PLAY\n");tmout = timeout;if ( ATDX_TERMMSK(ec_dev) & (TM_LCOFF | TM_TONE) ){

retv = -1;tmout = 1;

}break;

case TEC_STREAM:printf("TEC_STREAM\n");ec_stopch(ec_dev, SENDING, EV_ASYNC);tec_stream = 1;break;

case TDX_ERROR:printf("TDX_ERROR\n");break;

default:printf("Unexpected event 0x%x\n", evttype);break;

}}

#ifdef _DEBUGif (fp) {

fclose(fp);fp = NULL;

}#endif

vx_termrecstr(ec_dev);

return retv;}

int vxec_callback(int chdev, char *buffer, unsigned int length){#ifdef _DEBUG

if (fp) fwrite(buffer, 1, length, fp);#endif

return vx_recstr_write(chdev, buffer, length);}

int vxec_term(int chdev){

return ec_stopch(chdev, FULLDUPLEX, EV_ASYNC);}

int vxec_stopch(int chdev, unsigned int mode){

vx_termrecstr(chdev);return ec_stopch(chdev, FULLDUPLEX, (unsigned short) mode);

}

int vxec_recstr(int chdev, DV_TPT *tptp, DX_XPB *xpbp, unsigned int mode){

VX_RSP rsp;

#ifdef _DEBUGchar filename[256];if (fp != NULL) fclose(fp);sprintf(filename, "EC%06d.esa", fileid++);fp = fopen(filename, "wb");

#endif

vx_clrrsp(&rsp);rsp.initsil = -1;rsp.callback = vxec_term;

if (vx_recstr_open(chdev, &rsp, mode) == -1)return -1;

return ec_stream(chdev, tptp, xpbp, vxec_callback, (unsigned short) (mode | MD_NOGAIN));}

Capítulo 4. Código de ejemplos en C/C++

156 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 167: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

4. Ejemplo de Detección de voz y de tonos DTMF

Ejemplo 4.4. Ejemplo de Detección de voz y de tonos DTMF

Este fragmento de código pretende ilustrar un posible uso del detector de voz y de tonos DTMF. En él,únicamente se mandan muestras al reconocedor cuando se ha detectado algo de señal, evitando que el servidorde reconocimiento malgaste recursos rechazando la parte de silencio inicial. Por simplicidad, se ha omitido lacomprobación de errores y se ha programado en pseudo-código.

static UIOParm callbackParmsWrite;static bool bVoice = false;

( . . . )

DX_UIO VerbioUIO;DV_TPT pTPT[2];VX_RSP rsp;VAD_PRM vad;

VerbioUIO.u_write = UIOWrite;

dx_setdevuio(chdev, &VerbioUIO, NULL);

pTPT[0].tp_type = IO_CONT;pTPT[1].tp_type = IO_EOT;dx_clrtpt(pTPT,2);

pTPT[0].tp_termno = DX_MAXTIME;pTPT[0].tp_length = 300;pTPT[0].tp_flags = TF_MAXTIME;

pTPT[1].tp_termno = DX_LCOFF;pTPT[1].tp_length = 1;pTPT[1].tp_flags = TF_LCOFF;

vx_clrrsp(&rsp);rsp.io_fhandle = -1;rsp.maxsil = 30;rsp.initsil = 5;rsp.callback = 0;

vx_clrvad(&vad);

callbackParmsWrite.chdev = chdev;callbackParmsWrite.recdev = vx_recstr_open(dev, &rsp, MC_MULAW);callbackParmsWrite.vsddev = vx_vsd_open(dev, callbackParmsWrite.recdev, &vad, MC_MULAW);callbackParmsWrite.dtmfdev = vx_dtmf_open(dev, MC_MULAW);

memset(&iott, 0, sizeof( DX_IOTT ) );iott.io_fhandle = (int) &callbackParmsWrite;iott.io_type = IO_DEV | IO_UIO |IO_EOT;iott.io_bufp = 0;iott.io_offset = 0;iott.io_length = -1;

dx_rec(chdev, &iott, pTPT, MD_PCM | RM_SR8 | MD_NOGAIN | EV_SYNC);dx_stopch(chdev, EV_SYNC);vx_termrecstr(dev);vx_vsd_close(dev, callbackParmsWrite.vsddev);vx_dtmf_close(dev, callbackParmsWrite.dtmfdev);

( . . . )

int UIOWrite (int fd, char *ptr, unsigned cnt){

UIOParm *parm = (UIOParm *) fd;int state, n;char *result;

const char *dtmf = vx_dtmf_write(parm->dtmfdev, ptr, cnt);if (dtmf) {

if ((result = vx_dtmf_word(chdev, dtmf))) { //A previously loaded and activated DTMF grammar is requiredprintf("DTMF tone valid: %s returned\n", result);

}dx_stopch(parm->chdev, EV_ASYNC);

}

if (!parm->bVoice) {state = vox_vsd_write(parm->vsddev, ptr, cnt);if (!parm->bVoice && state!=VVX_INIT && state!= VVX_SILENCE)

bVoice = true;}

if (parm->bVoice && n>0) {if (vox_recstr_write(parm->recdev, ptr, cnt) < (int) cnt)

dx_stopch(parm->chdev, EV_ASYNC);}

return cnt;}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Dialogic SDK 157

Page 168: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Capítulo 4. Código de ejemplos en C/C++

158 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 169: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Apéndice A. Ficheros utilizados por losejemplos

Importante

Atención, utilice el tabulador para separar las columnas de los ficheros de texto que contengan más deuna.

Ficheros utilizados en el ejemplo síncrono.

comandos.txt

REPEAT Repetir //Repetirá la preguntaHOME Inicio //Empezará de nuevo el diálogoHELP Ayuda //Dictará un mensaje más preciso

nif_numeric.bnf

#ABNF 1.0 ISO8859-1;

$digito =uno {1} |dos {2} |tres {3} |cuatro {4} |cinco {5} |seis {6} |siete {7} |ocho {8} |nueve {9} |cero {0};

$letra ="[A_es][_A_es]" {A} | // a

"[B_es][_E_es]" {B} | // be"[C_es][_E_es]" {C} | // ce"[D_es][_E_es]" {D} | // de"[E_es][_E_es]" {E} | // e"[E__es][F_es][_e_es]" {F} | // efe"[G_es][_E_es]" {G} | // ge"[H_es]" {H} | // hache"[I_es]" {I} | // i"[Il_es]" {I} | // i latina"[J_es]" {J} | // jota"[K_es][_A_es]" {K} | // ca"[E__es][L_es][_e_es]" {L} | // ele"[E__es][M_es][_e_es]" {M} | // eme"[E__es][N_es][_e_es]" {N} | // ene"[O_es]" {O} | // o"[P_es][_E_es]" {P} | // pe"[Q_es][_U_es]" {Q} | // cu"[E__es][R_es][_e_es]" {R} | // erre"[E__es][r_es][_e_es]" {R} | // ere"[E__es][S_es][_e_es]" {S} | // ese"[T_es][_E_es]" {T} | // te"[U_es][_U_es]" {U} | // u"[V_es]" {V} | // uve"[W_es]" {W} | // uve doble"[dV_es]" {W} | // doble uve"[X_es]" {X} | // equis"[Y_es]" {Y} | // y griega"[Z_es]" {Z}; // zeta

root $nif = $digito+ $letra;

Ficheros utilizados en el ejemplo asíncrono.

nombres1.txt

Eduardo Campillo

Page 170: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

Asunción ChineaMarta CuencaEmilio DobladoGuillermo EstradaMª FríasSergio GalíndezEloy de la FuenteEnrique HurtadoPablo JiménezFrancisco LunaFernando MayoralSusana MartínezGermán MoralesAlfonso MorilloJuan OlivaInmaculada SánchezGloria MachadoPilar ZaragozaIrene PonsaJosé RiveiroMarcial RodríguezJorge SánchezAlberto SalvadorHéctor OsorioCarmen PuenteCarolina SegoviaAlejandro TarridaLeonardo TorontoJesús UrrubietaDpto. ComercialDpto. TécnicoProveedoresAdministraciónDirección

dic.txt

Mª MaríaDpto. Departamento

Ficheros utilizados en el ejemplo de barge-in.

nombres.txt

Comercial Eduardo CampilloComercial Asunción ChineaTécnico Marta CuencaAdministración Emilio DobladoAdministración Guillermo EstradaTécnico Sergio Galíndez

dictionary.txt

Mª = "María"nº = "número"airlines = "érlains"airwais = "érgüeis"backup = "bacap"bye = "bai"catalunya = "cataluña"EEUU = "Estados Unidos"méxico = "méjico"on-line = "onlain"stop = "estop"web = "güeb"word = "guord"

abbreviations.txt

Apéndice A. Ficheros utilizados por losejemplos

160 Referencia de las funciones del Dialogic SDK Verbio Technologies

Page 171: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

etc = "etcétera"izda = "izquierda"izqda = "izquierda"dcha = "derecha"km = "quilómetros"kg = "quilogramos"pta = "peseta"ptas = "pesetas"Dr. = "doctor"Dra. = "doctora"ej. = "ejemplo"excmo. = "excelentísimo"hnos. = "hermanos"num. = "número"pag. = "página"pags. = "páginas"SR. = "señor"Sr. = "señor"SRA. = "señora"Sra. = "señora"SRES. = "señores"Sres. = "señores"SRS. = "señores"Srs. = "señores"SRTA. = "señorita"Srta. = "señorita"St. = "san"Sta. = "santa"Sto. = "santo"telef. = "teléfono"tfno. = "teléfono"

Apéndice A. Ficheros utilizados por losejemplos

Verbio Technologies Referencia de las funciones del Dialogic SDK 161

Page 172: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El
Page 173: Referencia de las funciones del Dialogic SDK · 2019-10-17 · 1.1. Descripción La función vx_activatevcb() activa el vocabulario previamente cargado en el canal especificado. El

ÍndiceC

Cliente-Servidorcerrar conexión, 99desconexiones, 83

DDefinición de parámetros, 126Detección de la voz

ejecución, 114finalización, 111inicialización, 112parámetros, 24

Detección de tonos DTMFejecución, 31finalización, 28inicialización, 29

EErrores

obtención, 32, 41

GGramáticas

activación, 4carga, 45, 47desactivación, 25descarga, 109establecimiento, 97preparación, 22, 59, 61, 64, 66

IInicialización

recursos ASR, 8recursos ASR y TTS, 43Recursos ASV, 15recursos TTS, 103

LLiberación

recursos ASR y TTS, 42, 102Licencias

reconocimiento, 33, 38síntesis, 37, 39

PParámetros

asignación, 96obtención, 36

RRecognize String Parameter

VX_RSP , 120Reconocimiento

detener, 101ejecución, 75, 81función de callback, 82

información adicional, 134inicialización, 78liberación de recursos, 69, 79número de resultados, 51obtención de los resultados, 30, 115, 116obtención de resultados, 49, 73parámetros, 23reserva de un recurso, 71, 80tipo de gramática, 21vocabulario, 40

Reconocimiento del hablaobtención de los resultados, 117

Recursosliberación, 27, 42, 102

SSAPI

MODEATTRIBUTES, 125SAPI 4.0

abrir, 85, 87cerrar, 84seleccionar, 89

Síntesisejecución, 56finalización, 54inicialización, 55

Síntesis del hablaconfiguración, 90, 94, 105, 107detener, 100ejecución, 52liberación de recursos, 57reserva de un recurso, 58

VVAD, Voice Activity Detection

VAD_PRM, 121VAD_PRM

inicialización, 24Verificación del locutor

Creación de la huella vocal, 16Entrenamiento, 11Usuarios registrados, 13Verificación, 19

Versiónobtención, 35

Vocabulariosactivación, 4carga, 45, 47desactivación, 25descarga, 109establecimiento, 92, 97obtención, 40preparación, 6, 22, 59, 61, 64, 66

VX_RSPinicialización, 23