2015-08-21 2 views
-1

Я кодирования свой собственный Джарвис (вроде, ничего ближе к железному человеку один) но еще, если оператор не не работаетесли еще, если не работает JavaScript

function ttalk(code) { 
    varpo = code; 
    if (varpo == "good morning") { 
     var currentdate = new Date(); 
     var hours = currentdate.getHours(); 
     if (hours >= 12) { 
      dn=PM; 
     } else { 
      dn=AM; 
     } 
     varso = "Good Morning, Sir. The time now is " + currentdate.getHours() + " " + currentdate.getMinutes() + dn; 
    } else if (varpo == "hello") { 
     varso = "reading your F.B. Notifications."; 
    } else { 
     varso = "Not Got That, Sir"; 
    } 

    speaker.speak("en", varso); 
} 

Когда я говорю Good Morning это делает говорить time now, но всякий раз, когда я говорю hello, он говорит Not Got That, Sir, почему?

Полный код с полем ввода, чтобы проверить это попробовать

Enter Text To Play: 
<input id="text">&nbsp;(Recognized text for voice will also appear here) 
<br><br> 
<button class="btn btn-success" onclick="stalk()">Talk It!</button> 
<button class="btn btn-success" onclick="listen()">Recognize My Voice</button> 

<script> 
    var speaker = new RobotSpeaker(); 
    var listener = new AudioListener(); 

function stalk() { 
var varpo = document.getElementById("text").value; 
if (varpo == "good morning") { 
    var currentdate = new Date(); 
    var hours = currentdate.getHours(); 
      if (hours >= 12) { dn=PM;} else {dn=AM;} 
     varso = "Good Morning, Sir. The time now is " + currentdate.getHours() + " " + currentdate.getMinutes() + dn; 
} 
else if (varpo == "hello") { 
    varso = "reading your F.B. Notifications."; 
} 
else { 
    varso = "Not Got That, Sir"; 
} 
     speaker.speak("en", varso); 
    } 
+4

Я удивлен, что получил «Доброе утро», так как у вас есть капиталы в том, что ... –

+0

Пробовали ли вы войти 'varpo' утешать? – CuriousMind

+1

В нем говорится: «Чтение ваших уведомлений F.B.». * Если я передаю «привет». Вы должны передать что-то еще. Попробуйте 'var varpo = code.trim();' – Phil

ответ

0

пожалуйста, попробуйте это использовать внутреннее сравнение строк которые JavaScript предложения.

function ttalk(code) { 
    varpo = code; 
    if (varpo.localeCompare("good morning")==0) { 
     var currentdate = new Date(); 
     var hours = currentdate.getHours(); 
     if (hours >= 12) { 
      dn=PM; 
     } else { 
      dn=AM; 
     } 
     varso = "Good Morning, Sir. The time now is " + currentdate.getHours() + " " + currentdate.getMinutes() + dn; 
    } else if (varpo.localeCompare("hello")==0) { 
     varso = "reading your F.B. Notifications."; 
    } else { 
     varso = "Not Got That, Sir"; 
    } 

    speaker.speak("en", varso); 
} 

Благодаря Amit

1

Я попробовал ваш код и его прекрасно работать только вам нужно изменить PM и AM на «PM» и «AM» соответственно.

Ниже выводится, когда я выполнил с «добрым утром»

Доброго утра, сэр. Перевод: zCarot Текущее время: Сегодня, 14:53 вечера

Когда вы пройдете "Доброе утро", это будет показано ниже. Из-за чувствительности к регистру.

нет, сэр

+1

проблема заключалась в том, что строка генерируется «API распознавания google» .. если вы вводите строку вручную, она, безусловно, работает –

+0

Yupp @DyrandzFamador, вот что я хочу сказать, проблема заключается не в случаях, ни об обрезке. – IdidntKnewIt

+0

@IdidntKnewIt, вы пытались проверить значение переменной 'code', чтобы проверить фактическое значение строки? –

Смежные вопросы