gpt4 book ai didi

c++ - 在原生 Tizen TV 上使用 Elementary 访问多次阅读文本

转载 作者:行者123 更新时间:2023-11-30 04:43:54 24 4
gpt4 key购买 nike

各位程序员大家好,

我正在尝试使用 Elementary access library 提供的文本转语音功能(来自 Enlightenment)在 tizen TV 的 native 应用程序中。

到目前为止,我已经能够阅读文本,但只有一次:当我多次调用 API 时,只有第一次调用会呈现为音频。我已经调查了 elementary access 的来源,但无法真正发现问题。

这是我的应用示例:

#include <app.h>
#include <Elementary.h>

#include <unistd.h>
#include <string>

using namespace std;

const char APP_PKG[] = "org.tizen.tts";

/// Struct to store application information and passed at start time to the efl framework
struct _appdata
{
const char *name;
Evas_Object *win;
};


static bool
_create(void *data)
{
elm_config_access_set(EINA_TRUE);
return true;
}

static bool
_control(app_control_h app_control, void *data)
{
for (int i = 1; i <= 2; i++) {
string text = to_string(i) + ". Read me please.";
elm_access_say(text.c_str());
// sleep(10);
}
return true;
}

int
main(int argc, char *argv[])
{
_appdata ad = {0,};
ad.name = APP_PKG;

ui_app_lifecycle_callback_s lifecycle_callback = {0,};

lifecycle_callback.create = _create;
lifecycle_callback.app_control = _control;

return ui_app_main(argc, argv, &lifecycle_callback, &ad);
}

我试过使用 elm_access_force_say,还在循环内移动 elm_config_access_set(EINA_TRUE),但每次句子只说一次。

Here源代码中是 elm_access_say 调用的一些代码。似乎 api 调用了 espeak 可执行文件,奇怪的是我在设备上找不到任何 espeak 可执行文件。

Tizen 提供了一个 API,用于在 native 应用程序中使用 TTS 引擎,但仅适用于移动设备和 watch (至少在文档中如此)。

如果有人曾经尝试过在原生电视上使用 TTS 引擎,或者对 Elementary access 库有更多的经验,并且愿意分享一些知识,我将非常感激。

最佳答案

如果您使用的是 Tizen 4.0 或更高版本并且您希望使用辅助功能框架多次阅读文本,请使用 elm_atspi_bridge_utils_say。下面的代码片段演示了如何读取连续的数字。

statc void reade_n_times(int n) {
char buf[32];
for (int i=1;i<=n;++i){
snprintf(bug,sizesizeof(buf), "%d", i);
elm_atspi_bridge_utils_say(buf, EINA_FALSE, say_cb, NULL);
}
}

可在此处找到 elm_atspi_bridge_utils_say 的完整规范: https://developer.tizen.org/dev-guide/tizen-iot-headed/4.0/group__Elm__Atspi__Bridge.html#gafde6945c1451cb8752c67f2aa871d12d "

关于c++ - 在原生 Tizen TV 上使用 Elementary 访问多次阅读文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57970488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com