Esempio n. 1
0
mrcp_message_t* SetParamSession::CreateSetParams3(mrcp_channel_t* pMrcpChannel)
{
    mrcp_message_t* pMrcpMessage = CreateMrcpMessage(pMrcpChannel,RECOGNIZER_SET_PARAMS);
    if(!pMrcpMessage)
        return NULL;

    mrcp_generic_header_t* pGenericHeader;
    /* get/allocate generic header */
    pGenericHeader = (mrcp_generic_header_t*) mrcp_generic_header_prepare(pMrcpMessage);
    if(pGenericHeader)
    {
        apr_pool_t* pool = GetSessionPool();
        /* set generic header fields */
        apt_pair_arr_t* pVSP = apt_pair_array_create(3,pool);
        if(pVSP)
        {
            apt_str_t name;
            apt_str_t value;

            apt_string_set(&name,"confidencelevel");
            apt_string_set(&value,"500");
            apt_pair_array_append(pVSP,&name,&value,pool);

            apt_string_set(&name,"sensitivity");
            apt_string_set(&value,"0.500");
            apt_pair_array_append(pVSP,&name,&value,pool);

            apt_string_set(&name,"speedvsaccuracy");
            apt_string_set(&value,"0.789");
            apt_pair_array_append(pVSP,&name,&value,pool);

            apt_string_set(&name,"timeout");
            apt_string_set(&value,"1000");
            apt_pair_array_append(pVSP,&name,&value,pool);

            apt_string_set(&name,"swirec_application_name");
            apt_string_set(&value,"UniMRCP");
            apt_pair_array_append(pVSP,&name,&value,pool);

            apt_string_set(&name,"swirec_phoneme_lookahead_beam");
            apt_string_set(&value,"-50");
            apt_pair_array_append(pVSP,&name,&value,pool);

            pGenericHeader->vendor_specific_params = pVSP;
            mrcp_generic_header_property_add(pMrcpMessage,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS);
        }
    }

    return pMrcpMessage;
}
Esempio n. 2
0
/* Create GET-PARAMS request */
static mrcp_message_t* get_params_request_create(mrcp_resource_factory_t *factory, apr_pool_t *pool)
{
    mrcp_message_t *message;
    mrcp_resource_t *resource = mrcp_resource_get(factory,MRCP_SYNTHESIZER_RESOURCE);
    if(!resource) {
        return NULL;
    }
    apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create GET-PARAMS Request");
    message = mrcp_request_create(resource,MRCP_VERSION_2,SYNTHESIZER_GET_PARAMS,pool);
    if(message) {
        apt_str_t param_name;
        apt_str_t param_value;
        mrcp_generic_header_t *generic_header;
        mrcp_synth_header_t *synth_header;
        /* get/allocate generic header */
        generic_header = mrcp_generic_header_prepare(message);
        if(generic_header) {
            /* set content id empty header */
            apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Content-ID: <empty>");
            mrcp_generic_header_name_property_add(message,GENERIC_HEADER_CONTENT_ID);

            /* set vendor specific params header */
            generic_header->vendor_specific_params = apt_pair_array_create(1,pool);
            apt_string_set(&param_name,SAMPLE_PARAM_NAME);
            apt_string_reset(&param_value);
            apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Vendor-Specific-Params: %s",param_name.buf);
            apt_pair_array_append(generic_header->vendor_specific_params,&param_name,&param_value,pool);
            mrcp_generic_header_property_add(message,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS);
        }
        /* get/allocate synthesizer header */
        synth_header = mrcp_resource_header_prepare(message);
        if(synth_header) {
            /* set voice age empty header */
            apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice-Age: <empty>");
            mrcp_resource_header_name_property_add(message,SYNTHESIZER_HEADER_VOICE_AGE);
        }
    }
    return message;
}
Esempio n. 3
0
/* Create GET-PARAMS response */
static mrcp_message_t* get_params_response_create(mrcp_resource_factory_t *factory, mrcp_message_t *request)
{
    apt_bool_t res;
    mrcp_message_t *response;
    apt_log(APT_LOG_MARK,APT_PRIO_NOTICE,"Create GET-PARAMS Response");
    response = mrcp_response_create(request,request->pool);
    if(response) {
        mrcp_generic_header_t *generic_header;
        mrcp_synth_header_t *synth_header;
        res = FALSE;
        /* get generic header */
        generic_header = mrcp_generic_header_get(request);
        if(generic_header) {
            mrcp_generic_header_t *res_generic_header = mrcp_generic_header_prepare(response);
            /* test content id header */
            if(mrcp_generic_header_property_check(request,GENERIC_HEADER_CONTENT_ID) == TRUE) {
                apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Content-ID: %s",SAMPLE_CONTENT_ID);
                apt_string_assign(&res_generic_header->content_id,SAMPLE_CONTENT_ID,response->pool);
                mrcp_generic_header_property_add(response,GENERIC_HEADER_CONTENT_ID);
                res = TRUE;
            }
            /* test vendor specific header */
            if(mrcp_generic_header_property_check(request,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS) == TRUE) {
                apt_str_t name;
                const apt_pair_t *pair;
                res_generic_header->vendor_specific_params = apt_pair_array_create(1,response->pool);
                apt_string_set(&name,SAMPLE_PARAM_NAME);
                pair = apt_pair_array_find(generic_header->vendor_specific_params,&name);
                if(pair) {
                    apt_str_t value;
                    apt_string_set(&value,SAMPLE_PARAM_VALUE);
                    apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Vendor-Specific-Params: %s=%s",name.buf,value.buf);
                    apt_pair_array_append(res_generic_header->vendor_specific_params,&name,&value,response->pool);
                }
                mrcp_generic_header_property_add(response,GENERIC_HEADER_VENDOR_SPECIFIC_PARAMS);
                res = TRUE;
            }
        }

        if(res == FALSE) {
            apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Test Generic Header");
            return NULL;
        }

        res = FALSE;
        /* get synthesizer header */
        synth_header = mrcp_resource_header_get(request);
        if(synth_header) {
            mrcp_synth_header_t *res_synth_header = mrcp_resource_header_prepare(response);
            /* test voice age header */
            if(mrcp_resource_header_property_check(request,SYNTHESIZER_HEADER_VOICE_AGE) == TRUE) {
                res_synth_header->voice_param.age = SAMPLE_VOICE_AGE;
                apt_log(APT_LOG_MARK,APT_PRIO_INFO,"Set Voice-Age: %"APR_SIZE_T_FMT,res_synth_header->voice_param.age);
                mrcp_resource_header_property_add(response,SYNTHESIZER_HEADER_VOICE_AGE);
                res = TRUE;
            }
        }
        if(res == FALSE) {
            apt_log(APT_LOG_MARK,APT_PRIO_WARNING,"Failed to Test Synthesizer Header");
            return NULL;
        }

    }
    return response;
}