Glass XE17.1 - 自定义语音命令坏了吗?

时间:2014-05-15 09:49:35

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

我已按照官方文档中的确切步骤操作,但仍无法让我的应用程序开始使用自定义语音命令。遵循的步骤是:

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清单部分如下:

<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>

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

2 个答案:

答案 0 :(得分:6)

仔细研究这个问题,我没有看到任何突然出现的错误信息。因此,我创建了一个使用自定义语音命令启动的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 /值/ 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的链接,它仍提供有关使用自定义语音命令的说明。而且,从我的测试来看,他们仍然可以工作。

答案 1 :(得分:-3)

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

审核this