/** Parse MRCP recorder header */
static apt_bool_t mrcp_recorder_header_parse(mrcp_header_accessor_t *accessor, apr_size_t id, const apt_str_t *value, apr_pool_t *pool)
{
	apt_bool_t status = TRUE;
	mrcp_recorder_header_t *recorder_header = accessor->data;
	switch(id) {
		case RECORDER_HEADER_SENSITIVITY_LEVEL:
			recorder_header->sensitivity_level = apt_float_value_parse(value);
			break;
		case RECORDER_HEADER_NO_INPUT_TIMEOUT:
			recorder_header->no_input_timeout = apt_size_value_parse(value);
			break;
		case RECORDER_HEADER_COMPLETION_CAUSE:
			recorder_header->completion_cause = apt_size_value_parse(value);
			break;
		case RECORDER_HEADER_COMPLETION_REASON:
			recorder_header->completion_reason = *value;
			break;
		case RECORDER_HEADER_FAILED_URI:
			recorder_header->failed_uri = *value;
			break;
		case RECORDER_HEADER_FAILED_URI_CAUSE:
			recorder_header->failed_uri_cause = *value;
			break;
		case RECORDER_HEADER_RECORD_URI:
			recorder_header->record_uri = *value;
			break;
		case RECORDER_HEADER_MEDIA_TYPE:
			recorder_header->media_type = *value;
			break;
		case RECORDER_HEADER_MAX_TIME:
			recorder_header->max_time = apt_size_value_parse(value);
			break;
		case RECORDER_HEADER_TRIM_LENGTH:
			recorder_header->trim_length = apt_size_value_parse(value);
			break;
		case RECORDER_HEADER_FINAL_SILENCE:
			recorder_header->final_silence = apt_size_value_parse(value);
			break;
		case RECORDER_HEADER_CAPTURE_ON_SPEECH:
			apt_boolean_value_parse(value,&recorder_header->capture_on_speech);
			break;
		case RECORDER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_parse(value,&recorder_header->ver_buffer_utterance);
			break;
		case RECORDER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_parse(value,&recorder_header->start_input_timers);
			break;
		case RECORDER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_parse(value,&recorder_header->new_audio_channel);
			break;
		default:
			status = FALSE;
	}
	return status;
}
Example #2
0
/** Parse MRCP recognizer header */
static apt_bool_t mrcp_recog_header_parse(mrcp_recog_header_t *recog_header, apr_size_t id, const apt_str_t *value, apr_pool_t *pool)
{
	apt_bool_t status = TRUE;
	switch(id) {
		case RECOGNIZER_HEADER_N_BEST_LIST_LENGTH:
			recog_header->n_best_list_length = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_NO_INPUT_TIMEOUT:
			recog_header->no_input_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_TIMEOUT:
			recog_header->recognition_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_WAVEFORM_URI:
			recog_header->waveform_uri = *value;
			break;
		case RECOGNIZER_HEADER_COMPLETION_CAUSE:
			recog_header->completion_cause = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_RECOGNIZER_CONTEXT_BLOCK:
			recog_header->recognizer_context_block = *value;
			break;
		case RECOGNIZER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_parse(value,&recog_header->start_input_timers);
			break;
		case RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT:
			recog_header->speech_complete_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT:
			recog_header->speech_incomplete_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT:
			recog_header->dtmf_interdigit_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_TIMEOUT:
			recog_header->dtmf_term_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_CHAR:
			recog_header->dtmf_term_char = *value->buf;
			break;
		case RECOGNIZER_HEADER_FAILED_URI:
			recog_header->failed_uri = *value;
			break;
		case RECOGNIZER_HEADER_FAILED_URI_CAUSE:
			recog_header->failed_uri_cause = *value;
			break;
		case RECOGNIZER_HEADER_SAVE_WAVEFORM:
			apt_boolean_value_parse(value,&recog_header->save_waveform);
			break;
		case RECOGNIZER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_parse(value,&recog_header->new_audio_channel);
			break;
		case RECOGNIZER_HEADER_SPEECH_LANGUAGE:
			recog_header->speech_language = *value;
			break;
		case RECOGNIZER_HEADER_INPUT_TYPE:
			recog_header->input_type = *value;
			break;
		case RECOGNIZER_HEADER_MEDIA_TYPE:
			recog_header->media_type = *value;
			break;
		case RECOGNIZER_HEADER_INPUT_WAVEFORM_URI:
			recog_header->input_waveform_uri = *value;
			break;
		case RECOGNIZER_HEADER_COMPLETION_REASON:
			recog_header->completion_reason = *value;
			break;
		case RECOGNIZER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_parse(value,&recog_header->ver_buffer_utterance);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_MODE:
			recog_header->recognition_mode = *value;
			break;
		case RECOGNIZER_HEADER_CANCEL_IF_QUEUE:
			apt_boolean_value_parse(value,&recog_header->cancel_if_queue);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MAX_DURATION:
			recog_header->hotword_max_duration = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MIN_DURATION:
			recog_header->hotword_min_duration = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_INTERPRET_TEXT:
			recog_header->interpret_text = *value;
			break;
		case RECOGNIZER_HEADER_DTMF_BUFFER_TIME:
			recog_header->dtmf_buffer_time = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_CLEAR_DTMF_BUFFER:
			apt_boolean_value_parse(value,&recog_header->clear_dtmf_buffer);
			break;
		case RECOGNIZER_HEADER_EARLY_NO_MATCH:
			apt_boolean_value_parse(value,&recog_header->early_no_match);
			break;
		case RECOGNIZER_HEADER_NUM_MIN_CONSISTENT_PRONUNCIATIONS:
			recog_header->num_min_consistent_pronunciations = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_CONSISTENCY_THRESHOLD:
			recog_header->consistency_threshold = apt_float_value_parse(value);
			break;
		case RECOGNIZER_HEADER_CLASH_THRESHOLD:
			recog_header->clash_threshold = apt_float_value_parse(value);
			break;
		case RECOGNIZER_HEADER_PERSONAL_GRAMMAR_URI:
			recog_header->personal_grammar_uri = *value;
			break;
		case RECOGNIZER_HEADER_ENROLL_UTTERANCE:
			apt_boolean_value_parse(value,&recog_header->enroll_utterance);
			break;
		case RECOGNIZER_HEADER_PHRASE_ID:
			recog_header->phrase_id = *value;
			break;
		case RECOGNIZER_HEADER_PHRASE_NL:
			recog_header->phrase_nl = *value;
			break;
		case RECOGNIZER_HEADER_WEIGHT:
			recog_header->weight = apt_float_value_parse(value);
			break;
		case RECOGNIZER_HEADER_SAVE_BEST_WAVEFORM:
			apt_boolean_value_parse(value,&recog_header->save_best_waveform);
			break;
		case RECOGNIZER_HEADER_NEW_PHRASE_ID:
			recog_header->new_phrase_id = *value;
			break;
		case RECOGNIZER_HEADER_CONFUSABLE_PHRASES_URI:
			recog_header->confusable_phrases_uri = *value;
			break;
		case RECOGNIZER_HEADER_ABORT_PHRASE_ENROLLMENT:
			apt_boolean_value_parse(value,&recog_header->abort_phrase_enrollment);
			break;
		default:
			status = FALSE;
	}
	return status;
}
Example #3
0
/** Parse MRCP recognizer header */
static apt_bool_t mrcp_recog_header_parse(mrcp_recog_header_t *recog_header, apr_size_t id, const apt_str_t *value, apr_pool_t *pool)
{
	apt_bool_t status = TRUE;
	switch(id) {
		case RECOGNIZER_HEADER_N_BEST_LIST_LENGTH:
			recog_header->n_best_list_length = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_NO_INPUT_TIMEOUT:
			recog_header->no_input_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_TIMEOUT:
			recog_header->recognition_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_WAVEFORM_URI:
			apt_string_copy(&recog_header->waveform_uri,value,pool);
			break;
		case RECOGNIZER_HEADER_COMPLETION_CAUSE:
			recog_header->completion_cause = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_RECOGNIZER_CONTEXT_BLOCK:
			apt_string_copy(&recog_header->recognizer_context_block,value,pool);
			break;
		case RECOGNIZER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_parse(value,&recog_header->start_input_timers);
			break;
		case RECOGNIZER_HEADER_SPEECH_COMPLETE_TIMEOUT:
			recog_header->speech_complete_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_SPEECH_INCOMPLETE_TIMEOUT:
			recog_header->speech_incomplete_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_INTERDIGIT_TIMEOUT:
			recog_header->dtmf_interdigit_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_TIMEOUT:
			recog_header->dtmf_term_timeout = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_DTMF_TERM_CHAR:
			recog_header->dtmf_term_char = *value->buf;
			break;
		case RECOGNIZER_HEADER_FAILED_URI:
			apt_string_copy(&recog_header->failed_uri,value,pool);
			break;
		case RECOGNIZER_HEADER_FAILED_URI_CAUSE:
			apt_string_copy(&recog_header->failed_uri_cause,value,pool);
			break;
		case RECOGNIZER_HEADER_SAVE_WAVEFORM:
			apt_boolean_value_parse(value,&recog_header->save_waveform);
			break;
		case RECOGNIZER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_parse(value,&recog_header->new_audio_channel);
			break;
		case RECOGNIZER_HEADER_SPEECH_LANGUAGE:
			apt_string_copy(&recog_header->speech_language,value,pool);
			break;
		case RECOGNIZER_HEADER_INPUT_TYPE:
			apt_string_copy(&recog_header->input_type,value,pool);
			break;
		case RECOGNIZER_HEADER_MEDIA_TYPE:
			apt_string_copy(&recog_header->media_type,value,pool);
			break;
		case RECOGNIZER_HEADER_INPUT_WAVEFORM_URI:
			apt_string_copy(&recog_header->input_waveform_uri,value,pool);
			break;
		case RECOGNIZER_HEADER_COMPLETION_REASON:
			apt_string_copy(&recog_header->completion_reason,value,pool);
			break;
		case RECOGNIZER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_parse(value,&recog_header->ver_buffer_utterance);
			break;
		case RECOGNIZER_HEADER_RECOGNITION_MODE:
			apt_string_copy(&recog_header->recognition_mode,value,pool);
			break;
		case RECOGNIZER_HEADER_CANCEL_IF_QUEUE:
			apt_boolean_value_parse(value,&recog_header->cancel_if_queue);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MAX_DURATION:
			recog_header->hotword_max_duration = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_HOTWORD_MIN_DURATION:
			recog_header->hotword_min_duration = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_INTERPRET_TEXT:
			apt_string_copy(&recog_header->interpret_text,value,pool);
			break;
		case RECOGNIZER_HEADER_DTMF_BUFFER_TIME:
			recog_header->dtmf_buffer_time = apt_size_value_parse(value);
			break;
		case RECOGNIZER_HEADER_CLEAR_DTMF_BUFFER:
			apt_boolean_value_parse(value,&recog_header->clear_dtmf_buffer);
			break;
		case RECOGNIZER_HEADER_EARLY_NO_MATCH:
			apt_boolean_value_parse(value,&recog_header->early_no_match);
			break;
		default:
			status = FALSE;
	}
	return status;
}
/** Parse MRCP synthesizer header */
static apt_bool_t mrcp_synth_header_parse(mrcp_header_accessor_t *accessor, size_t id, const apt_str_t *value, apr_pool_t *pool)
{
	apt_bool_t status = TRUE;
	mrcp_synth_header_t *synth_header = accessor->data;
	switch(id) {
		case SYNTHESIZER_HEADER_JUMP_SIZE:
			mrcp_speech_length_value_parse(&synth_header->jump_size,value,pool);
			break;
		case SYNTHESIZER_HEADER_KILL_ON_BARGE_IN:
			apt_boolean_value_parse(value,&synth_header->kill_on_barge_in);
			break;
		case SYNTHESIZER_HEADER_SPEAKER_PROFILE:
			synth_header->speaker_profile = *value;
			break;
		case SYNTHESIZER_HEADER_COMPLETION_CAUSE:
			synth_header->completion_cause = apt_size_value_parse(value);
			break;
		case SYNTHESIZER_HEADER_COMPLETION_REASON:
			synth_header->completion_reason = *value;
			break;
		case SYNTHESIZER_HEADER_VOICE_GENDER:
			synth_header->voice_param.gender = apt_string_table_value_parse(voice_gender_string_table,VOICE_GENDER_COUNT,value);
			break;
		case SYNTHESIZER_HEADER_VOICE_AGE:
			synth_header->voice_param.age = apt_size_value_parse(value);
			break;
		case SYNTHESIZER_HEADER_VOICE_VARIANT:
			synth_header->voice_param.variant = apt_size_value_parse(value);
			break;
		case SYNTHESIZER_HEADER_VOICE_NAME:
			synth_header->voice_param.name = *value;
			break;
		case SYNTHESIZER_HEADER_PROSODY_VOLUME:
			mrcp_prosody_param_volume_parse(&synth_header->prosody_param.volume,value,pool);
			break;
		case SYNTHESIZER_HEADER_PROSODY_RATE:
			mrcp_prosody_param_rate_parse(&synth_header->prosody_param.rate,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEECH_MARKER:
			synth_header->speech_marker = *value;
			break;
		case SYNTHESIZER_HEADER_SPEECH_LANGUAGE:
			synth_header->speech_language = *value;
			break;
		case SYNTHESIZER_HEADER_FETCH_HINT:
			synth_header->fetch_hint = *value;
			break;
		case SYNTHESIZER_HEADER_AUDIO_FETCH_HINT:
			synth_header->audio_fetch_hint = *value;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI:
			synth_header->failed_uri = *value;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI_CAUSE:
			synth_header->failed_uri_cause = *value;
			break;
		case SYNTHESIZER_HEADER_SPEAK_RESTART:
			apt_boolean_value_parse(value,&synth_header->speak_restart);
			break;
		case SYNTHESIZER_HEADER_SPEAK_LENGTH:
			mrcp_speech_length_value_parse(&synth_header->speak_length,value,pool);
			break;
		case SYNTHESIZER_HEADER_LOAD_LEXICON:
			apt_boolean_value_parse(value,&synth_header->load_lexicon);
			break;
		case SYNTHESIZER_HEADER_LEXICON_SEARCH_ORDER:
			synth_header->lexicon_search_order = *value;
			break;
		default:
			status = FALSE;
	}
	return status;
}