SAPI 5.1 mit JavaScript – Sprechende Webseiten!

Ich hatte bereits über ein schönes Programm berichtet, mit dem man (wenn man die SAPI 5.1 hat) dem PC Befehle geben kann.

Jetzt möchte ich hier einmal zeigen, was sich auf Webseiten mit dem Sprechpaket für Windows alles machen lässt, wobei ich zuerst anmerken möchte, dass die Seiten nur im Internet Explorer laufen, was für Firefox-Nutzer mit diesem Add-on aber auch kein Problem ist.

Zuerst sollte man sich natürlich SAPI 5.1 downloaden, das gibt’s hier: SAPI 5.1 (68mb). Danach erstellt man einfach eine html-Datei. In diese kommt dann erstmal das HTML-Grundgerüst, mit Body und Header und so weiter.

Texte sprechen lassen funktioniert auf eine ganz simple Weise. Man erstellt einfach ein <script> und fügt die folgenden Funktionen ein.

function init(){var VoiceObj = new ActiveXObject("Sapi.SpVoice");}
function spreche(text)
{
try
{
VoiceObj.Speak(text, 1 );
}
catch(exception)
{
alert("Fehler beim Sprechen!");
}
}
function del(){delete VoiceObj;}

Mit der Funktion spreche(„[hier kommt der zu sprechende Text rein]“) kann man jetzt einen Text vorlesen lassen. Wichtig ist auch, dass man den Body-Tag wie folgt erweitert:

<body onload="init()" onunload="del()">

Mit den beiden Funktionen wird das Sapi-Objekt initialisiert bzw. wieder gelöscht.

Die Spracherkennung ist mit JavaScript leider nicht möglich, aber das wäre auch sinnlos. Ich unterhalte mich ja schließlich auch nicht mit meinem Kühlschrank und bitte ihn, mir Essen zu machen…

Vielleicht sollte ich noch zeigen, wie man die Stimme vom Script ändert. Da gibt es die folgenden Funktionen, die man am besten einfach so in die html-Datei übernimmt.

Dazu kommt in die init()-Funktion ans Ende noch folgendes:

var VoicesToken = VoiceObj.GetVoices();
for( var i=0; i<VoicesToken.Count; i++ )
{
var oOption = document.createElement("OPTION");
stimmenauswahl.options.add(oOption);
oOption.innerText = VoicesToken.Item(i).GetDescription();
oOption.value = i;
}

In den Body-Bereich, also zwischen <body> und </body> kommt noch die Auswahl-Box für die verfügbaren Stimmen.

<SELECT id=stimmenauswahl name=stimmen onchange=anderestimme()> </SELECT>

Außerdem muss in den <script>-Bereich eine neue Funktion, anderestimme(), sonst funktioniert’s natürlich nicht.

function anderestimme() {
var i = parseInt( stimmenauswahl.value );
VoiceObj.Voice = VoiceObj.GetVoices().Item(i);
}

So, dann wäre ja jetzt alles gesagt. Fragen und Hinweise oder Kritik können gerne als Kommentar geschrieben werden.

Viel Spaß beim rumexperimentieren mit sprechenden Webseiten!

PS: Es ist empfehlenswert, den Browser mit PHP zu überprüfen, dann kann eventuell eine andere Site für den Internet Explorer aufgerufen werden, die dann sprechen kann. Für alle anderen Browser eben eine, wo die Scripte fehlen.

Edit vom 15.03.09: Der Link für den Download von SAPI 5.1 wurde aktualisiert, nachdem der alte nichtmehr funktionierte.

Advertisements

Über lemaik

Ich bin Gründer von "Web der Wunder" und interessiere mich sehr für die Informatik. Ich schreibe eigene Programme, die ich dann zum Teil auf meiner Homepage veröffentliche und programmiere Internetseiten. Außerdem mag ich Tischtennis und das Internet. ;-)
Dieser Beitrag wurde unter Computer, Internet abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Was sagst du dazu?

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s