gpt4 book ai didi

android - Glass 语音命令与给定列表中最接近的匹配项

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:02 28 4
gpt4 key购买 nike

使用 Glass,您可以通过“确定,Glass”菜单启动应用程序,它似乎会选择最近的匹配项,除非命令相距数英里,而且您可以清楚地看到命令列表。
无论如何从应用程序内部或语音提示(在初始应用程序触发后)给出类似列表并返回最接近的匹配项。

随机(非现实世界)示例,一个向您显示颜色的应用,“OK Glass,显示红色”

'show the colour' 可能是你的语音触发器,并且似乎在'最近的邻居'方法中与玻璃匹配,但是'red'只是作为自由文本读入并且很容易被误认为是'dread'或' head”,甚至是“read”,因为无法区分“read”和“red”。

有没有办法将预先批准的选项列表(红色、绿色、蓝色、橙色*等)传递到这个阶段,或者传递到应用程序内的另一个语音提示,以便用户可以看到列表并获得当存在一组有限的预期响应时(例如主要的 ok 玻璃屏幕),结果更准确?

*好吧,没有什么和橙色押韵的,我们在那里可能很安全

最佳答案

Google GDK 尚不支持此功能。但是,一些库中已经提供了必要的功能,只要 GDK 本身不支持这些功能,您就可以使用它们。你必须做的:

  1. 从您的 Glass 中拉取 GlassVoice.apk:adb pull/system/app/GlassVoice.apk

  2. 使用 dex2jar 将此 apk 转换为 jar 文件。

  3. 将 jar 文件添加到您的构建路径

现在你可以像这样使用这个库了:

public class VoiceActivity extends Activity {

private VoiceInputHelper mVoiceInputHelper;
private VoiceConfig mVoiceConfig;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.voice_activity);

String[] items = {"red", "green", "blue", "orange"};
mVoiceConfig = new VoiceConfig("MyVoiceConfig", items);
mVoiceInputHelper = new VoiceInputHelper(this, new MyVoiceListener(mVoiceConfig),
VoiceInputHelper.newUserActivityObserver(this));
}

@Override
protected void onResume() {
super.onResume();
mVoiceInputHelper.addVoiceServiceListener();
}

@Override
protected void onPause() {
super.onPause();
mVoiceInputHelper.removeVoiceServiceListener();
}

public class MyVoiceListener implements VoiceListener {
protected final VoiceConfig voiceConfig;

public MyVoiceListener(VoiceConfig voiceConfig) {
this.voiceConfig = voiceConfig;
}

@Override
public void onVoiceServiceConnected() {
mVoiceInputHelper.setVoiceConfig(mVoiceConfig, false);
}

@Override
public void onVoiceServiceDisconnected() {

}

@Override
public VoiceConfig onVoiceCommand(VoiceCommand vc) {
String recognizedStr = vc.getLiteral();
Log.i("VoiceActivity", "Recognized text: "+recognizedStr);

return voiceConfig;
}

@Override
public FormattingLogger getLogger() {
return FormattingLoggers.getContextLogger();
}

@Override
public boolean isRunning() {
return true;
}

@Override
public boolean onResampledAudioData(byte[] arg0, int arg1, int arg2) {
return false;
}

@Override
public boolean onVoiceAmplitudeChanged(double arg0) {
return false;
}

@Override
public void onVoiceConfigChanged(VoiceConfig arg0, boolean arg1) {

}
}

}

关于android - Glass 语音命令与给定列表中最接近的匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21168267/

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