kelimesinin tamamı yerine bir giriş sözcüğünden sadece bir parça algıladı Android uygulamamda bir sorun var, bu sesli tanımlamayı kullanan bir uygulama ve Google TTS. SIRI müşterisi gibi. kullanıcı dizide verilen bir kelime söylediğinde Burada gördüğünüz gibi:Array,
String[] g = { "hallo", "heey", "hoi", "hey", "he", "hee", "hay" };
for (String strings : g) {
if (mostLikelyThingHeard.contains(strings)) {
String[] array = { "leuk dat je er bent", "heeyy" };
String randomStr = array[new Random()
.nextInt(array.length)];
tts.speak(randomStr, TextToSpeech.QUEUE_FLUSH, null);
return;
}
}
String[] f = { "haha", "hah", "ha" };
for (String strings : f) {
if (mostLikelyThingHeard.contains(strings)) {
String[] array = { "haha leuk grapje", "hiehaho" };
String randomStr = array[new Random()
.nextInt(array.length)];
tts.speak(randomStr, TextToSpeech.QUEUE_FLUSH, null);
return;
}
}
Her şey iyi çalışıyor ancak kullanıcı dediğinde "merhaba" ilk ilk iki karakter "ha" algılar. Dize dizisinde 'f' den bahsedilir. Yani bu sinir bozucu, tüm kelime algılanmadı ama sadece bir kısmı.
böyle iki dize diziler takas zaman:
String[] f = { "haha", "hah", "ha" };
for (String strings : f) {
if (mostLikelyThingHeard.contains(strings)) {
String[] array = { "haha leuk grapje", "hiehaho" };
String randomStr = array[new Random()
.nextInt(array.length)];
tts.speak(randomStr, TextToSpeech.QUEUE_FLUSH, null);
return;
}
}
String[] g = { "hallo", "heey", "hoi", "hey", "he", "hee",
"hay" };
for (String strings : g) {
if (mostLikelyThingHeard.contains(strings)) {
String[] array = { "leuk dat je er bent", "heeyy" };
String randomStr = array[new Random()
.nextInt(array.length)];
tts.speak(randomStr, TextToSpeech.QUEUE_FLUSH, null);
return;
}
}
Sonra "merhaba" ilk yerine "ha"
I 100'den fazla diziler yaparsanız Ama bu can sıkıcı olurdu algılar java'nın en iyi eşleşen kelimeyi sadece bir parça yerine bir diziden kullanmasına nasıl izin verebilirim?
Ben bunu anlamak zor biliyorum ama siz anlamıyorum eğer burada benim kaynağını bakın: http://github.com/gi097/PWS
DÜZENLEME: değiştirmek
contains
için
equals
Bu sorunu çözüyorum ama şimdi yeni bir tane var. ne: Ben gibi bir dizi oluşturursanız
:
"I am"
kullanıcı dediğinde: "Ben Giovanni duyuyorum" biz "diye am" eşitler nedeniyle artık algılanmıyor böyle bir sorun ... .
EDIT2
Ben "I" "am" "Giovanni" ama nasıl "Ben Giovanni duyuyorum" mostLikelythingHeard ayrılma ile düşünmek düzeltilebilir? Bunun yerine
mostLikelyThingHeard.contains(strings)
Kullanım
Bunun işe yarayıp yaramadığını bilmiyorum, örneğin 100 dizim varsa, parça karakter yerine tüm sözcüğü algılayacak mı? –
Evet, tüm kelimeyi karşılaştırır. Yani dizeniniz halloluysa ve dizininizde ha ve hallo olsaydı, hallo bulacak ve ha. Denemek. – SMA
Tamam, evdeyken deneyeceğim: D –