Page 1 of 1

如何使用 SR 相关的 API?比如把人工智能语言设置为中文

Posted: Mon Jun 27, 2022 1:10 pm
by ssssss
在factory_demo的例程中,settings.c文件中有将默认的系统参数设置为中文 SR_LANG_CN,但是编译并烧录后没有变化

Code: Select all

static const sys_param_t g_default_sys_param = {
    .need_hint = 1,
    .sr_lang = SR_LANG_CN,
    .volume = 70, // default volume is 70% 
};
1.请问如何设置为中文?
2.是否有详细的API文档?

Re: 如何使用 SR 相关的 API?比如把人工智能语言设置为中文

Posted: Wed Jun 29, 2022 7:42 am
by ESP_ZhouL
这里要生效需要擦掉nvs分区保存的数据
你可以通过调用https://github.com/espressif/esp-box/blob/a45ee1e985c95fb0108c65814b3c7344ad035a0f/examples/factory_demo/main/app/app_sr.h#L74 来切换语言

Re: 如何使用 SR 相关的 API?比如把人工智能语言设置为中文

Posted: Wed Jun 29, 2022 12:40 pm
by ssssss
我在这里能否设置为中文? factory_demo/main/app/app_sr.c : app_sr_start()

Code: Select all

esp_err_t app_sr_start(bool record_en)
{

......

    esp_task_wdt_reset();
    g_sr_data->afe_handle = &ESP_AFE_HANDLE;
    afe_config_t afe_config = AFE_CONFIG_DEFAULT();
    afe_config.aec_init = false;
    // afe_config.vad_init = false;
    g_sr_data->afe_data = g_sr_data->afe_handle->create_from_config(&afe_config);
    const sys_param_t *param = settings_get_parameter();
    g_sr_data->lang = SR_LANG_MAX;
    ret = app_sr_set_language(param->sr_lang); // <<<<<<<<<<<在此处直接设置吗?我改成 app_sr_set_language(SR_LANG_CN) 后,发现可以听懂中文了,但是回答的依然是英语 OK,这是为什么?
    ESP_GOTO_ON_FALSE(ESP_OK == ret, ESP_FAIL, err, TAG,  "Failed to set language");

.......

    app_sr_stop();
    return ret;
}

Re: 如何使用 SR 相关的 API?比如把人工智能语言设置为中文

Posted: Mon Jul 04, 2022 4:10 am
by ESP_ZhouL
app_sr_start() 里面仅仅是把sr的语言改了,nvs保存的参数还是英文,所以播报还是英文,你要改语言其实可以进入工厂模式来修改
factroy_mode.jpg
factroy_mode.jpg (77.6 KiB) Viewed 6541 times
也可以参照https://github.com/espressif/esp-box/blob/master/examples/factory_demo/main/gui/ui_factory_mode.c

Re: 如何使用 SR 相关的 API?比如把人工智能语言设置为中文

Posted: Mon Jul 04, 2022 12:34 pm
by ssssss
好的,谢谢