Autor Zpráva
jtfcobra
Profil
Ahoj libi se mi tento kod jen nevim jak prevest do PHP napr

if ( $nadiktovaneslovo=='okno' ) a udeleje akci otevri stranku nebo tak ?

Poradite? jak udelat toto


<div align="center">
  <a href="#" id="start_button" onclick="startDictation(event)">Zapnout mikrofon</a>
</div>
 
<div id="results" align="center">
  <span id="final_span" class="final"></span>
  <span id="interim_span" class="interim"></span>
</div>
 
<script type="text/javascript">
var final_transcript = '';
var recognizing = false;
 
if ('webkitSpeechRecognition' in window) {
 
  var recognition = new webkitSpeechRecognition();
 
  recognition.continuous = true;
  recognition.interimResults = true;
 
  recognition.onstart = function() {
    recognizing = true;
  };
 
  recognition.onerror = function(event) {
    console.log(event.error);
  };
 
  recognition.onend = function() {
    recognizing = false;
  };
 
  recognition.onresult = function(event) {
    var interim_transcript = '';
    for (var i = event.resultIndex; i < event.results.length; ++i) {
      if (event.results[i].isFinal) {
        final_transcript += event.results[i][0].transcript;
      } else {
        interim_transcript += event.results[i][0].transcript;
      }
    }
    final_transcript = capitalize(final_transcript);
    final_span.innerHTML = linebreak(final_transcript);
    interim_span.innerHTML = linebreak(interim_transcript);
    
  };
}
 
var two_line = /\n\n/g;
var one_line = /\n/g;
function linebreak(s) {
  return s.replace(two_line, '<p></p>').replace(one_line, '<br>');
}
 
function capitalize(s) {
  return s.replace(s.substr(0,1), function(m) { return m.toUpperCase(); });
}
 
function startDictation(event) {
  if (recognizing) {
    recognition.stop();
    return;
  }
  final_transcript = '';
  recognition.lang = 'cs-CZ';
  recognition.start();
  final_span.innerHTML = '';
  interim_span.innerHTML = '';
}
</script>
CZechBoY
Profil
K čemu to chceš v php? Na serveru ti asi nikdo zvukovku nedá :D
Pokud chceš nějak reagovat na zadaný výraz v php tak si to tam pošli ajaxem.
jtfcobra
Profil
Jde mi jen o vysledek viz nize

<span id="interim_span" class="interim"></span>

Ajax vubec netusim jak poradis?
juriad
Profil
jtfcobra:
A jak to má fungovat? To jako každý návštěvník tvé stránky má přijít do datového centra k serveru, na kterém běží PHP a tvůj web, a zašeptat mu do ouška, aby otevřel stránku? webkitSpeechRecognition je vlastnost prohlížeče s webkitovým jádrem, jinde to nepůjde.
Co uděláš v onresult je na tobě, klidně můžeš změnit udělat něco jako:
window.location = '?redirect=' + encodeURIComponent(final_transcript);
jtfcobra
Profil
Kam tohle konkretne vlozim?

window.location = '?redirect=' + encodeURIComponent(final_transcript);



Zkousel jsem tohle a to taky nejde
<?php
$hodnota = "<script> document.write(document.getElementById('interim_span').innerHTML) </script>";
echo 'Hodnota: '.($hodnota);
?>
Keeehi
Profil
jtfcobra:
Začni tím, že si pořádně nastuduješ, kde se provádí PHP, kde javascript. A pak přestaneš pokládat takto hloupé otázky.

Pokud chceš poradit, začal bych z druhého konce. Zapomeň, že existují jakékoli programovací jazyky a prostou řečí popiš, co ta tvá aplikace má dělat. Asi nějak tak, jak by to popsala tvoje babička, kdyby o počítačích nic nevěděla a uměla jen ovládat tu tvoji aplikaci.
jtfcobra
Profil
Zkouším jednu věc

Mám jeden přistroj co se dá ovládát přes PHP světlo.

Chtěl bych udělat stránku kde řekneš : zapni světlo

a stránka přijme do php text: zapni světlo a provedete přes PHP příkaz na zapnutí světla.

Prostě je to kravinka na vánoce :) Kdyby jste poradily bylo by to fajn stranku zatim studuji
Keeehi
Profil
V javascriptu z [#1] nahradíš řádky 42-45 tímto
if(final_transcript.search(/zapni světlo/i) !== -1) {
    var obrazek = new Image();
    obrazek.src = "action.php?event=turnLightOn";
} else if (final_transcript.search(/vypni světlo/i) !== -1) {
    var obrazek = new Image();
    obrazek.src = "action.php?event=turnLightOff";
}
Nejsem si jistý, jak to rozpoznávání pracuje s diakritikou a jak je na tom regulární výraz. Pro otestování funkčnosti můžeš smazat slovo světlo. Případně to nahradit bezpečnými nesmysly jako kolo a meloun.

No a jednoduchý ovládací php script může vypadat takto:
action.php
switch ($_GET["event"]) {
    case "turnLightOn":
        // php na zapnutí světla
        break;
    case "turnLightOff":
        // php na vypnutí světla
        break;
}
jtfcobra
Profil
Ty joooooooooooooooooo moc děkuji

jen mně napadlo kdybych do db sql uložil:

napr:
vypnis větlo / action.php?event=turnLightOff
vypnis větlo / action.php?event=turnLightOff
vypnis větlo / action.php?event=turnLightOff

slo by to pak načítat z databáze mysql v tom scriptu?
Keeehi
Profil
jtfcobra:
šlo by samozřejmě všechno

on ten javascript může vypadat takto:
var obrazek = new Image();
obrazek.src = "action.php?input="+encodeURIComponent(final_transcript);

a v php pak v $_GET["input"] budeš mít vždy cokoli co prohlížeč identifikoval a můžeš si s tím dělat co chceš. Třeba to vyhledávat v databázi nebo něco jiného.


Jinak tenhle pseudo AJAX obrázkem není špatné řešení, když chceš jen odesílat data. Pokud bys na stránce chtěl třeba i zobrazit nějakou odpověď z toho PHP scriptu (třeba že hlasový příkaz nebyl rozpoznán, nebo že světlo bylo rozsvíceno), pak budeš muset použít klasický AJAX.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: