Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable...

162
Verbio Software Reference Referencia de las funciones del Library SDK Verbio Technologies, S.L.

Transcript of Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable...

Page 1: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Verbio Software Reference

Referencia de las funciones del Library SDK

Verbio Technologies, S.L.

Page 2: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

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

Page 3: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 4: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 5: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

1. vox_activatevcb ........................................................................................................ 42. vox_ApplyDictionary ................................................................................................. 63. vox_asr_init .............................................................................................................. 84. vox_asv_addfile .......................................................................................................115. vox_asv_init ............................................................................................................136. vox_asv_spkinfo .......................................................................................................147. vox_asv_train ..........................................................................................................168. vox_asv_verify .........................................................................................................199. ATVOX_BUILTIN ...................................................................................................2110. vox_chkwrd ...........................................................................................................2211. vox_clrrsp .............................................................................................................2312. vox_clrvad .............................................................................................................2413. vox_deactivatevcb ...................................................................................................2514. vox_devclose .........................................................................................................2715. vox_dtmf_close ......................................................................................................2816. vox_dtmf_open .......................................................................................................2917. vox_dtmf_word ......................................................................................................3018. vox_dtmf_write ......................................................................................................3119. ATVOX_ERRMSGP ...............................................................................................3220. vox_getasrlic ..........................................................................................................3321. vox_GetDllVersion .................................................................................................3522. vox_getparm ..........................................................................................................3623. vox_getttslic ..........................................................................................................3724. vox_getusedasrlic ....................................................................................................3925. vox_getusedttslic ....................................................................................................4026. ATVOX_IVCB ......................................................................................................4127. ATVOX_LASTERR ................................................................................................4228. vox_libclose ...........................................................................................................4329. vox_libinit .............................................................................................................4430. vox_loadcd ............................................................................................................4631. vox_loadvcb ..........................................................................................................4732. vox_nbest ..............................................................................................................4933. ATVOX_NIND ......................................................................................................5134. vox_playstr ............................................................................................................5235. vox_playstr_close ...................................................................................................5436. vox_playstr_open ....................................................................................................5537. vox_playstr_read .....................................................................................................5638. vox_playstr_release .................................................................................................5739. vox_playstr_wait .....................................................................................................5840. vox_prevcb ............................................................................................................5941. vox_prevcbdev .......................................................................................................6142. vox_prevcbex .........................................................................................................6443. vox_prevcbex2 .......................................................................................................6644. vox_reccfg_release ..................................................................................................6945. vox_reccfg_wait .....................................................................................................7146. vox_recind .............................................................................................................7347. vox_recstr ..............................................................................................................7548. vox_recstrm ...........................................................................................................7749. vox_recstr_close .....................................................................................................7950. vox_recstr_open .....................................................................................................8051. vox_recstr_release ...................................................................................................8152. vox_recstr_wait ......................................................................................................8253. vox_recstr_write .....................................................................................................8354. vox_RegisterVVICallback ........................................................................................8455. vox_regsrvclose ......................................................................................................8556. vox_SapiClose .......................................................................................................85

Page 6: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

57. vox_SapiOpen ........................................................................................................8758. vox_SapiOpenEx ....................................................................................................8959. vox_SapiSelect .......................................................................................................9060. vox_SerialNumber ..................................................................................................9161. vox_SetAbbreviations ..............................................................................................9262. vox_setcd ..............................................................................................................9463. vox_SetDictionary ..................................................................................................9564. vox_setparm ..........................................................................................................9765. vox_setvcb ............................................................................................................9866. vox_srvclose ........................................................................................................ 10067. vox_termplaystr .................................................................................................... 10168. vox_termrecstr ..................................................................................................... 10269. vox_thclose .......................................................................................................... 10370. vox_tts_init .......................................................................................................... 10471. vox_ttsSetAbbreviations ......................................................................................... 10672. vox_ttsSetDictionary ............................................................................................. 10873. vox_unloadvcb ..................................................................................................... 11074. vox_vsd_close ...................................................................................................... 11275. vox_vsd_open ...................................................................................................... 11376. vox_vsd_write ...................................................................................................... 11577. vox_word ............................................................................................................ 11678. vox_wordex ......................................................................................................... 11779. vox_wordrule ....................................................................................................... 118

3. Estructuras de datos y parámetros ...................................................................................... 1211. VX_RSP - Recognize String Parameter ....................................................................... 1222. VAD_PRM - Voice Activity Detection Parameters ....................................................... 1233. ASV_SPKINFO - ASV Speaker Information ............................................................... 1274. MODEATTRIBUTES - SAPI Speaker Id .................................................................... 1285. Definición de parámetros para vox_getparm() y vox_setparm() ....................................... 1296. Obtención de información adicional mediante vox_word o vox_wordex ............................ 137

4. Código de ejemplos en C/C++ ........................................................................................... 1391. Ejemplo Síncrono ................................................................................................... 1402. Ejemplo de Detección de voz y de tonos DTMF ........................................................... 1453. Ejemplo de uso del reconocimiento natural basado en modelos estadísticos (SLM) .............. 1464. Ejemplo de ASV ..................................................................................................... 148

A. Ficheros utilizados por los ejemplos .................................................................................. 149Índice .............................................................................................................................. 151

Verbio Software Reference

vi Referencia de las funciones del Library SDK Verbio Technologies

Page 7: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Lista de tablas3.1. Parámetros globales en el Library SDK ............................................................................ 1293.2. Parámetros de canal en el Library SDK ............................................................................ 1323.3. Elementos de un vocabulario o gramática ABNF ................................................................ 137

Page 8: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 9: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Lista de ejemplos3.1. Información devuelta por el servidor de reconocimiento ...................................................... 1384.1. Ejemplo síncrono de Verbio Library ................................................................................ 1404.2. Ejemplo de Detección de voz y de tonos DTMF ................................................................. 1454.3. Ejemplo de reconocimiento SLM .................................................................................... 1464.4. Ejemplo de Verbio Library para verificación del locutor ...................................................... 148

Page 10: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 11: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Capítulo 1. IntroducciónEl objectivo de este documento es describir el conjunto de funciones que constituyen el Library SDKproporcionado en Verbio. Este SDK está diseñado pensando en aquellos integradores que trabajan en entornos deprogramación C/C++ sobre dispositivos de audio genéricos (tanto tarjetas CTI como tarjetas de sonido).

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 2 ejemplos de utilización de este SDK: un ejemplode programación síncrona y otro de detección de voz (VAD) y de tonos DTMF.

Page 12: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 13: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Capítulo 2. Descripción de lasfunciones

Page 14: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

1. vox_activatevcb

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

int chdev descriptor de un canal válido

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

unsigned int mode por compatibilidad con versiones anteriores, úsese 0

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

1.1. Descripción

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

1.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

mode por compatibilidad con versiones anteriores, úsese 0

1.3. Precauciones

En cualquier momento, pueden estar activos varios vocabularios y gramáticas. El descriptor utilizado en lafunción vox_activatevcb() debe ser el valor retornado por la función vox_loadvcb(). La funciónATVOX_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 vox_setvcb() o vox_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento.

1.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_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.

Capítulo 2. Descripción de las funciones

4 Referencia de las funciones del Library SDK Verbio Technologies

Page 15: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

1.5. Elementos relacionados

vox_setvcb, vox_loadvcb, vox_deactivatevcb, vox_unloadvcb, ATVOX_IVCB

1.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 5

Page 16: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

2. vox_ApplyDictionary

FUNCION int vox_ApplyDictionary(const char *inVcbName, const char *outVcbName,const char *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 voxlib.h

MODO síncrono

2.1. Descripción

La función vox_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 funcionesATVOX_LASTERR(-1) y ATVOX_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

vox_prevcb, vox_prevcbex, vox_prevcbex2, vox_prevcbdev, vox_chkwrd

Capítulo 2. Descripción de las funciones

6 Referencia de las funciones del Library SDK Verbio Technologies

Page 17: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 7

Page 18: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

3. vox_asr_init

FUNCION int vox_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 voxlib.h

MODO síncrono

3.1. Descripción

La función vox_asr_init() inicializa la librería de reconocimiento del habla de Verbio. En nuevos desarrolloses recomendable utilizar esta función (conjuntamente con la función vox_tts_init en caso de que también serequiera síntesis del habla) en lugar de la función vox_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 Library SDK Verbio Technologies

Page 19: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 vox_asr_init() debe invocarse antes que ninguna otra de las funciones del Library SDKrelacionadas con el reconocimiento del habla, a excepción de aquella destinada a establecer el servidor detrabajo por defecto en configuraciones cliente-servidor (vox_setparm).

3.4. Errores

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

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.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 9

Page 20: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

EVX_SYSTEM SYSTEM ERROR.Check errno.

3.5. Elementos relacionados

vox_libinit, vox_tts_init, vox_libclose

3.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

10 Referencia de las funciones del Library SDK Verbio Technologies

Page 21: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

4. vox_asv_addfile

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

int chdev descriptor de canal válido

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 voxlib.h

MODO síncrono

4.1. Descripción

La función vox_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 vox_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 un descriptor de canal válido.

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 Library SDK 11

Page 22: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 vox_asv_addfile para cada nuevo fichero, también es posible invocardirectamente la función vox_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 vox_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

vox_asv_init, vox_asv_spkinfo, vox_asv_train, vox_asv_verify

4.6. Códigos de ejemploConsulte el ejemplo anexo

Capítulo 2. Descripción de las funciones

12 Referencia de las funciones del Library SDK Verbio Technologies

Page 23: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

5. vox_asv_init

FUNCION int vox_asv_init()

RETORNA 0 si el resultado es satisfactorio

<0 en caso de error

INCLUDES voxlib.h

MODO síncrono

5.1. Descripción

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

5.2. Precauciones

La función vox_asv_init() debe invocarse previamente a cualquier invocación del resto de funciones asociadas ala verificación de locutor, tales como: vox_asv_addfile, vox_asv_train, vox_asv_verify y vox_asv_spkinfo.

5.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.

5.4. Elementos relacionados

vox_asv_addfile, vox_asv_train, vox_asv_verify, vox_asv_spkinfo

5.5. Códigos de ejemploConsulte el ejemplo anexo

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 13

Page 24: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

6. vox_asv_spkinfo

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

int chdev descriptor de canal válido

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 voxlib.h

MODO síncrono

6.1. Descripción

La función vox_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.

6.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

6.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.

6.4. Elementos relacionados

vox_asv_init, vox_asv_addfile, vox_asv_train, vox_asv_verify

Capítulo 2. Descripción de las funciones

14 Referencia de las funciones del Library SDK Verbio Technologies

Page 25: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

6.5. Códigos de ejemploConsulte el ejemplo anexo

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 15

Page 26: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

7. vox_asv_train

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

int chdev descriptor de canal válido

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 voxlib.h

MODO síncrono

7.1. Descripción

La función vox_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 funcionesvox_asv_addfile y/o vox_asv_train().

Una vez completada correctamente la función vox_asv_train(), el usuario ya estará listo para que se realicensobre él operaciones de verificación mediante la función vox_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.

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 vox_asv_addfile y/o vox_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

RC = Retorno de Carro, TAB = Tabulador

Capítulo 2. Descripción de las funciones

16 Referencia de las funciones del Library SDK Verbio Technologies

Page 27: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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ónvox_asv_train, es preferible utilizar la función vox_asv_addfile individualmente para cada fichero según sevayan obteniendo las locuciones del usuario. De este modo, podrán tomarse acciones correctivas en caso de queel proceso 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.

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 17

Page 28: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

del usuario a entrenar.

7.5. Elementos relacionados

vox_asv_init, vox_asv_spkinfo, vox_asv_addfile, vox_asv_verify

7.6. Códigos de ejemploConsulte el ejemplo anexo

Capítulo 2. Descripción de las funciones

18 Referencia de las funciones del Library SDK Verbio Technologies

Page 29: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

8. vox_asv_verify

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

int chdev descriptor de canal válido

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 voxlib.h

MODO síncrono

8.1. Descripción

La función vox_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 vox_asv_train.

8.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

MC_ALAW fichero sin cabecera, muestras de audio en formato Ley A (8

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 19

Page 30: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

bits, 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

vox_asv_init, vox_asv_spkinfo, vox_asv_train, vox_asv_addfile

8.6. Códigos de ejemploConsulte el ejemplo anexo

Capítulo 2. Descripción de las funciones

20 Referencia de las funciones del Library SDK Verbio Technologies

Page 31: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

9. ATVOX_BUILTIN

FUNCION int ATVOX_BUILTIN(int chdev)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

9.1. Descripción

La función ATVOX_BUILTIN() indica si la gramática que ha devuelto el resultado de reconocimiento alfinalizar la llamada a la función vox_recind() o vox_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.

9.3. Precauciones

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

9.4. Elementos relacionados

vox_recind, vox_nbest

9.5. Códigos de ejemploConsulte el ejemplo asíncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 21

Page 32: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

10. vox_chkwrd

FUNCION int vox_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 voxlib.h

MODO síncrono

10.1. Descripción

La función vox_chkwrd() chequea la palabra del vocabulario especificada para garantizar que la funciónvox_prevcb() (o vox_prevcbex() o vox_prevcbex2() o vox_prevcbdev()) realizará la transcripción de texto afonema de forma correcta. Esta función es independiente del canal, por lo que únicamente debe ser llamada unavez para cada nueva palabra de los vocabularios, independientemente de si, con posterioridad, el vocabulario seusará 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 vox_prevcb(). Por lo tanto,es posible que la función vox_prevcb() (o vox_prevcbex() o vox_prevcbex2() o vox_prevcbdev()) realice unacorrecta transcripción a pesar de que la función vox_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

vox_prevcb, vox_prevcbex, vox_prevcbex2, vox_prevcbdev, vox_ApplyDictionary

10.5. Códigos de ejemploConsulte el ejemplo asíncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

22 Referencia de las funciones del Library SDK Verbio Technologies

Page 33: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

11. vox_clrrsp

FUNCION void vox_clrrsp(VX_RSP *rspp)

VX_RSP *rspp puntero a una estructura de tipo Recognition StringParameter

RETORNA Nada

INCLUDES voxlib.h

MODO síncrono

11.1. Descripción

La función vox_clrrsp() resetea todos los campos de la estructura VX_RSP asignándoles sus valores pordefecto. Es aconsejable utilizar esta función para inicializar cualquier estructura VX_RSP antes de ser utilizadapor otras funciones.

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 vox_clrrsp() antes de modificar cualquiera de suscampos.

11.4. Elementos relacionados

vox_recstr, vox_recstr_open

11.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 23

Page 34: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

12. vox_clrvad

FUNCION void vox_clrvad(VAD_PRM *prm)

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

RETORNA Nada

INCLUDES voxlib.h

MODO síncrono

12.1. Descripción

La función vox_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 vox_clrvad antes de modificar cualquiera desus campos.

12.4. Elementos relacionados

vox_vsd_open

12.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

24 Referencia de las funciones del Library SDK Verbio Technologies

Page 35: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

13. vox_deactivatevcb

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

int chdev descriptor de un canal válido

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

unsigned int mode por compatibilidad con versiones anteriores, úsese 0

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

13.1. Descripción

La función vox_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 vox_loadvcb() ytambién debe usarse para activarlo mediante la función vox_activatevcb() o para descargarlo mediante lafunción vox_unloadvcb().

13.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

mode por compatibilidad con versiones anteriores, úsese 0

13.3. Precauciones

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

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

13.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_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.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 25

Page 36: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

13.5. Elementos relacionados

vox_setvcb, vox_loadvcb, vox_loadcd, vox_activatevcb, vox_unloadvcb, ATVOX_IVCB

13.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

26 Referencia de las funciones del Library SDK Verbio Technologies

Page 37: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

14. vox_devclose

FUNCION int vox_devclose(int chdev)

int chdev descriptor de un canal válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

14.1. Descripción

La función vox_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.

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 ATVOX_LASTERR()y ATVOX_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

vox_libclose, vox_srvclose, vox_thclose

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 27

Page 38: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

15. vox_dtmf_close

FUNCION int vox_dtmf_close(int chdev, DTMF_REG* dtmfdev)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

15.1. Descripción

La función vox_dtmf_close() cierra el desciptor de detección de tonos DTMF abierto mediante la funciónvox_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.

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

15.3. Elementos relacionados

vox_dtmf_open, vox_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 Library SDK Verbio Technologies

Page 39: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

16. vox_dtmf_open

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

16.1. Descripción

La función vox_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 vox_dtmf_write(). El valordevuelto por la función es requerido por las funciones vox_dtmf_write() y vox_dtmf_close().

16.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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ónvox_dtmf_close para liberar los recursos de memoria utilizados durante el proceso de detección.

16.4. Elementos relacionados

vox_dtmf_write, vox_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 Library SDK 29

Page 40: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

17. vox_dtmf_word

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

17.1. Descripción

La función vox_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.

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

17.3. Elementos relacionados

vox_wordex, vox_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 Library SDK Verbio Technologies

Page 41: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

18. vox_dtmf_write

FUNCION const char* vox_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 voxlib.h

MODO síncrono

18.1. Descripción

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

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ónvox_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 vox_dtmf_open y vox_dtmf_close su valor se verá modificado, siendo necesario su almacenamientosi se requiere un procesado posterior del resultado retornado.

18.4. Elementos relacionados

vox_dtmf_open, vox_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 Library SDK 31

Page 42: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

19. ATVOX_ERRMSGP

FUNCION char * ATVOX_ERRMSGP(int dev)

int dev descriptor de un canal o -1 para funciones independientes del canal

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

INCLUDES voxlib.h

MODO síncrono

19.1. Descripción

La función ATVOX_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 (vox_setvcb(), vox_recstr(),...) el parámetro de entrada dev especifica el descriptor de canal válido. Si el error se ha producido durante lallamada a una función independiente del canal (vox_libinit(), vox_prevcb(), vox_ApplyDictionary(), ...) debeutilizarse -1 como valor del parámetro dev.

19.2. Descripción de los parámetros

dev especifica el descriptor de canal válido o -1 para funciones independientes del canal.

19.3. Elementos relacionados

ATVOX_LASTERR

19.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

32 Referencia de las funciones del Library SDK Verbio Technologies

Page 43: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

20. vox_getasrlic

FUNCION int vox_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 voxlib.h

MODO síncrono

20.1. Descripción

La función vox_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 vox_libinit ovox_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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 33

Page 44: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

20.3. Precauciones

La función vox_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

vox_getusedasrlic, vox_getttslic, vox_getusedttslic, vox_libinit, vox_asr_init

20.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

34 Referencia de las funciones del Library SDK Verbio Technologies

Page 45: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

21. vox_GetDllVersion

FUNCION int vox_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 voxlib.h

MODO síncrono

21.1. Descripción

La función vox_GetDllVersion() retorna el número de versión de la DLL de VERBIO tanto del fichero comodel producto.

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

vox_SerialNumber

21.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 35

Page 46: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

22. vox_getparm

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

int dev descriptor de un canal o -1 para parámetros globales deVERBIO (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 voxlib.h

MODO síncrono

22.1. Descripción

La función vox_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. Use -1 para obtener el valor de parámetros globales deVERBIO.

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

vox_setparm

22.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

36 Referencia de las funciones del Library SDK Verbio Technologies

Page 47: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

23. vox_getttslic

FUNCION int vox_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 voxlib.h

MODO síncrono

23.1. Descripción

La función vox_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 vox_libinit ovox_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_ARGENTINIAN Español argentino

LNG_SPANISH_MEXICAN Español mexicano

LNG_FRENCH Francés

LNG_ENGLISH Inglés

23.3. Precauciones

La función vox_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

vox_getusedttslic, vox_getasrlic, vox_getusedasrlic, vox_libinit, vox_tts_init

23.5. Códigos de ejemplo

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 37

Page 48: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Consulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

38 Referencia de las funciones del Library SDK Verbio Technologies

Page 49: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

24. vox_getusedasrlic

FUNCION int vox_getusedasrlic()

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

INCLUDES voxlib.h

MODO síncrono

24.1. Descripción

La función vox_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ónvox_libinit o vox_asr_init).

24.2. Precauciones

La función vox_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 vox_recstr_wait y vox_recstr_release.

24.3. Elementos relacionados

vox_getttslic, vox_recstr_wait, vox_recstr_release

24.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 39

Page 50: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

25. vox_getusedttslic

FUNCION int vox_getusedttslic()

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

INCLUDES voxlib.h

MODO síncrono

25.1. Descripción

La función vox_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ónvox_libinit o vox_tts_init).

25.2. Precauciones

La función vox_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 vox_playstr_wait y vox_playstr_release.

25.3. Elementos relacionados

vox_getusedasrlic, vox_playstr_wait, vox_playstr_release

25.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

40 Referencia de las funciones del Library SDK Verbio Technologies

Page 51: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

26. ATVOX_IVCB

FUNCION int ATVOX_IVCB(int chdev)

int chdev descriptor de un canal válido

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

26.1. Descripción

La función ATVOX_IVCB() retorna el descriptor del vocabulario del que se ha reconocido una secuenciadurante el último proceso de reconocimiento. Este valor está disponible después de la finalización de unallamada a las funciones vox_recind() o vox_nbest().

26.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

26.3. Precauciones

El valor devuelto por la función ATVOX_IVCB() sólo es válido tras la correcta finalización de la funciónvox_recind() o vox_nbest().

26.4. Errores

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

EVX_NORECIND NO RECIND. Call vox_recind() before calling ATVOX_IVCB().

26.5. Elementos relacionados

vox_recind, vox_nbest

26.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 41

Page 52: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

27. ATVOX_LASTERR

FUNCION long ATVOX_LASTERR(int dev)

int dev descriptor de un canal válido o -1 para funciones independientes del canal

RETORNA número del error

INCLUDES voxlib.h

MODO síncrono

27.1. Descripción

La función ATVOX_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 voxlib.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 (vox_setvcb(), vox_recstr(),...) el parámetro de entrada dev especifica el descriptor de canal válido. Si el error se ha producido durante lallamada a una función independiente del canal (vox_libinit(), vox_prevcb(), vox_ApplyDictionary(), ...) debeutilizarse -1 como valor del parámetro dev.

27.2. Descripción de los parámetros

dev especifica el descriptor de canal válido o -1 para funciones independientes del canal.

27.3. Elementos relacionados

ATVOX_ERRMSGP

27.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

42 Referencia de las funciones del Library SDK Verbio Technologies

Page 53: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

28. vox_libclose

FUNCION int vox_libclose()

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

28.1. Descripción

La función vox_libclose libera las conexiones con el motor de síntesis y o reconocimiento del habla iniciadasmediante la función vox_libinit, vox_asr_init o vox_tts_init y libera todos los recursos utilizados por el clientede Verbio. Una vez finalizada la función vox_libclose, no pueden invocarse otras funciones del SDK deVerbio desde el cliente afectado, exceptuando aquellas destinadas a establecer de nuevo la conexión con elservidor.

28.2. Elementos relacionados

vox_libinit, vox_asr_init, vox_tts_init

28.3. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 43

Page 54: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

29. vox_libinit

FUNCION int vox_libinit(int options)

int options identificador del idioma por defecto

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

29.1. Descripción

La función vox_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 vox_asr_init y/o vox_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 vox_libinit() debe invocarse antes que ninguna otra de las funciones del Library SDK, aexcepción de aquella destinada a establecer el servidor de trabajo por defecto en configuracionescliente-servidor (vox_setparm).

29.4. Errores

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

Capítulo 2. Descripción de las funciones

44 Referencia de las funciones del Library SDK Verbio Technologies

Page 55: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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.

29.5. Elementos relacionados

vox_libclose, vox_asr_init, vox_tts_init

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 45

Page 56: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

30. vox_loadcd

FUNCION int vox_loadcd(int chdev, unsigned int mode)

int chdev descriptor de un canal válido

unsigned int mode por compatibilidad con versiones anteriores, úsese 0

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

30.1. Descripción

La función vox_loadcd() carga el vocabulario de dígitos conectados (consulte Sección 62 para másinformación) en el canal especificado. En caso satisfactorio, retorna un descriptor asociado con el vocabulariocargado para que éste pueda ser activado, desactivado y descargado mediante las funciones vox_activatevcb(),vox_deactivatevcb() y vox_unloadvcb() respectivamente.

30.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

mode por compatibilidad con versiones anteriores, úsese 0

30.3. Precauciones

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

30.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_LASTERR() devolveráalguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_SYSTEM SYSTEM ERROR. Check errno.

30.5. Elementos relacionados

vox_setcd, vox_loadvcb, vox_activatevcb, vox_deactivatevcb, vox_unloadvcb, ATVOX_IVCB

Capítulo 2. Descripción de las funciones

46 Referencia de las funciones del Library SDK Verbio Technologies

Page 57: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

31. vox_loadvcb

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

int chdev descriptor de un canal válido

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

unsigned int mode vocabulario o gramática ABNF o DTMF

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

31.1. Descripción

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

31.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

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.

31.3. Precauciones

Sin la opción GVX_ABNF habilitada, la función vox_loadvcb() requiere el fichero de definiciones y el ficherode transcripciones generados mediante la función vox_prevcb() (o vox_prevcbex() o vox_prevcbex2() ovox_prevcbdev()). Si estos ficheros existen y el fichero de vocabulario correspondiente no ha sido modificadodesde que se llamó a la función vox_prevcb() (o vox_prevcbex() o vox_prevcbex2() o vox_prevcbdev()), noes necesario volver a invocarlas antes de cargar el vocabulario mediante la función vox_loadvcb().

Con la opción GVX_ABNF habilitada, la función vox_loadvcb() requiere el fichero de estados de la gramática,

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 47

Page 58: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

el fichero de definiciones y el fichero de transcripciones generado mediante la función vox_prevcb() (ovox_prevcbex() o vox_prevcbex2() o vox_prevcbdev()). Si estos ficheros existen y la gramática ABNFcorrespondiente no ha sido modificado desde que se llamó a la función vox_prevcb() (o vox_prevcbex() ovox_prevcbex2() o vox_prevcbdev()), no es necesario volver a invocarlas antes de cargar la gramáticamediante la función vox_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 vox_setvcb() o vox_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.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_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.5. Elementos relacionados

vox_setcd, vox_loadcd, vox_activatevcb, vox_deactivatevcb, vox_unloadvcb, ATVOX_IVCB

31.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

48 Referencia de las funciones del Library SDK Verbio Technologies

Page 59: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

32. vox_nbest

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

int chdev descriptor de un canal válido

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 por compatibilidad con versiones anteriores, úsese 0

RETORNA >=0 para indicar la cantidad de palabras reconocidas

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

32.1. Descripción

La función vox_nbest() debe ser llamada al finalizar las funciones vox_recstr() (o vox_recstr_open() +vox_recstr_write() + vox_recstr_close()) para obtener los índices y niveles de confianza de las palabrasreconocidas correspondientes a la hipótesis ibest-ésima. La función vox_nbest() es una extensión de lafunción vox_recind() para permitir la obtención de múltiples hipótesis de reconocimiento de una mismalocució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 vox_setparm() antes de iniciar el reconocimiento mediante las funcionesvox_recstr() o vox_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. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 de

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 49

Page 60: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

este 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 vox_setparm() (parámetro VXCH_ACTIVE_NBEST).

32.3. Errores

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

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

32.4. Elementos relacionados

vox_recstr, vox_recstr_open, vox_recind, ATVOX_NIND

32.5. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

50 Referencia de las funciones del Library SDK Verbio Technologies

Page 61: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

33. ATVOX_NIND

FUNCION int ATVOX_NIND(int chdev)

int chdev descriptor de un canal válido

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

33.1. Descripción

La función ATVOX_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 vox_recind() o vox_nbest().

33.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

33.3. Precauciones

El valor devuelto por la función ATVOX_NIND() únicamente es válido después de la correcta finalización dela función vox_recind() o vox_nbest().

33.4. Errores

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

EVX_NORECIND NO RECIND. Call vox_recind() before calling ATVOX_NIND().

33.5. Elementos relacionados

vox_recind, vox_nbest

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 51

Page 62: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

34. vox_playstr

FUNCION int vox_playstr(int chdev, const char *filename, const char *string, unsigned intmode)

int chdev descriptor de un canal válido

const char *filename vector ASCIIZ con el nombre del fichero de audio en el que sealmacenará la voz sintética

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

unsigned int mode formato de las muestras de audio

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

34.1. Descripción

La función vox_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.

34.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

filename vector ASCIIZ con el nombre del fichero de audio en el que se almacenarán las muestras deaudio de voz sintética procedentes del servidor de síntesis.

string vector ASCIIZ con el texto que debe ser sintetizado. 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 motor de síntesis

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 pordefecto)

34.3. Errores

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

EVX_SYSTEM SYSTEM ERROR. Check errno.

34.4. Elementos relacionados

Capítulo 2. Descripción de las funciones

52 Referencia de las funciones del Library SDK Verbio Technologies

Page 63: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_playstr_open

34.5. Códigos de ejemplo

Consulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 53

Page 64: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

35. vox_playstr_close

FUNCION int vox_playstr_close(int chdev, int playdev)

int chdev descriptor de un canal válido

int playdev descriptor de reproducción válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

35.1. Descripción

La función vox_playstr_close() cierra el descriptor de reproducción abierto mediante la funciónvox_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.

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

35.3. Elementos relacionados

vox_playstr_open, vox_playstr_read

35.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

54 Referencia de las funciones del Library SDK Verbio Technologies

Page 65: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

36. vox_playstr_open

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

36.1. Descripción

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

36.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 ATVOX_LASTERR()y ATVOX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SYSTEM SYSTEM ERROR. Check errno.

36.4. Elementos relacionados

vox_playstr_read, vox_playstr_close

36.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 55

Page 66: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

37. vox_playstr_read

FUNCION int vox_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 voxlib.h

MODO síncrono

37.1. Descripción

La función vox_playstr_read() obtiene las muestras de audio generadas por la función vox_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ónvox_playstr_read() nuevamente.

37.2. Descripción de los parámetros

playdev especifica el descriptor de reproducción válido obtenido mediante la funciónvox_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 ATVOX_LASTERR()y ATVOX_ERRMSGP() obtendrá alguno de los siguientes motivos de error:

EVX_SYSTEM SYSTEM ERROR. Check errno.

37.4. Elementos relacionados

vox_playstr_open, vox_playstr_close

37.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

56 Referencia de las funciones del Library SDK Verbio Technologies

Page 67: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

38. vox_playstr_release

FUNCION int vox_playstr_release(int chdev)

int chdev descriptor de un canal válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

38.1. Descripción

La función vox_playstr_release() libera un recurso (licencia) de síntesis del habla reservado mediante lafunción vox_playstr_wait() en el canal especificado.

38.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

38.3. Elementos relacionados

vox_playstr_wait, vox_getusedttslic, vox_recstr_release, vox_recstr_wait

38.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 57

Page 68: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

39. vox_playstr_wait

FUNCION int vox_playstr_wait(int chdev, int ms)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

39.1. Descripción

La función vox_playstr_wait() reserva un recurso (licencia) de síntesis del habla para el canal especificadohasta que se libere mediante la función vox_playstr_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 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.

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

vox_playstr_release, vox_getusedttslic, vox_recstr_wait, vox_recstr_release

39.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

58 Referencia de las funciones del Library SDK Verbio Technologies

Page 69: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

40. vox_prevcb

FUNCION int vox_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 vocabulario convencional (lista de palabras) o gramáticaABNF

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

40.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vox_prevcb() 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 vox_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ónvox_asr_init o bien mediante la función vox_setparm (parámetros VXCH_DEFASRCFG y VXCH_DEFASRLNG). El idioma puede especificarse independientemente usando la función vx_prevcbex2.

40.2. 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 se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

40.3. Precauciones

La función vovx_prevcb() preparará el vocabulario en el idioma por defecto presente en el canal (exceptoaquellas palabras que incorporen el identificador del idioma). Si desea especificarse un idioma distinto, deberáutilizarse la función vox_prevcbex2().

La configuración de reconocimiento activa en el momento de cargar la gramática debe ser la misma que la

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 59

Page 70: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

existente en el momento de su preparación. En caso contrario, aparecerá el error THE VOCABULARYCONTAINS AN INVALID WORD. Check and correct invalid words.

40.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funcionesATVOX_LASTERR(-1) y ATVOX_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.5. Elementos relacionados

vox_prevcbex, vox_prevcbex2, vox_prevcbdev, vox_setvcb, vox_loadvcb

40.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

60 Referencia de las funciones del Library SDK Verbio Technologies

Page 71: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

41. vox_prevcbdev

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

int chdev descriptor de un canal válido

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

unsigned int mode vocabulario convencional (lista de palabras) o gramáticaABNF

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 voxlib.h

MODO síncrono

41.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vox_prevcbex2() 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 funcionesvox_prevcb, vox_prevcbex o vox_prevcbex2.

Cuando se especifica el modo GVX_ABNF (gramática ABNF), la función vox_prevcbex2() 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. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 61

Page 72: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 vox_asr_init o bien mediante la función vox_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.3. 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.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funcionesATVOX_LASTERR(-1) y ATVOX_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.5. Elementos relacionados

Capítulo 2. Descripción de las funciones

62 Referencia de las funciones del Library SDK Verbio Technologies

Page 73: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_prevcb, vox_prevcbex, vox_prevcbex2, vox_chkwrd, vox_setvcb, vox_loadvcb

41.6. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 63

Page 74: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

42. vox_prevcbex

FUNCION int vox_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 vocabulario convencional (lista de palabras) o gramáticaABNF

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 voxlib.h

MODO síncrono

42.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vox_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 vox_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 vox_prevcbdev para evitar conflictos entre ellos.

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

42.2. 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 se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

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

42.3. Precauciones

Capítulo 2. Descripción de las funciones

64 Referencia de las funciones del Library SDK Verbio Technologies

Page 75: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

La función vovx_prevcbex() preparará el vocabulario en el idioma por defecto presente en el canal (exceptoaquellas palabras que incorporen el identificador del idioma). Si desea especificarse un idioma distinto, deberáutilizarse la función vox_prevcbex2().

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.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funcionesATVOX_LASTERR(-1) y ATVOX_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.5. Elementos relacionados

vox_prevcb, vox_prevcbex2, vox_prevcbdev, vox_chkwrd, vox_setvcb, vox_loadvcb

42.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 65

Page 76: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

43. vox_prevcbex2

FUNCION int vox_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 vocabulario convencional (lista de palabras) o gramáticaABNF

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 voxlib.h

MODO síncrono

43.1. Descripción

Sin especificar el modo GVX_ABNF (vocabulario convencional), la función vox_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 vox_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 vox_prevcbdev para evitar conflictos entre ellos.

43.2. 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 se trata de una gramática ABNF.

GVX_ABNF gramática ABNF

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 vox_asr_init o bien mediante la función vox_setparm(parámetro VXCH_DEFASRCFG).

Capítulo 2. Descripción de las funciones

66 Referencia de las funciones del Library SDK Verbio Technologies

Page 77: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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.3. 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 vox_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 vox_setparm (parámetroVXCH_DEFASRLANG).

43.4. Errores

Si la función retorna -1 indicando que se ha producido un error, mediante las funcionesATVOX_LASTERR(-1) y ATVOX_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.5. Elementos relacionados

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 67

Page 78: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_prevcb, vox_prevcbex, vox_prevcbdev, vox_chkwrd, vox_setvcb, vox_loadvcb

43.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

68 Referencia de las funciones del Library SDK Verbio Technologies

Page 79: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

44. vox_reccfg_release

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

44.1. Descripción

La función vox_reccfg_release() libera un recurso (licencia) de reconocimiento del habla reservado mediante lafunción vox_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.

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 Library SDK 69

Page 80: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

CFG_ENGLISH US English

44.3. Elementos relacionados

vox_reccfg_wait, vox_playstr_release, vox_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 Library SDK Verbio Technologies

Page 81: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

45. vox_reccfg_wait

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

45.1. Descripción

La función vox_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 vox_reccfg_release(). Lógicamente,el tiempo de uso de estas licencias es superior al de las licencias de motor (el vocabulario debe haberseestablecido con 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 vox_reccfg_wait() reserva un recurso (licencia) de reconocimiento del habla para el canalespecificado hasta que se libere mediante la función vox_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.

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 Library SDK 71

Page 82: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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ónvox_reccfg_release para permitir que peticiones que están esperando en cola puedan ser procesadasrá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

vox_reccfg_release, vox_playstr_wait, vox_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 Library SDK Verbio Technologies

Page 83: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

46. vox_recind

FUNCION int vox_recind(int chdev, int maxind, int *index, float *score, unsigned intmode)

int chdev descriptor de un canal válido

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 por compatibilidad con versiones anteriores, úsese 0

RETORNA >=0 para indicar la cantidad de palabras reconocidas

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

46.1. Descripción

La función vox_recind() debe ser llamada al finalizar las funciones vox_recstr() o vox_recstr_open() paraobtener los í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. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

mode por compatibilidad con versiones anteriores, úsese 0

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 73

Page 84: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

46.3. Errores

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

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

46.4. Elementos relacionados

vox_recstr, vox_recstr_open, vox_nbest

46.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

74 Referencia de las funciones del Library SDK Verbio Technologies

Page 85: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

47. vox_recstr

FUNCION int vox_recstr(int chdev, const char *filename, VX_RSP *rspp, unsigned intmode)

int chdev descriptor de un canal válido

const char *filename vector ASCIIZ con el nombre del fichero que contiene lasmuestras de voz a reconocer

VX_RSP *rspp puntero a una estructura del tipo Recognition StringParameter

unsigned int mode formato de las muestras de audio

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

47.1. Descripción

La función vox_recstr() inicia el reconocimiento de la señal de voz almacenada en el fichero. La funciónvox_recstr() acepta condiciones de terminación adicionales especificadas mediante la estructura VX_RSPpasada como parámetro.

Una vez invocada la función vox_recstr(), el proceso de reconocimiento continua hasta que se cumpla algunade las condiciones de terminación establecidas mediante la estructura VX_RSP.

El formato del fichero que contiene las muestras de voz debe ser PCM lineal, Ley A o Ley Mu, 8 KHzy sin control automático de ganancia.

47.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

filename vector ASCIIZ con el nombre del fichero que contiene las muestras de voz a reconocer

rspp puntero a una estructura de tipo String Parameter Structure (VX_RSP) en la quese especifican condiciones adicionales de terminación del proceso de reconocimiento. Si elvalor de este parámetro es NULL se utilizarán los valores por defecto de los campos de laestructura. 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 del fichero.

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 pordefecto)

47.3. Precauciones

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 75

Page 86: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

La función vox_setvcb() (o vox_loadvcb() + vox_activatevcb()) debe ser llamada previamente a la funciónvox_recstr() para establecer el vocabulario o gramática activo.

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

47.4. Errores

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

EVX_SYSTEM SYSTEM ERROR. Check errno.

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

47.5. Elementos relacionados

vox_recstrm

Capítulo 2. Descripción de las funciones

76 Referencia de las funciones del Library SDK Verbio Technologies

Page 87: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

48. vox_recstrm

FUNCION int vox_recstrm(int chdev, void *samp, int nsamp, VX_RSP *rspp, unsigned intmode)

int chdev descriptor de un canal válido

void *samp vector que contiene las muestras de voz a reconocer

int nsamp tamaño del vector de muestras

VX_RSP *rspp puntero a una estructura del tipo Recognition StringParameter

unsigned int mode formato de las muestras de audio

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

48.1. Descripción

La función vox_recstrm() inicia el reconocimiento de la señal de voz almacenada en memoria. La funciónvox_recstrm() acepta condiciones de terminación adicionales especificadas mediante la estructura VX_RSPpasada como parámetro.

Una vez invocada la función vox_recstrm(), el proceso de reconocimiento continua hasta que se cumpla algunade las condiciones de terminación establecidas mediante la estructura VX_RSP.

El formato de las muestras de voz almacenadas en memoria debe ser PCM lineal, Ley A o Ley Mu, 8KHz y sin control automático de ganancia.

48.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

samp vector que contiene las muestras de voz a reconocer

nsamp tamaño del vector de muestras (en bytes).

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 formato de las muestras de voz almacenadas en memoria.

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)

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 77

Page 88: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

48.3. Precauciones

La función vox_setvcb() (o vox_loadvcb() + vox_activatevcb()) debe ser llamada previamente a la funciónvox_recstrm() para establecer el vocabulario o gramática activo.

La estructura VX_RSP utilizada como argumento de la función vox_recstrm() debe ser inicializada a susvalores por defecto mediante la función vox_clrrsp() antes de modificar los valores de sus campos.

48.4. Errores

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

EVX_SYSTEM SYSTEM ERROR. Check errno.

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

48.5. Elementos relacionados

vox_recstr

48.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

78 Referencia de las funciones del Library SDK Verbio Technologies

Page 89: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

49. vox_recstr_close

FUNCION int vox_recstr_close(int chdev, int recdev)

int chdev descriptor de un canal válido

int recdev descriptor de grabación válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

49.1. Descripción

La función vox_recstr_close() cierra el descriptor de grabación abierto mediante la función vox_recstr_open ylibera los recursos utilizados durante el proceso de reconocimiento.

49.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

recdev especifica el descriptor de grabación válido obtenido mediante la función vox_recstr_open.

49.3. Elementos relacionados

vox_recstr_open, vox_recstr_write

49.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 79

Page 90: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

50. vox_recstr_open

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

int chdev descriptor de un canal válido

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 para indicar el descriptor de grabación

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

50.1. Descripción

La función vox_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 vox_recstr_write(). El valordevuelto por la función es requerido por las funciones vox_recstr_write() y vox_recstr_close().

50.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

50.3. Precauciones

Una vez finalizado el reconocimiento, es imprescindible invocar a la función vox_recstr_close para liberar losrecursos de memoria utilizados durante el proceso de reconocimiento.

50.4. Elementos relacionados

vox_recstr_write, vox_recstr_close

50.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

80 Referencia de las funciones del Library SDK Verbio Technologies

Page 91: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

51. vox_recstr_release

FUNCION int vox_recstr_release(int chdev)

int chdev descriptor de un canal válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

51.1. Descripción

La función vox_recstr_release() libera un recurso (licencia) de reconocimiento del habla reservado mediante lafunción vox_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 vox_reccfg_release.

51.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

51.3. Elementos relacionados

vox_recstr_wait, vox_reccfg_wait, vox_reccfg_release, vox_getusedasrlic, vox_playstr_release,vox_playstr_wait

51.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 81

Page 92: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

52. vox_recstr_wait

FUNCION int vox_recstr_wait(int chdev, int ms)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

52.1. Descripción

La función vox_recstr_wait() reserva un recurso (licencia) de reconocimiento del habla para el canalespecificado hasta que se libere mediante la función vox_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 vox_reccfg_wait.

52.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

52.3. Elementos relacionados

vox_recstr_release, vox_reccfg_wait, vox_reccfg_release, vox_getusedasrlic, vox_playstr_wait,vox_playstr_release

52.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

82 Referencia de las funciones del Library SDK Verbio Technologies

Page 93: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

53. vox_recstr_write

FUNCION int vox_recstr_write(int recdev, const void *buffer, unsigned int n)

int recdev descriptor de grabación válido

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 voxlib.h

MODO síncrono

53.1. Descripción

La función vox_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 vox_recstr_open.

53.2. Descripción de los parámetros

recdev especifica el descriptor de grabación válido obtenido mediante la función vox_recstr_open.

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

n tamaño del vector de muestras.

53.3. Elementos relacionados

vox_recstr_open, vox_recstr_close

53.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 83

Page 94: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

54. vox_RegisterVVICallback

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

54.1. Descripción

La función vox_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.

54.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

54.3. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

84 Referencia de las funciones del Library SDK Verbio Technologies

Page 95: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

55. vox_regsrvclose

FUNCION int vox_regsrvclose(VX_SRVCLOSE function)

VX_SRVCLOSEfunction

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

RETORNAINCLUDES voxlib.h

MODO síncrono

55.1. Descripción

La función vox_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.

55.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.

55.3. Elementos relacionados

vox_srvclose

55.4. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 85

Page 96: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

56. vox_SapiClose

FUNCION int vox_SapiClose(int chdev, HSAPI pmode)

int chdev descriptor de un canal válido

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

voxlib.h

MODO síncrono

56.1. Descripción

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

56.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

56.3. Elementos relacionados

vox_SapiOpen, vox_SapiSelect

56.4. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

86 Referencia de las funciones del Library SDK Verbio Technologies

Page 97: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

57. vox_SapiOpen

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

int chdev descriptor de un canal válido

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 por compatibilidad con versiones anteriores, úsese 0

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

voxlib.h

MODO síncrono

57.1. Descripción

La función vox_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 vox_SapiOpen(), el motor de síntesis abierto puede serseleccionado mediante la función vox_SapiSelect(), especificando el descriptor obtenido. El motor de síntesisdebe ser cerrado mediante la función vox_SapiClose().

57.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 por compatibilidad con versiones anteriores, úsese 0

57.3. 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.

57.4. Elementos relacionados

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 87

Page 98: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_SapiOpenEx, vox_SapiSelect, vox_SapiClose

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

Capítulo 2. Descripción de las funciones

88 Referencia de las funciones del Library SDK Verbio Technologies

Page 99: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

58. vox_SapiOpenEx

FUNCION int vox_SapiOpenEx(int chdev, PMODEATTRIBUTES ttsattributes, HSAPI*pmode)

int chdev descriptor de un canal válido

PMODEATTRIBUTESttsattributes

puntero a una estructura del tipo MODEATTRIBUTES

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

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES speech.h

voxlib.h

MODO síncrono

58.1. Descripción

La función vox_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 vox_SapiOpenEx(), el motor de síntesis abierto puede serseleccionado mediante la función vox_SapiSelect(), especificando el descriptor obtenido. El motor de síntesisdebe ser cerrado mediante la función vox_SapiClose().

58.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

58.3. 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.

58.4. Elementos relacionados

vox_SapiOpen, vox_SapiSelect, vox_SapiClose

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 89

Page 100: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

59. vox_SapiSelect

FUNCION int vox_SapiSelect(int chdev, HSAPI pmode)

int chdev descriptor de un canal válido

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

voxlib.h

MODO síncrono

59.1. Descripción

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

Una vez invocada satisfactoriamente la función vox_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 vox_SapiClose().

59.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

59.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.

59.4. Elementos relacionados

vox_SapiOpen, vox_SapiClose

59.5. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

90 Referencia de las funciones del Library SDK Verbio Technologies

Page 101: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

60. vox_SerialNumber

FUNCION const char* vox_SerialNumber(void)

RETORNA Número de serie de Verbio

INCLUDES voxlib.h

MODO síncrono

60.1. Descripción

La función vox_SerialNumber() retorna un puntero a carácter conteniendo el número de serie correspondientea la versión servidor de Verbio.

60.2. Precauciones

El número de serie únicamente está disponible tras el establecimiento de la comunicación entre cliente yservidor mediante alguna de las siguientes funciones: vox_libinit, vox_asr_init o vox_tts_init.

60.3. Elementos relacionados

vox_GetDllVersion

60.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 91

Page 102: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

61. vox_SetAbbreviations

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

61.1. Descripción

La función vox_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.

61.2. Descripción de los parámetros

chdev descriptor de un canal válido.

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

Capítulo 2. Descripción de las funciones

92 Referencia de las funciones del Library SDK Verbio Technologies

Page 103: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

61.3. Errores

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

61.4. Elementos relacionados

vox_SetDictionary

61.5. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 93

Page 104: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

62. vox_setcd

FUNCION int vox_setcd(int chdev, unsigned int mode)

int chdev descriptor de un canal válido

unsigned int mode por compatibilidad con versiones anteriores, úsese 0

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

62.1. Descripción

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

62.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

mode por compatibilidad con versiones anteriores, úsese 0

62.3. Precauciones

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

62.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_LASTERR() devolveráalguno de los siguientes motivos:

EVX_NOMEM OUT OF MEMORY

EVX_SYSTEM SYSTEM ERROR. Check errno.

62.5. Elementos relacionados

vox_setvcb, vox_loadvcb, vox_activatevcb, vox_deactivatevcb, vox_unloadvcb, ATVOX_IVCB

Capítulo 2. Descripción de las funciones

94 Referencia de las funciones del Library SDK Verbio Technologies

Page 105: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

63. vox_SetDictionary

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

63.1. Descripción

La función vox_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.

63.2. Descripción de los parámetros

chdev descriptor de un canal válido.

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

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

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 95

Page 106: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

63.3. Errores

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

63.4. Elementos relacionados

vox_SetAbbreviations

63.5. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

96 Referencia de las funciones del Library SDK Verbio Technologies

Page 107: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

64. vox_setparm

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

int dev descriptor de un canal válido o -1 para parámetros globales deVERBIO (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 voxlib.h

MODO síncrono

64.1. Descripción

La función vox_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.

64.2. Descripción de los parámetros

dev especifica el descriptor de canal válido . Use -1 para establecer el valor de parámetros globalesde 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.

64.3. Elementos relacionados

vox_getparm

64.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 97

Page 108: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

65. vox_setvcb

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

int chdev descriptor de un canal válido

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 vocabulario convencional (listado de palabras) o gramáticaABNF o DTMF

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

65.1. Descripción

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

65.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

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.

65.3. Precauciones

Sin la opción GVX_ABNF habilitada, la función vox_setvcb() requiere el fichero de definiciones y el fichero detranscripciones generados mediante la función vox_prevcb() o vox_prevcbex() o vox_prevcbex2() ovox_prevcbdev(). Si estos ficheros existen y el fichero de vocabulario correspondiente no ha sido modificado

Capítulo 2. Descripción de las funciones

98 Referencia de las funciones del Library SDK Verbio Technologies

Page 109: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

desde que se llamó a la función vox_prevcb() (o vox_prevcbex() o vox_prevcbex2() o vox_prevcbdev()), noes necesario volver a invocarlas antes de cargar el vocabulario mediante la función vox_setvcb().

Con la opción GVX_ABNF habilitada, la función vox_setvcb() requiere el fichero de estados de la gramática, elfichero de definiciones y el fichero de transcripciones generado mediante la función vox_prevcb() ovox_prevcbex() o vox_prevcbex2() o vox_prevcbdev(). Si estos ficheros existen y la gramática ABNFcorrespondiente no ha sido modificado desde que se llamó a la función vox_prevcb() (o vox_prevcbex()ovox_prevcbex2() o vox_prevcbdev()), no es necesario volver a invocarlas antes de cargar la gramáticamediante la función vox_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 vox_setvcb() o vox_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.

65.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_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.

65.5. Elementos relacionados

vox_setcd, vox_loadvcb, vox_activatevcb, vox_deactivatevcb, vox_unloadvcb, ATVOX_IVCB

65.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 99

Page 110: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

66. vox_srvclose

FUNCION void vox_srvclose(const char *server)

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

INCLUDES voxlib.h

MODO síncrono

66.1. Descripción

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

66.2. Descripción de los parámetros

server especifica la dirección IP del servidor con el que se cerrarán todas las conexiones.

66.3. Elementos relacionados

vox_devclose, vox_thclose, vox_regsrvclose

66.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

100 Referencia de las funciones del Library SDK Verbio Technologies

Page 111: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

67. vox_termplaystr

FUNCION int vox_termplaystr(int chdev)

int chdev descriptor de un canal válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

67.1. Descripción

La función vox_termplaystr() asegura que todos los eventos recibidos como consecuencia de una llamadaasíncrona a la función vox_playstr() son eliminados de la cola de eventos.

67.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

67.3. Precauciones

Esta función debe ser llamada únicamente cuando la función vox_playstr() se ha invocado asíncronamente.

67.4. Elementos relacionados

vox_playstr

67.5. Códigos de ejemploConsulte el ejemplo asíncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 101

Page 112: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

68. vox_termrecstr

FUNCION int vox_termrecstr(int chdev)

int chdev descriptor de un canal válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

68.1. Descripción

La función vox_termrecstr() indica el final del reconocimiento iniciado mediante la funciónvox_recstr_open() o mediante la función vox_recstr() invocada asíncronamente.

68.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

68.3. Precauciones

Esta función debe ser llamada únicamente cuando la función vox_recstr() se ha invocado asíncronamente.

68.4. Elementos relacionados

vox_recstr, vox_recstr_open

68.5. Códigos de ejemploConsulte el ejemplo asíncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

102 Referencia de las funciones del Library SDK Verbio Technologies

Page 113: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

69. vox_thclose

FUNCION int vox_thclose()

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

69.1. Descripción

La función vox_thclose libera las conexiones con el motor de síntesis y o reconocimiento del habla utilizadaspor el 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.

69.2. Elementos relacionadosvox_libclose, vox_srvclose, vox_devclose

69.3. Códigos de ejemploConsulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 103

Page 114: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

70. vox_tts_init

FUNCION int vox_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 voxlib.h

MODO síncrono

70.1. Descripción

La función vox_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 vox_asr_init en caso de que también serequiera reconocimiento del habla) en lugar de la función vox_libinit, puesto que permite indicar al servidor losparámetros de inicialización de una manera mucho más concreta.

70.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

70.3. Precauciones

La función vox_tts_init() debe invocarse antes que ninguna otra de las funciones del Library SDKrelacionadas con la síntesis del habla, a excepción de aquella destinada a establecer el servidor de trabajo pordefecto en configuraciones cliente-servidor (vox_setparm).

70.4. Errores

Capítulo 2. Descripción de las funciones

104 Referencia de las funciones del Library SDK Verbio Technologies

Page 115: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

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.

70.5. Elementos relacionados

vox_libinit, vox_asr_init, vox_libclose

70.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 105

Page 116: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

71. vox_ttsSetAbbreviations

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

71.1. Descripción

La función vox_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 vox_SetAbbreviations.

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

71.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

71.3. Errores

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

71.4. Elementos relacionados

vox_ttsSetDictionary

Capítulo 2. Descripción de las funciones

106 Referencia de las funciones del Library SDK Verbio Technologies

Page 117: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

71.5. Códigos de ejemploConsulte el ejemplo con barge-in del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 107

Page 118: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

72. vox_ttsSetDictionary

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

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

72.1. Descripción

La función vox_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 vox_SetDictionary.

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

72.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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.

72.3. Errores

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

72.4. Elementos relacionados

vox_ttsSetAbbreviations

72.5. Códigos de ejemplo

Capítulo 2. Descripción de las funciones

108 Referencia de las funciones del Library SDK Verbio Technologies

Page 119: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Consulte el ejemplo con barge-in del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 109

Page 120: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

73. vox_unloadvcb

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

int chdev descriptor de un canal válido

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

unsigned int mode por compatibilidad con versiones anteriores, úsese 0

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

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

73.1. Descripción

La función vox_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 vox_loadvcb() y tambiéndebe usarse para activarlo mediante la función vox_activatevcb() o para descactivarlo mediante la funciónvox_deactivatevcb(). Si el descriptor del vocabulario es -1, la función vox_unloadvcb() descarga todos losvocabularios y gramáticas ABNF cargados previamente.

73.2. Descripción de los parámetros

chdev descriptor de un canal válido

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

mode por compatibilidad con versiones anteriores, úsese 0

73.3. Precauciones

Si se establece el vocabulario o la gramática activa mediante la función vox_setvcb() o vox_setcd(), sedescargarán automáticamente todos los vocabularios y gramáticas cargados hasta ese momento (equivale ainvocar la función vox_unloadvcb() con el parámetro vcbhandle fijado al valor -1).

73.4. Errores

Si la función retorna -1 indicando que se ha producido un error, la función ATVOX_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.

73.5. Elementos relacionados

Capítulo 2. Descripción de las funciones

110 Referencia de las funciones del Library SDK Verbio Technologies

Page 121: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_setvcb, vox_loadvcb, vox_loadcd, vox_activatevcb, vox_deactivatevcb, ATVOX_IVCB

73.6. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 111

Page 122: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

74. vox_vsd_close

FUNCION int vox_vsd_close(int chdev, VAD_PARAM* vsddev)

int chdev descriptor de un canal válido

VAD_PARAM*vsddev

descriptor de detección de voz válido

RETORNA 0 si el resultado es satisfactorio

-1 en caso de error

INCLUDES voxlib.h

MODO síncrono

74.1. Descripción

La función vox_vsd_close() cierra el desciptor de detección de voz abierto mediante la función vox_vsd_open ylibera los recursos utilizados durante el proceso de detección de voz.

74.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

vsddev especifica el descriptor de detección de voz válido obtenido mediante la función vox_vsd_open.

74.3. Elementos relacionados

vox_vsd_open, vox_vsd_write

74.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

112 Referencia de las funciones del Library SDK Verbio Technologies

Page 123: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

75. vox_vsd_open

FUNCION VAD_PARAM* vox_vsd_open(int chdev, int recdev, VAD_PRM *prm, unsignedint mode)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

75.1. Descripción

La función vox_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 vox_vsd_write(). El valor devuelto por lafunción es requerido por las funciones vox_vsd_write() y vox_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 vox_recstr_open, queserá necesario especificar como segundo parámetro de la función vox_vsd_open.

75.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 vox_recstr_open eneste parámetro. De este modo, el servidor de reconocimiento se verá liberado de la tarea deseparar la señal de voz del silencio, reduciéndose así el coste computacional de la parte servidora.En caso de que la estrategia de detección de voz no esté ligada a un proceso de reconocimiento,el valor de 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

Verbio Technologies Referencia de las funciones del Library SDK 113

Page 124: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

75.3. Precauciones

Una vez finalizado el proceso de detección de voz, es imprescindible invocar a la función vox_vsd_close paraliberar los recursos de memoria utilizados durante el proceso de detección.

75.4. Elementos relacionados

vox_vsd_write, vox_vsd_close

75.5. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

114 Referencia de las funciones del Library SDK Verbio Technologies

Page 125: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

76. vox_vsd_write

FUNCION int vox_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 voxlib.h

MODO síncrono

76.1. Descripción

La función vox_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 vox_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.

76.2. Descripción de los parámetros

vsddev especifica el descriptor de detección de voz válido obtenido mediante la función vox_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.

76.3. Elementos relacionados

vox_vsd_open, vox_vsd_close

76.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 115

Page 126: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

77. vox_word

FUNCION const char* vox_word(int chdev, int ind)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

77.1. Descripción

La función vox_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.

77.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 vox_recind o vox_nbest. En el caso dequerer obtener toda la información posible ofrecida por el servidor de reconocimiento (reglas,valores, locuciones, niveles de confianza e intervalos temporales), debe utilizarse el valorIND_STREAM, en cuyo caso el vector de caracteres ASCIIZ contiene toda la informaciónestructurada siguiendo el formato especificado en Sección 6.

77.3. Elementos relacionados

vox_wordex, vox_wordrule, vox_recstr

77.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

116 Referencia de las funciones del Library SDK Verbio Technologies

Page 127: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

78. vox_wordex

FUNCION const char* vox_wordex(int chdev, int ind, int pos)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

78.1. Descripción

La función vox_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 .

78.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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 vox_recind o vox_nbest. En el caso dequerer obtener toda la información posible ofrecida por el servidor de reconocimiento (reglas,valores, locuciones, niveles de confianza e intervalos temporales), debe utilizarse el valorIND_STREAM, en cuyo caso el vector de caracteres ASCIIZ contiene toda la informaciónestructurada siguiendo el formato especificado en Sección 6.

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.

78.3. Elementos relacionados

vox_word, vox_wordrule, vox_recstr

78.4. Códigos de ejemploConsulte el ejemplo anexo.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 117

Page 128: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

79. vox_wordrule

FUNCION const char* vox_wordrule(int chdev, const char* rule, int pos, float * score)

int chdev descriptor de un canal válido

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 voxlib.h

MODO síncrono

79.1. Descripción

La función vox_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.

79.2. Descripción de los parámetros

chdev especifica el descriptor de canal válido.

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

79.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.

79.4. Elementos relacionados

Capítulo 2. Descripción de las funciones

118 Referencia de las funciones del Library SDK Verbio Technologies

Page 129: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_word, vox_wordex

79.5. Códigos de ejemplo

Consulte el ejemplo síncrono del Dialogic SDK.

Capítulo 2. Descripción de las funciones

Verbio Technologies Referencia de las funciones del Library SDK 119

Page 130: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades
Page 131: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Capítulo 3. Estructuras de datos yparámetros

Page 132: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

1. VX_RSP - Recognize String Parameter

La estructura VX_RSP incluye condiciones de terminación y parámetros adicionales para las funcionesvox_recstr() o vox_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 vox_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ónfopen(). Si el valor es distinto de -1, la función vox_recstr() grabará la señal deentrada en este fichero. El formato de la grabación está fijado a PCM (ley A o leyMu), con una frecuencia de muestreo de 8 KHz y sin Control Automático deGanancia. (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 válido. Es especialmente útil cuando seimplementan funcionalidades de barge-in, tal y como se muestra en el ejemploanexo.

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 vox_clrrsp().

Capítulo 3. Estructuras de datos yparámetros

122 Referencia de las funciones del Library SDK Verbio Technologies

Page 133: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 Library SDK 123

Page 134: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

124 Referencia de las funciones del Library SDK Verbio Technologies

Page 135: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 Library SDK 125

Page 136: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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

126 Referencia de las funciones del Library SDK Verbio Technologies

Page 137: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

3. ASV_SPKINFO - ASV Speaker Information

La estructura ASV_SPKINFO permite, a través de la función vox_asv_spkinfo(), recibir información relativa aun usuario registrado para verificación automática.

El contenido (typedef) de la estructura se muestra a continuación:

typedef struct {unsigned int num_files;unsigned int files_age;unsigned int speech_ms;

} ASV_SPKINFO;

donde:

num_files especifica el número de ficheros de audio asignados al usuario mediantevox_asv_addfile() o vox_asv_train().

files_age especifica el tiempo transcurrido (en horas) desde que se asignó el último fichero alusuario. Es un indicador de la antiguedad del audio de que dispone el usuario actualmentepara la generación de su huella vocal.

speech_ms especifica la cantidad total (en milisegundos) de voz contenida en los ficheros asignadosal usuario. Es un indicador de la cantidad de audio útil de que dispone el usuarioactualmente para la generación de su huella vocal.

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Library SDK 127

Page 138: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

4. 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

128 Referencia de las funciones del Library SDK Verbio Technologies

Page 139: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

5. Definición de parámetros para vox_getparm() y vox_setparm()

El fichero voxlib.h contiene los parámetros que pueden ser consultados y modificados mediante lasfunciones vox_getparm() y vox_setparm() respectivamente. Existen parámetros globales (independientes delcanal) y parámetros dependientes del canal.

Tabla 3.1. Parámetros globales en el Library SDK

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 funcionesvox_recstr() o vox_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 vox_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

Verbio Technologies Referencia de las funciones del Library SDK 129

Page 140: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

cliente. Es necesario especificarlo antesde invocar a la función vox_libinit o

vox_asr_init o vox_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 (de 2 o 5 caracteres), consulte lafunción vox_tts_init y el fichero

Capítulo 3. Estructuras de datos yparámetros

130 Referencia de las funciones del Library SDK Verbio Technologies

Page 141: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

voxlib.h.

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 vox_asr_init y el ficherovoxlib.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 longitud

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Library SDK 131

Page 142: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

máxima de audio (antes de lanzar unnuevo reconocimiento) que puede

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 Library SDK

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 reconocimiento

vox_recstr() y vox_recstr_open(). Esmuy 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

vox_recstr() y vox_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

Capítulo 3. Estructuras de datos yparámetros

132 Referencia de las funciones del Library SDK Verbio Technologies

Page 143: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

Configuration Manager. Este mismoconfigurador permite ver el nombre delos locutores asociados a cada uno de

los idiomas disponibles.

VXCH_TTSLNG int R/W - Especifica el idioma de síntesismediante una constante (véase

voxlib.h) que se usará en el próximoproceso de conversión de texto a habla.

Se mantiene por compatibilidad conversiones 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 voxlib.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 vox_prevcb() y

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Library SDK 133

Page 144: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

vox_prevcbex() para procesar losficheros de vocabulario. El valor inicialdependerá de cómo se haya configuradoel servidor de reconocimiento mediante

el Verbio Server ConfigurationManager.

VXCH_SERVER char* R - 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

vox_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.

Capítulo 3. Estructuras de datos yparámetros

134 Referencia de las funciones del Library SDK Verbio Technologies

Page 145: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

El valor de este parámetro puedeutilizarse para reducir la aparición de

inserciones (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 vox_vsd_open, vox_vsd_write y

vox_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 vocalvox_vsd_open, vox_vsd_write y

vox_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 vox_vsd_open, vox_vsd_write y

vox_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 el

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Library SDK 135

Page 146: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Define Tipo Lectura(R)/

Escritura(R)

Defecto Descripción

siguiente formato:nombre_regla#identificador,donde identificador es el valordevuelto por la función vox_setvcb o

vox_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

136 Referencia de las funciones del Library SDK Verbio Technologies

Page 147: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

6. Obtención de información adicional mediante vox_word ovox_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 vox_word() o vox_wordex es elsiguiente:

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á

Capítulo 3. Estructuras de datos yparámetros

Verbio Technologies Referencia de las funciones del Library SDK 137

Page 148: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

un formato parecido al siguiente, en el que cada regla termina en ";" y cada subregla está contenida entrellaves "{}", 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

138 Referencia de las funciones del Library SDK Verbio Technologies

Page 149: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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 150: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

1. Ejemplo Síncrono

Ejemplo 4.1. Ejemplo síncrono de Verbio Library

/******************************************************************************* DESCRIPTION: Verbio Synchronous Sample* Copyright (C) 2009 Verbio Technologies********************************************************************************/#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/stat.h>

#include "voxlib.h"

#define MAXINDEX 32#define MAXFILENAME 160#define MAXTEXT 1024#define CODER MC_MULAW /* MC_ALAW o MC_MULAW o MC_LIN16 */#define SETMODE GVX_ISOLATED /* GVX_CONNECTED o GVX_ISOLATED */#define NEWLINE '\n'#define BUFFER_SIZE 2048#define AUDIO_BUFFER_SIZE 1024

const char* Path = "";const char* RecExt = ".esu";const char* server = NULL;

static int RecStr(int dev, const char *filename, int maxsil);static void vox_error(const char *function, int chdev);static FILE *fplog = NULL;

int nextfile(FILE *fp, char *rec, char *vcb){

char text[MAXTEXT], *p;int ncols = 0;

strcpy(rec,"");strcpy(vcb,"");

if (fgets(text, MAXTEXT, fp) != NULL) {if ((p = strchr(text, NEWLINE)) != NULL)

*p = '\0';

/* Remove comments */if ((p = strchr(text, ';')) != NULL)

*p = '\0';

/* First column */if ((p = strchr(text, '\t')) != NULL) {

*p = '\0';strcpy(rec, text);strcpy(text, p+1);

}else {

strcpy(rec, text);strcpy(text, "");

}ncols++;

/* Second column */if ((p = strchr(text, '\t')) != NULL)

*p = '\0';if (strlen(text) > 0) {

strcpy(vcb, text);ncols++;

}}return ncols;

}

int main(int argc, char *argv[]){

int dev = 0, connected = 0, playdev = -1;int i, n, nind, ncols, mode, error, hHELP;int index[MAXINDEX+1];float score[MAXINDEX+1];char RecFileName[MAXFILENAME];char PathRecFileName[MAXFILENAME];char Text[MAXTEXT];char *VcbFileName = "vdemo.txt";char *ListOfFiles = "vdemo.gui";char *LogFileName = "vdemo.dat";const char* deflng = LNG_SPANISH;const char* configuration = CFG_SPANISH_CATALAN;unsigned long dwfilever, dwprodver;short buffer_in[AUDIO_BUFFER_SIZE];FILE *fp = NULL;int retv = 0;int nASR = 0, nTTS = 0;int volume = 0;int speed = 0;int pitch = 0;

Capítulo 4. Código de ejemplos en C/C++

140 Referencia de las funciones del Library SDK Verbio Technologies

Page 151: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

#ifdef _DEBUGint timeout = -1;

#endif

if (argc > 1)VcbFileName = argv[1];

if (argc > 2)ListOfFiles = argv[2];

if (argc > 3)LogFileName = argv[3];

if (argc > 4)deflng = argv[4];

if (argc > 5)configuration = argv[5];

if (argc > 6)server = argv[6];

if ((fplog = fopen(LogFileName, "wt")) == NULL)return 1;

do {#ifdef _DEBUG

vox_setparm(-1, VXGB_NETTIMEOUT, &timeout);#endif

if (server)

vox_setparm(-1, VXGB_DEFSERVER, server);

connected = vox_asr_init(configuration, deflng);

if (connected >= 0)

connected = vox_tts_init(0, deflng);

} while (connected < 0);

// Get Verbio Product Version and Serial Number

vox_GetDllVersion(&dwfilever, &dwprodver);

printf("SAMPLE. Verbio %d.%02d, S/N: %s\n\n", HIWORD(dwprodver), LOWORD(dwprodver), vox_SerialNumber());

// Get number of licenses for vox_recstr

nASR = vox_getasrlic(CFG_SPANISH);printf(" * ASR licenses: %2d\n", nASR);

// Get number of licenses for vox_playstr

nTTS = vox_getttslic(LNG_SPANISH);printf(" * TTS licenses: %2d\n\n", nTTS);

vox_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");

if (nTTS) {// Get volumevox_getparm(dev, VXCH_TTSVOLUME, &volume);printf("TTSVOLUME = %d\n", volume);

// Get speedvox_getparm(dev, VXCH_TTSSPEED, &speed);printf("TTSSPEED = %d\n", speed);

// Get pitchvox_getparm(dev, VXCH_TTSPITCH, &pitch);printf("TTSPITCH = %d\n", pitch);

}

if (nASR) {

if (vox_reccfg_wait(dev, 500, CFG_SPANISH_CATALAN)) {vox_error("vox_reccfg_wait", dev);retv = ATVOX_LASTERR(dev);goto error;

}

if (vox_getusedasrlic() <= 0) {goto error;

}

if (vox_recstr_wait(dev, 500)) {vox_error("vox_recstr_wait", dev);retv = ATVOX_LASTERR(dev);goto error;

}

if (vox_prevcbex("comandos.txt", 0, &error) < 0) {vox_error("vox_prevcbex", dev);retv = error;

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Library SDK 141

Page 152: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

goto error;}

if (vox_prevcb(VcbFileName, 0) == -1) {vox_error("vox_prevcb", dev);

retv = ATVOX_LASTERR(-1);goto error;

}

if (vox_unloadvcb(dev, -1, 0) < 0) {vox_error("vox_unloadvcb", dev);retv = ATVOX_LASTERR(-1);goto error;

}

if (vox_setvcb(dev, VcbFileName, SETMODE) < 0) {vox_error("vox_setvcb", dev);retv = ATVOX_LASTERR(dev);goto error;

}

if ((hHELP = vox_loadvcb(dev, "comandos.txt", GVX_ISOLATED)) < 0) {vox_error("vox_loadvcb", dev);

retv = ATVOX_LASTERR(dev);goto error;

}

if (vox_activatevcb(dev, hHELP, 0) < 0) {vox_error("vox_activatevcb", dev);retv = ATVOX_LASTERR(dev);goto error;

}}

if ((fp = fopen(ListOfFiles, "rt")) == NULL) {retv = 2;goto error;

}

strcpy(Text, "");while ((ncols = nextfile(fp, RecFileName, Text)) != 0) {

printf("%s", Text);

fprintf(fplog, "%s", RecFileName);fprintf(fplog, "\t%s", VcbFileName);fprintf(fplog, "\t%s", Text);

strcpy(PathRecFileName, Path);strcat(PathRecFileName, RecFileName);strcat(PathRecFileName, RecExt);

if (RecStr(dev, PathRecFileName, 100) < 0)continue;

if ((nind = vox_recind(dev, MAXINDEX, index, score, 0)) < 0) {vox_error("vox_recind", dev);continue;

}

fprintf(fplog, "\t%d", nind);

strcpy(Text, "");if (nind == 0) {

printf("\t%s", vox_word(dev, index[0]));fprintf(fplog, "\t%s", vox_word(dev, index[0]));

}else {

for (i=0; i<nind; i++) {printf("\t%s\t(%d)", vox_word(dev, index[i]), (int) score[i]);fprintf(fplog, "\t%s\t(%d)", vox_word(dev, index[i]), (int) score[i]);

strcat(Text, vox_wordex(dev, index[i], 0)); strcat(Text, " ");}

if (ATVOX_IVCB(dev) != hHELP) {

if (vox_getusedttslic() <= 0)continue;

if (vox_playstr_wait(dev, 500)) {vox_error("vox_playstr_wait", dev);continue;

}

strcpy(PathRecFileName, Path);strcat(PathRecFileName, RecFileName);strcat(PathRecFileName, "REC");strcat(PathRecFileName, RecExt);

Capítulo 4. Código de ejemplos en C/C++

142 Referencia de las funciones del Library SDK Verbio Technologies

Page 153: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_playstr(dev, PathRecFileName, Text, CODER);

if ((playdev = vox_playstr_open(dev, Text, CODER)) < 0) {vox_error("vox_playstr_open", dev);continue;

}

do {

n = vox_playstr_read(playdev, buffer_in, AUDIO_BUFFER_SIZE);if (n > 0) {

//TODO: Process audio samples stored in buffer_in://1. Send to a CTI board channel//2. Send to a PC sound card//3. Store in a file//4. Send to any audio device

}} while (n == AUDIO_BUFFER_SIZE);

if (vox_playstr_close(dev, playdev) < 0) {vox_error("vox_playstr_close", dev);continue;

}

if (vox_playstr_release(dev)) {vox_error("vox_playstr_release", dev);continue;

}}

}

printf("\n");fprintf(fplog, "\n");

}if (fp)

fclose(fp);if (fplog)

fclose(fplog);

error:

vox_recstr_release(dev);

vox_deactivatevcb(dev, hHELP, 0);vox_setvcb(dev, NULL, 0);

vox_reccfg_release(dev, CFG_SPANISH_CATALAN);

vox_srvclose(server);

vox_libclose();return retv;

}

#ifdef _MEM

int RecStr(int dev, const char *filename, int maxsil){

int retv, nsamples;VX_RSP rsp;unsigned char *mem;struct _stat buf;FILE *fp;

vox_clrrsp(&rsp);rsp.maxsil = maxsil;rsp.skip_samples = 0;

if (_stat(filename, &buf))return -1;

mem = malloc(buf.st_size);fp = fopen(filename, "rb");nsamples = fread(mem, sizeof(char), buf.st_size, fp);fclose(fp);

if ((retv = vox_recstrm(dev, mem, nsamples, &rsp, CODER)) < 0) {vox_error("vox_recstr", dev);printf("%s\n", filename);getchar();

}

free(mem);return retv;

}

#else

int my_recstr(int chdev, const char *fileName, VX_RSP *rspp, unsigned int mode){

int retv = 0;int recdev, n;FILE *fp;char buffer[BUFFER_SIZE];

if ((fp = fopen(fileName, "rb")) == NULL)

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Library SDK 143

Page 154: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

return -1;

if ((recdev = vox_recstr_open(chdev, rspp, mode)) == -1) {fclose(fp);return -1;

}

do {n = fread(buffer, 1, BUFFER_SIZE, fp);

if (n>0) n = vox_recstr_write(recdev, buffer, n);}while (n == BUFFER_SIZE);

fclose(fp);

retv = vox_recstr_close(chdev, recdev);

return retv;}

int RecStr(int dev, const char *filename, int maxsil){

int retv;VX_RSP rsp;

vox_clrrsp(&rsp);rsp.maxsil = maxsil;

if ((retv = my_recstr(dev, filename, &rsp, CODER)) < 0) {vox_error("my_recstr", dev);printf("%s\n", filename);getchar();

}

return retv;}

#endif

void vox_error(const char *function, int dev){

printf("*** ERROR: %s failed. %s ***\n", function, ATVOX_ERRMSGP(dev));fprintf(fplog, "*** ERROR: %s failed. %s ***\n", function, ATVOX_ERRMSGP(dev));

}

Capítulo 4. Código de ejemplos en C/C++

144 Referencia de las funciones del Library SDK Verbio Technologies

Page 155: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

2. Ejemplo de Detección de voz y de tonos DTMF

Ejemplo 4.2. 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 DTMF. En él, únicamente semandan muestras al reconocedor cuando se ha detectado algo de señal, evitando que el servidor dereconocimiento malgaste recursos rechazando la parte de silencio inicial. Por simplicidad, se ha omitido lacomprobación de errores.

#define BUFFER_SIZE 512

int chdev = 0, retv = 0, state = 0;int recdev, vsddev, dtmfdev, n;int mode = MC_MULAW;

char buffer[BUFFER_SIZE];const char *dtmf, *result;bool bVoice = false;FILE *fp = 0;

VX_RSP rsp;vox_clrrsp(&rsp);rsp.maxsil = 1500;

VAD_PRM prm;vox_clrvad(&prm);prm.frame_len = BUFFER_SIZE;prm.frame_step = BUFFER_SIZE;

fp = fopen(fileName, "rb");

recdev = vox_recstr_open(chdev, &rsp, mode);vsddev = vox_vsd_open(chdev, recdev, &prm, mode);dtmfdev = vox_dtmf_open(chdev, mode);

do {n = fread(buffer, 1, BUFFER_SIZE, fp);

dtmf = vox_dtmf_write(dtmfdev, buffer, n);if (dtmf) {

printf("DTMF tone %s received\n", dtmf);

if ((result = vox_dtmf_word(chdev, dtmf))) { //A previously loaded and activated DTMF grammar is requiredprintf("DTMF tone valid: %s returned\n", result);

}break;

}

state = vox_vsd_write(vsddev, buffer, n);if (!bVoice && state!=VVX_INIT && state!= VVX_SILENCE)

bVoice = true;

if (bVoice && n>0)n = vox_recstr_write(recdev, buffer, n);

}while (n == BUFFER_SIZE);

fclose(fp);

vox_dtmf_close(chdev, dtmfdev);vox_vsd_close(chdev, vsddev);vox_recstr_close(chdev, recdev);

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Library SDK 145

Page 156: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

3. Ejemplo de uso del reconocimiento natural basado en modelosestadísticos (SLM)

Ejemplo 4.3. Ejemplo de reconocimiento SLM

Este ejemplo pretende mostrar cómo debe usarse Verbio cuando se desee realizar reconocimiento de en "hablanatural", basado en modelos estadísticos del lenguaje (SLM).

#include <windows.h>#include <stdio.h>#include "voxlib.h"

#define USE_CALLBACK#define MAXINDEX 1024

#ifdef USE_CALLBACKstatic int VVI_callback (const char *result, unsigned long score, size_t ntfyId){

if (result) {printf("%s (%lu) ", result, score);

}

return 0;}#endif

int main(int argc, char *argv[]){

int dev = 0, nind, ivcb, timeout = -1;char *information = 0;

int index[MAXINDEX];float score[MAXINDEX];

vox_setparm(-1, VXGB_DEFSERVER, "127.0.0.1");vox_setparm(-1, VXGB_NETTIMEOUT, &timeout);

if (vox_asr_init(CFG_SPANISH16K, LNG_SPANISH) == -1)return -1;

// Get Vox Product Versionunsigned long dwfilever = 0, dwprodver = 0;vox_GetDllVersion(&dwfilever, &dwprodver);printf("VVI TEST. VOXLIB %d.%02d\n", dwprodver>>16, dwprodver & 0xFFFF);printf("------------------\n");

if (vox_getparm(-1, VXGB_START_VIT, &information) == 0)printf("Configuraciones SLM disponibles: %s\n", information);

if (vox_getparm(-1, VXGB_START_SLM, &information) == 0)printf("\tModelos SLM disponibles: %s\n", information);

while (1) {// Load vvi grammarif ((ivcb = vox_loadvcb(dev, "vvi:grammar/generic", 0)) == -1){ vox_libclose(); return -1; }

// Activate vvi grammarif (vox_activatevcb(dev, ivcb, 0) == -1){ vox_libclose(); return -1; }

#ifdef USE_CALLBACK// Set callback

vox_RegisterVVICallback(dev, VVI_callback);#endif

VX_RSP rsp;vox_clrrsp(&rsp);rsp.maxsil = 300;

if (vox_recstr(dev, "vvi.esu", &rsp, MC_MULAW) < 0){ vox_libclose(); return -1; }

#ifndef USE_CALLBACKif ((nind = vox_recind(dev, MAXINDEX, index, score, 0)) < 0){ vox_libclose(); return -1; }

if (nind == 0) {printf("Recognition finished due to: %s\n", vox_word(dev, index[0]));

}else {

for (int i=0; i<nind; i++) {printf("%s (%.2f) ", vox_word(dev, index[i]), score[i]);

}}

#endifvox_deactivatevcb(dev, ivcb, 0);vox_unloadvcb(dev, ivcb, 0);

}

vox_setvcb(dev, NULL, 0);

Capítulo 4. Código de ejemplos en C/C++

146 Referencia de las funciones del Library SDK Verbio Technologies

Page 157: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

vox_libclose();

printf("Press return to continue");getchar();return 0;

}

Capítulo 4. Código de ejemplos en C/C++

Verbio Technologies Referencia de las funciones del Library SDK 147

Page 158: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

4. Ejemplo de ASV

Ejemplo 4.4. Ejemplo de Verbio Library para verificación del locutor

#include <stdio.h>#include "voxlib.h"

int main(int argc, char *argv[]){

int dev = 0, ret = 0;const char *server = "127.0.0.1";ASV_SPKINFO info;float score;

if (server)vox_setparm(-1, VXGB_DEFSERVER, server);

/* Init VOX library */

if ((vox_asr_init(CFG_SPANISH, LNG_SPANISH) < 0) || (vox_asv_init() < 0)) {printf("*** ERROR: %s failed. %s ***\n", "vox_libinit", ATVOX_ERRMSGP(-1));return(ATVOX_LASTERR(-1));

}

/* Training */

if ((vox_asv_addfile(dev, "1234", "1234_0294653871.wav", "0294653871", MC_WAVE) < 0) ||(vox_asv_addfile(dev, "1234", "1234_3250948716.wav", "3250948716", MC_WAVE) < 0) ||(vox_asv_addfile(dev, "1234", "1234_6940582713.wav", "6940582713", MC_WAVE) < 0) ||(vox_asv_addfile(dev, "1234", "1234_7182539460.wav", "7182539460", MC_WAVE) < 0) ||(vox_asv_addfile(dev, "1234", "1234_8450629713.wav", "8450629713", MC_WAVE) < 0)) {printf("*** ERROR: %s failed. %s ***\n", "vox_asv_addfile", ATVOX_ERRMSGP(dev));ret = ATVOX_LASTERR(dev);goto error;

}

if (vox_asv_train(dev, "1234", 0, 0, 0) < 0) {printf("*** ERROR: %s failed. %s ***\n", "vox_asv_train", ATVOX_ERRMSGP(dev));ret = ATVOX_LASTERR(dev);goto error;

}

/* Speaker info */

if ((ret = vox_asv_spkinfo(dev, "1234", &info)) < 0) {printf("*** ERROR: %s failed. %s ***\n", "vox_asv_spkinfo", ATVOX_ERRMSGP(dev));ret = ATVOX_LASTERR(dev);goto error;

}if (ret >= 1) {

printf("Total audio files: %u\n", info.num_files);printf("Time from last addition (hrs): %u\n", info.files_age);printf("Speech actually processed (sec): %.3f\n\n", (float)info.speech_ms/1000.0F);

}

/* Verifying */if (ret == 2) {

if ((ret = vox_asv_verify(dev, "1234", "1234_3578091426.wav", "3578091426", &score, MC_WAVE)) < 0) {printf("*** ERROR: %s failed. %s ***\n", "vox_asv_verify", ATVOX_ERRMSGP(dev));ret = ATVOX_LASTERR(dev);goto error;

}else if (ret == 1)

printf("file matches user voiceprint (score %.1f)\n", score);else

printf("file does not match user voiceprint (score %.1f)\n", score);}

error:vox_libclose();return(ret);

}

Capítulo 4. Código de ejemplos en C/C++

148 Referencia de las funciones del Library SDK Verbio Technologies

Page 159: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

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. El fichero de guía vdemo.gui es un listado de ficheros de audiopregrabados con algún nombre de la lista, etiquetados de manera que posteriormente se pueda validar larespuesta del reconocimiento.

comandos.txt

REPEAT Repetir //Repetirá la preguntaHOME Inicio //Empezará de nuevo el diálogoHELP Ayuda //Dictará un mensaje más preciso

vdemo.txt

Eduardo CampilloAsunción ChineaMarta CuencaEmilio DobladoGuillermo EstradaMaría FríasSergio GalíndezEloy de la FuenteEnrique HurtadoPablo JiménezFrancisco LunaFernando MayoralSusana MartínezGermán MoralesAlfonso MorilloJuan OlivaInmaculada SánchezGloria MachadoPilar ZaragozaIrene PonsaJose RiveiroMarcial RodríguezJorge SánchezAlberto SalvadorHéctor OsorioCarmen PuenteCarolina SegoviaAlejandro TarridaLeonardo TorontoJesús UrrubietaDepartamento ComercialDepartamento TécnicoProveedoresAdministraciónDirección

vdemo.gui

DEMO0001 Eloy de la FuenteDEMO0002 Francisco LunaDEMO0003 ProveedoresDEMO0004 Alberto SalvadorDEMO0005 Guillermo EstradaDEMO0006 Sergio GalíndezDEMO0007 José Mariño

Page 160: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

Apéndice A. Ficheros utilizados por losejemplos

150 Referencia de las funciones del Library SDK Verbio Technologies

Page 161: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

ÍndiceA

ASV Speaker InformationASV_SPKINFO, 127

CCliente-Servidor

cerrar conexión, 100desconexiones, 85

DDefinición de parámetros, 129Detección de la voz

ejecución, 115finalización, 112inicialización, 113parámetros, 24

Detección de tonos DTMFejecución, 31finalización, 28inicialización, 29

EErrores

obtención, 32, 42

GGramáticas

activación, 4carga, 46, 47desactivación, 25descarga, 110establecimiento, 98preparación, 22, 59, 61, 64, 66

IInicialización

recursos ASR, 8recursos ASR y TTS, 44Recursos ASV, 13recursos TTS, 104

LLiberación

recursos ASR y TTS, 43, 103Licencias

reconocimiento, 33, 39síntesis, 37, 40

NNúmero de serie, 91

PParámetros

asignación, 97obtención, 36

RRecognize String Parameter

VX_RSP, 122Reconocimiento

detener, 102ejecución, 75, 77, 83finalización, 79función de callback, 84información adicional, 137inicialización, 80liberación de recursos, 69, 81número de resultados, 51obtención de los resultados, 30, 116, 117obtención de resultados, 49, 73parámetros, 23reserva de un recurso, 71, 82tipo de gramática, 21vocabulario, 41

Reconocimiento del hablaobtención de los resultados, 118

Recursosliberación, 27, 43, 103

SSAPI

MODEATTRIBUTES, 128SAPI 4.0

abrir, 87, 89cerrar, 86seleccionar, 90

Síntesisejecución, 56finalización, 54inicialización, 55

Síntesis del hablaconfiguración, 92, 95, 106, 108detener, 101ejecución, 52liberación de recursos, 57reserva de un recurso, 58

VVAD, Voice Activity Detection

VAD_PRM, 123VAD_PRM

inicialización, 24Verificación del locutor

Creación de la huella vocal, 16Entrenamiento, 11Usuarios registrados, 14Verificación, 19

Versiónobtención, 35

Vocabulariosactivación, 4carga, 46, 47desactivación, 25descarga, 110establecimiento, 94, 98obtención, 41preparación, 6, 22, 59, 61, 64, 66

Page 162: Referencia de las funciones del Library SDK - Verbio · 2019-10-17 · desarrollos es aconsejable utilizar la Advanced SDK, puesto que ésta facilita el uso de las nuevas funcionalidades

VX_RSPinicialización, 23

Índice

152 Referencia de las funciones del Library SDK Verbio Technologies