【问题标题】:Glass XE17.1 - Custom voice commands broken?Glass XE17.1 - 自定义语音命令损坏?
【发布时间】:2014-05-15 09:49:34
【问题描述】:

我已按照官方文档中的确切步骤进行操作,但我仍然无法让我的应用开始使用自定义语音命令。步骤如下:

1 在strings.xml中为自定义语音命令添加新的字符串资源:

<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Hello World!</string> <string name="glass_voice_trigger">start example</string> </resources>

2 为语音启动定义创建一个新的 XML 文件:

<?xml version="1.0" encoding="utf-8"?>
<trigger keyword="@string/glass_voice_trigger" />

3 在 AndroidManifest.xml 中请求适当的权限:

<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />

4 manifest 部分如下所示:

<service
    android:name="pl.infoshare.sample.helloworld.HelloWorldService"
    android:icon="@drawable/ic_lap"
    android:label="@string/app_name"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
    </intent-filter>
    <meta-data
        android:name="com.google.android.glass.VoiceTrigger"
        android:resource="@xml/voice_trigger_start" />
</service>

不过,我还是无法使用语音命令启动应用程序。如果我更改为预定义的语音命令之一,应用程序会显示在时间线上,我可以使用语音命令启动它。我错过了什么吗?

【问题讨论】:

  • 一切看起来都很好。您确定您的语音定义 XML 文件正确命名为“voice_trigger_start.xml”吗?

标签: google-glass voice-recognition google-gdk


【解决方案1】:

通过这个问题,我没有看到任何不正确的东西跳出来。因此,我创建了一个small sample GDK project,它使用自定义语音命令启动,并且在我的 XE17.1 设备上运行良好。 (奖励,它演示了一个低频 LiveCard!)

尝试从 GitHub 拉下我的示例,看看是否可以使用以下命令启动它:

'OK Glass, start my awesome app'

以下是一些相关的位。

AndroidManifest.xml:

    <uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />

    <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.DeviceDefault">
        <activity
                android:name=".MainActivity"
                android:label="@string/app_name"
                android:immersive="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

        <service
                android:name=".LowFreqLiveCardService"
                android:enabled="true"
                android:exported="true"
                android:icon="@drawable/ic_launcher"
                android:label="@string/app_name">
            <intent-filter>
                <action android:name=
                                "com.google.android.glass.action.VOICE_TRIGGER"/>
            </intent-filter>
            <meta-data android:name="com.google.android.glass.VoiceTrigger"
                       android:resource="@xml/voice_trigger"/>
        </service>

    </application>

</manifest>

res/xml/voice_trigger.xml:

<?xml version="1.0" encoding="utf-8"?>
<trigger keyword="@string/custom_keyword" />

res/values/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Low Freq Demo</string>
    <string name="heart_rate">Heart Rate</string>
    <string name="custom_keyword">start my awesome app</string>

</resources>

这是voice command documentation 的链接,它仍然提供有关使用自定义语音命令的说明。而且,根据我的测试,它们仍然有效。

【讨论】:

    【解决方案2】:

    自几个版本以来,自定义语音命令需要谷歌的批准。您可以从 glass 开发者网站发送批准请求。

    评论this

    【讨论】:

    • 谢谢,我认为在 X16 后的版本中创建自己的语音命令仍然可以用于开发目的
    • @jackusz 但是你的标题说的是版本:XE17.1,所以这是更新的。
    • 注册的语音命令需要获得 Google 的批准。正如第 3 点中提到的原始海报一样,自定义命令仍应在开发中工作。您提供的链接也是如此,Glass 工作人员的这个问题/解决方案也是如此:stackoverflow.com/questions/23097828/…。我不认为这是一个正确的解决方案。
    • 这个答案不正确。我完成了文档中概述的自定义语音命令的步骤,它工作得很好。我不确定 jackusz 遇到了什么问题,但可以做到这一点。 developers.google.com/glass/develop/gdk/starting-glassware
    猜你喜欢
    • 2014-12-11
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    相关资源
    最近更新 更多