Generic Speech Recognition API. More...
#include "asterisk.h"
#include "asterisk/channel.h"
#include "asterisk/module.h"
#include "asterisk/lock.h"
#include "asterisk/linkedlists.h"
#include "asterisk/cli.h"
#include "asterisk/term.h"
#include "asterisk/speech.h"
Go to the source code of this file.
Data Structures | |
struct | engines |
Functions | |
static void | __reg_module (void) |
static void | __unreg_module (void) |
int | ast_speech_change (struct ast_speech *speech, const char *name, const char *value) |
Change an engine specific attribute. More... | |
int | ast_speech_change_results_type (struct ast_speech *speech, enum ast_speech_results_type results_type) |
Change the type of results we want. More... | |
int | ast_speech_change_state (struct ast_speech *speech, int state) |
Change state of a speech structure. More... | |
int | ast_speech_destroy (struct ast_speech *speech) |
Destroy a speech structure. More... | |
int | ast_speech_dtmf (struct ast_speech *speech, const char *dtmf) |
Signal to the engine that DTMF was received. More... | |
int | ast_speech_grammar_activate (struct ast_speech *speech, const char *grammar_name) |
Activate a loaded (either local or global) grammar. More... | |
int | ast_speech_grammar_deactivate (struct ast_speech *speech, const char *grammar_name) |
Deactivate a loaded grammar on a speech structure. More... | |
int | ast_speech_grammar_load (struct ast_speech *speech, const char *grammar_name, const char *grammar) |
Load a local grammar on a speech structure. More... | |
int | ast_speech_grammar_unload (struct ast_speech *speech, const char *grammar_name) |
Unload a local grammar from a speech structure. More... | |
struct ast_speech * | ast_speech_new (const char *engine_name, int formats) |
Create a new speech structure using the engine specified. More... | |
int | ast_speech_register (struct ast_speech_engine *engine) |
Register a speech recognition engine. More... | |
int | ast_speech_results_free (struct ast_speech_result *result) |
Free a list of results. More... | |
struct ast_speech_result * | ast_speech_results_get (struct ast_speech *speech) |
Return the results of a recognition from the speech structure. More... | |
void | ast_speech_start (struct ast_speech *speech) |
Start speech recognition on a speech structure. More... | |
int | ast_speech_unregister (const char *engine_name) |
Unregister a speech recognition engine. More... | |
int | ast_speech_write (struct ast_speech *speech, void *data, int len) |
Write in signed linear audio to be recognized. More... | |
ASTERISK_FILE_VERSION (__FILE__,"$Revision: 368738 $") | |
static struct ast_speech_engine * | find_engine (const char *engine_name) |
Find a speech recognition engine of specified name, if NULL then use the default one. More... | |
static int | load_module (void) |
static int | unload_module (void) |
Variables | |
static struct ast_module_info | __mod_info = { .name = AST_MODULE, .flags = AST_MODFLAG_GLOBAL_SYMBOLS | AST_MODFLAG_LOAD_ORDER , .description = "Generic Speech Recognition API" , .key = "This paragraph is copyright (c) 2006 by Digium, Inc. \In order for your module to load, it must return this \key via a function called \"key\". Any code which \includes this paragraph must be licensed under the GNU \General Public License version 2 or later (at your \option). In addition to Digium's general reservations \of rights, Digium expressly reserves the right to \allow other parties to license this paragraph under \different terms. Any use of Digium, Inc. trademarks or \logos (including \"Asterisk\" or \"Digium\") without \express written permission of Digium, Inc. is prohibited.\n" , .buildopt_sum = "ac1f6a56484a8820659555499174e588" , .load = load_module, .unload = unload_module, .load_pri = AST_MODPRI_APP_DEPEND, } |
static struct ast_module_info * | ast_module_info = &__mod_info |
static struct ast_speech_engine * | default_engine = NULL |
static struct engines | engines = { .first = NULL, .last = NULL, .lock = { PTHREAD_RWLOCK_INITIALIZER , NULL, 1 } , } |
Generic Speech Recognition API.
Definition in file res_speech.c.
|
static |
Definition at line 347 of file res_speech.c.
|
static |
Definition at line 347 of file res_speech.c.
int ast_speech_change | ( | struct ast_speech * | speech, |
const char * | name, | ||
const char * | value | ||
) |
Change an engine specific attribute.
Definition at line 170 of file res_speech.c.
References ast_speech_engine::change, and ast_speech::engine.
Referenced by handle_speechset(), and speech_engine_write().
int ast_speech_change_results_type | ( | struct ast_speech * | speech, |
enum ast_speech_results_type | results_type | ||
) |
Change the type of results we want.
Definition at line 264 of file res_speech.c.
References ast_speech_engine::change_results_type, ast_speech::engine, and ast_speech::results_type.
Referenced by speech_results_type_write().
int ast_speech_change_state | ( | struct ast_speech * | speech, |
int | state | ||
) |
Change state of a speech structure.
Definition at line 249 of file res_speech.c.
References ast_set_flag, AST_SPEECH_SPOKE, AST_SPEECH_STATE_WAIT, ast_speech::state, and state.
Referenced by ast_speech_new(), handle_speechrecognize(), and speech_background().
int ast_speech_destroy | ( | struct ast_speech * | speech | ) |
Destroy a speech structure.
Definition at line 224 of file res_speech.c.
References ast_free, ast_mutex_destroy, ast_speech_results_free(), ast_speech_engine::destroy, ast_speech::engine, ast_speech::lock, ast_speech::processing_sound, and ast_speech::results.
Referenced by destroy_callback(), handle_speechdestroy(), launch_asyncagi(), run_agi(), and speech_create().
int ast_speech_dtmf | ( | struct ast_speech * | speech, |
const char * | dtmf | ||
) |
Signal to the engine that DTMF was received.
Definition at line 155 of file res_speech.c.
References AST_SPEECH_STATE_READY, ast_speech_engine::dtmf, ast_speech::engine, and ast_speech::state.
Referenced by speech_background().
int ast_speech_grammar_activate | ( | struct ast_speech * | speech, |
const char * | grammar_name | ||
) |
Activate a loaded (either local or global) grammar.
Activate a grammar on a speech structure.
Definition at line 67 of file res_speech.c.
References ast_speech_engine::activate, and ast_speech::engine.
Referenced by handle_speechactivategrammar(), and speech_activate().
int ast_speech_grammar_deactivate | ( | struct ast_speech * | speech, |
const char * | grammar_name | ||
) |
Deactivate a loaded grammar on a speech structure.
Deactivate a grammar on a speech structure.
Definition at line 73 of file res_speech.c.
References ast_speech_engine::deactivate, and ast_speech::engine.
Referenced by handle_speechdeactivategrammar(), and speech_deactivate().
int ast_speech_grammar_load | ( | struct ast_speech * | speech, |
const char * | grammar_name, | ||
const char * | grammar | ||
) |
Load a local grammar on a speech structure.
Load a grammar on a speech structure (not globally)
Definition at line 79 of file res_speech.c.
References ast_speech::engine, and ast_speech_engine::load.
Referenced by handle_speechloadgrammar(), and speech_load().
int ast_speech_grammar_unload | ( | struct ast_speech * | speech, |
const char * | grammar_name | ||
) |
Unload a local grammar from a speech structure.
Unload a grammar.
Definition at line 85 of file res_speech.c.
References ast_speech::engine, and ast_speech_engine::unload.
Referenced by handle_speechunloadgrammar(), and speech_unload().
struct ast_speech* ast_speech_new | ( | const char * | engine_name, |
int | formats | ||
) |
Create a new speech structure using the engine specified.
Create a new speech structure.
Definition at line 176 of file res_speech.c.
References ast_best_codec(), ast_calloc, AST_FORMAT_SLINEAR, ast_free, ast_mutex_destroy, ast_mutex_init, ast_speech_change_state(), AST_SPEECH_STATE_NOT_READY, ast_speech_engine::create, ast_speech::engine, find_engine(), ast_speech::format, format, ast_speech_engine::formats, ast_speech::lock, and ast_speech::results.
Referenced by handle_speechcreate(), and speech_create().
int ast_speech_register | ( | struct ast_speech_engine * | engine | ) |
Register a speech recognition engine.
Definition at line 272 of file res_speech.c.
References ast_log(), AST_RWLIST_INSERT_HEAD, AST_RWLIST_UNLOCK, AST_RWLIST_WRLOCK, ast_verb, ast_speech_engine::create, ast_speech_engine::destroy, ast_speech::engine, find_engine(), LOG_WARNING, ast_speech_engine::name, and ast_speech_engine::write.
int ast_speech_results_free | ( | struct ast_speech_result * | result | ) |
Free a list of results.
Free a set of results.
Definition at line 97 of file res_speech.c.
References ast_free, AST_LIST_NEXT, ast_speech_result::grammar, and ast_speech_result::text.
Referenced by ast_speech_destroy(), and ast_speech_start().
struct ast_speech_result* ast_speech_results_get | ( | struct ast_speech * | speech | ) |
Return the results of a recognition from the speech structure.
Get speech recognition results.
Definition at line 91 of file res_speech.c.
References ast_speech::engine, and ast_speech_engine::get.
Referenced by handle_speechrecognize(), and speech_background().
void ast_speech_start | ( | struct ast_speech * | speech | ) |
Start speech recognition on a speech structure.
Indicate to the speech engine that audio is now going to start being written.
Definition at line 123 of file res_speech.c.
References ast_clear_flag, AST_SPEECH_HAVE_RESULTS, AST_SPEECH_QUIET, ast_speech_results_free(), AST_SPEECH_SPOKE, ast_speech::engine, ast_speech::results, and ast_speech_engine::start.
Referenced by handle_speechrecognize(), speech_background(), and speech_start().
int ast_speech_unregister | ( | const char * | engine_name | ) |
Unregister a speech recognition engine.
Definition at line 303 of file res_speech.c.
References AST_RWLIST_FIRST, AST_RWLIST_REMOVE_CURRENT, AST_RWLIST_TRAVERSE_SAFE_BEGIN, AST_RWLIST_TRAVERSE_SAFE_END, AST_RWLIST_UNLOCK, AST_RWLIST_WRLOCK, ast_strlen_zero(), ast_verb, and ast_speech_engine::name.
int ast_speech_write | ( | struct ast_speech * | speech, |
void * | data, | ||
int | len | ||
) |
Write in signed linear audio to be recognized.
Write audio to the speech engine.
Definition at line 145 of file res_speech.c.
References AST_SPEECH_STATE_READY, ast_speech::engine, ast_speech::state, and ast_speech_engine::write.
Referenced by handle_speechrecognize(), and speech_background().
ASTERISK_FILE_VERSION | ( | __FILE__ | , |
"$Revision: 368738 $" | |||
) |
|
static |
Find a speech recognition engine of specified name, if NULL then use the default one.
Definition at line 47 of file res_speech.c.
References AST_RWLIST_RDLOCK, AST_RWLIST_TRAVERSE, AST_RWLIST_UNLOCK, ast_strlen_zero(), default_engine, and ast_speech_engine::name.
Referenced by ast_speech_new(), and ast_speech_register().
|
static |
Definition at line 338 of file res_speech.c.
References AST_MODULE_LOAD_SUCCESS.
|
static |
Definition at line 332 of file res_speech.c.
|
static |
Definition at line 347 of file res_speech.c.
|
static |
Definition at line 347 of file res_speech.c.
|
static |
Definition at line 44 of file res_speech.c.
Referenced by find_engine().