예제 #1
0
/** Generate MRCPv2 recognizer header */
static apt_bool_t mrcp_v2_recog_header_generate(const mrcp_header_accessor_t *accessor, apr_size_t id, apt_str_t *value, apr_pool_t *pool)
{
	mrcp_recog_header_t *recog_header = accessor->data;
	if(id == RECOGNIZER_HEADER_CONFIDENCE_THRESHOLD) {
		return apt_float_value_generate(recog_header->confidence_threshold,value,pool);
	}
	else if(id == RECOGNIZER_HEADER_SENSITIVITY_LEVEL) {
		return apt_float_value_generate(recog_header->sensitivity_level,value,pool);
	}
	else if(id == RECOGNIZER_HEADER_SPEED_VS_ACCURACY) {
		return apt_float_value_generate(recog_header->speed_vs_accuracy,value,pool);
	}
	else if(id == RECOGNIZER_HEADER_COMPLETION_CAUSE) {
		return apt_completion_cause_generate(
			v2_completion_cause_string_table,
			RECOGNIZER_COMPLETION_CAUSE_COUNT,
			recog_header->completion_cause,
			value,
			pool);
	}
	return mrcp_recog_header_generate(recog_header,id,value,pool);
}
예제 #2
0
/** Generate MRCP recorder header */
static apt_bool_t mrcp_recorder_header_generate(const mrcp_header_accessor_t *accessor, apr_size_t id, apt_str_t *value, apr_pool_t *pool)
{
	mrcp_recorder_header_t *recorder_header = accessor->data;
	switch(id) {
		case RECORDER_HEADER_SENSITIVITY_LEVEL:
			apt_float_value_generate(recorder_header->sensitivity_level,value,pool);
			break;
		case RECORDER_HEADER_NO_INPUT_TIMEOUT:
			apt_size_value_generate(recorder_header->no_input_timeout,value,pool);
			break;
		case RECORDER_HEADER_COMPLETION_CAUSE:
		{
			apt_completion_cause_generate(
				completion_cause_string_table,
				RECORDER_COMPLETION_CAUSE_COUNT,
				recorder_header->completion_cause,
				value,
				pool);
			break;
		}
		case RECORDER_HEADER_COMPLETION_REASON:
			*value = recorder_header->completion_reason;
			break;
		case RECORDER_HEADER_FAILED_URI:
			*value = recorder_header->failed_uri;
			break;
		case RECORDER_HEADER_FAILED_URI_CAUSE:
			*value = recorder_header->failed_uri_cause;
			break;
		case RECORDER_HEADER_RECORD_URI:
			*value = recorder_header->record_uri;
			break;
		case RECORDER_HEADER_MEDIA_TYPE:
			*value = recorder_header->media_type;
			break;
		case RECORDER_HEADER_MAX_TIME:
			apt_size_value_generate(recorder_header->max_time,value,pool);
			break;
		case RECORDER_HEADER_TRIM_LENGTH:
			apt_size_value_generate(recorder_header->trim_length,value,pool);
			break;
		case RECORDER_HEADER_FINAL_SILENCE:
			apt_size_value_generate(recorder_header->final_silence,value,pool);
			break;
		case RECORDER_HEADER_CAPTURE_ON_SPEECH:
			apt_boolean_value_generate(recorder_header->capture_on_speech,value,pool);
			break;
		case RECORDER_HEADER_VER_BUFFER_UTTERANCE:
			apt_boolean_value_generate(recorder_header->ver_buffer_utterance,value,pool);
			break;
		case RECORDER_HEADER_START_INPUT_TIMERS:
			apt_boolean_value_generate(recorder_header->start_input_timers,value,pool);
			break;
		case RECORDER_HEADER_NEW_AUDIO_CHANNEL:
			apt_boolean_value_generate(recorder_header->new_audio_channel,value,pool);
			break;
		default:
			break;
	}
	return TRUE;
}
/** Generate MRCP synthesizer header */
static apt_bool_t mrcp_synth_header_generate(const mrcp_header_accessor_t *accessor, size_t id, apt_str_t *value, apr_pool_t *pool)
{
	mrcp_synth_header_t *synth_header = accessor->data;
	switch(id) {
		case SYNTHESIZER_HEADER_JUMP_SIZE:
			mrcp_speech_length_generate(&synth_header->jump_size,value,pool);
			break;
		case SYNTHESIZER_HEADER_KILL_ON_BARGE_IN:
			apt_boolean_value_generate(synth_header->kill_on_barge_in,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEAKER_PROFILE:
			*value = synth_header->speaker_profile,value;
			break;
		case SYNTHESIZER_HEADER_COMPLETION_CAUSE:
			apt_completion_cause_generate(
				completion_cause_string_table,
				SYNTHESIZER_COMPLETION_CAUSE_COUNT,
				synth_header->completion_cause,
				value,
				pool);
			break;
		case SYNTHESIZER_HEADER_COMPLETION_REASON:
			*value = synth_header->completion_reason;
			break;
		case SYNTHESIZER_HEADER_VOICE_GENDER:
			apt_string_table_value_pgenerate(
				voice_gender_string_table,
				VOICE_GENDER_COUNT,
				synth_header->voice_param.gender,
				value,
				pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_AGE:
			apt_size_value_generate(synth_header->voice_param.age,value,pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_VARIANT:
			apt_size_value_generate(synth_header->voice_param.variant,value,pool);
			break;
		case SYNTHESIZER_HEADER_VOICE_NAME:
			*value = synth_header->voice_param.name,value;
			break;
		case SYNTHESIZER_HEADER_PROSODY_VOLUME:
			mrcp_prosody_volume_generate(&synth_header->prosody_param.volume,value,pool);
			break;
		case SYNTHESIZER_HEADER_PROSODY_RATE:
			mrcp_prosody_rate_generate(&synth_header->prosody_param.rate,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEECH_MARKER:
			*value = synth_header->speech_marker;
			break;
		case SYNTHESIZER_HEADER_SPEECH_LANGUAGE:
			*value = synth_header->speech_language;
			break;
		case SYNTHESIZER_HEADER_FETCH_HINT:
			*value = synth_header->fetch_hint;
			break;
		case SYNTHESIZER_HEADER_AUDIO_FETCH_HINT:
			*value = synth_header->audio_fetch_hint;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI:
			*value = synth_header->failed_uri;
			break;
		case SYNTHESIZER_HEADER_FAILED_URI_CAUSE:
			*value = synth_header->failed_uri_cause;
			break;
		case SYNTHESIZER_HEADER_SPEAK_RESTART:
			apt_boolean_value_generate(synth_header->speak_restart,value,pool);
			break;
		case SYNTHESIZER_HEADER_SPEAK_LENGTH:
			mrcp_speech_length_generate(&synth_header->speak_length,value,pool);
			break;
		case SYNTHESIZER_HEADER_LOAD_LEXICON:
			apt_boolean_value_generate(synth_header->load_lexicon,value,pool);
			break;
		case SYNTHESIZER_HEADER_LEXICON_SEARCH_ORDER:
			*value = synth_header->lexicon_search_order;
			break;
		default:
			break;
	}
	return TRUE;
}