VB 5/6-Tipp 0276: Spracheausgabe mit dem DirectSpeech-Control
von ActiveVB
Beschreibung
Es gibt sie, die Sprachausgabe, wenn auch sehr umfangreich in der Installation, so ist sie doch sehr leicht zu bedienen. Der Tip stellt mangels Dokumentation nur elementare Funktionen vor. Die einzubindende ActiveX-DLL verfügt aber über wesentlich mehr Methoden und Ereignisse. Vielleicht macht sich mal jemand die Müher mehr über dieses lustige Tool herauszufinden.
Update am 3. Oktober 2003: Der Sprecher ist nun fehlerfrei wählbar.
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Project1.vbp ------------- ' Die Komponente ' (XVoice.dll)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Listen-Steuerelement "List1" ' Steuerelement: Horizontale Scrollbar "HScroll1" ' Steuerelement: Kontrollkästchen-Steuerelement "Check1" ' Steuerelement: DirectSS "DirectSS1" ' Steuerelement: Textfeld "Text1" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label1" 'Bevor Sie diesen Tip starten, bitte folgendes beachten: ' ' 1. Laden Sie sich aus dem Upload-Bereich die Datei ' "SprachausgabeDLL" herunter ' ' 2. Laden Sie sich aus dem Upload-Bereich die Datei ' "Sprachausg._Modul_Deutsch" herunter ' ' 3. Starten Sie beide .exe-Dateien. Die zur Sprach- ' ausgabe benötigten DLLs werden jetzt installiert ' ' 4. Laden Sie diesen Tip in die VB-IDE ' ' 5. Binden Sie in der VB-IDE unter Pojekte/Komponenten ' die Komponente "Microsoft Direct Text-To-Speech" ' ein (durch Anhaken) ' ' 6. Starten Sie das Projekt, Fertig! Option Explicit Private Sub Command1_Click() DirectSS1.Speak Text1.Text End Sub Private Sub Check1_Click() DirectSS1.Visible = IIf(Check1.Value = vbChecked, True, False) End Sub Private Sub Form_Load() HScroll1.Min = DirectSS1.MinSpeed HScroll1.Max = DirectSS1.MaxSpeed HScroll1.Value = DirectSS1.Speed List1.AddItem DirectSS1.Speaker(1) List1.AddItem DirectSS1.Speaker(2) List1.ListIndex = 0 End Sub Private Sub HScroll1_Change() DirectSS1.Speed = HScroll1.Value End Sub Private Sub DirectSS1_TextDataStarted(ByVal hi As Long, ByVal _ lo As Long) HScroll1.Enabled = False End Sub Private Sub DirectSS1_TextDataDone(ByVal hi As Long, ByVal lo As _ Long, ByVal Flags As Long) HScroll1.Enabled = True End Sub Private Sub List1_Click() Dim x As Long x = List1.ListIndex If x <> -1 Then DirectSS1.CurrentMode = x + 1 End If End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Project1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 40 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von chris am 12.09.2009 um 17:21
Die zweite Datei ist anscheinend für Spracherkennung
Kommentar von chris am 12.09.2009 um 17:08
Nach dem die Datei unter Uploads nicht mehr verfügbar ist:
Ich hab die beiden Dateien installiert und dann ging es :)
http://activex.microsoft.com/activex/controls/sapi/spchapi.exe
http://activex.microsoft.com/activex/controls/agent2/lhttsged.exe
Kommentar von Alois am 15.05.2007 um 15:09
der Tip hat gut funktioniert.
Lässig wäre es, wenn man die eigene Stimme z.B:. irgendwie einbinden könnte.
Geht das eigentlich?
Kommentar von Razor am 27.03.2007 um 18:13
das funzt irgendwie net der gibt kein sound aus ^^
bitte um fix
Kommentar von Reinhold Kellermann am 22.12.2005 um 15:31
Besten Dank für das sample: Es hat mir geholfen und mich zu weitere interessante Herausforderungen geführt......
R. Kellermann
Kommentar von Marcus am 05.10.2005 um 11:32
Die SpachausgabeDLL und Sprachausg._Modul_Deutsch kann man finden, wenn man im Bereich UP-Download "Speech" eingibt.
Kommentar von HubHub am 20.10.2004 um 16:40
Konnte nur Speaker1-4 einstellen
Kommentar von Martin am 06.10.2004 um 06:24
Mit den 2 Liberray-Packs funktioniert es endlich !!!
Diese hier:
lhttsged.exe
spchapi.exe
Mußte bei Upload bzw. Download hier downloaden !!!
Kommentar von tom bau am 30.12.2003 um 20:11
Hallo,
wo finde ich denn die SpachausgabeDLL und Sprachausg._Modul_Deutsch ??
ich kann es auch nicht finden!!
Kommentar von am 30.08.2003 um 14:40
das list_click ereignis muss folgendermaßen geändert werden:
Dim x&
x = List1.ListIndex
If x <> -1 Then
DirectSS1.CurrentMode = x + 1
End If
Kommentar von Franz Grillmeier am 21.05.2003 um 12:30
fuktioniert zwar, aber die Änderung der CurrentMode-Eigenschafthat keinen Einfluss auf den Klang. Klingt immer wie meine alte Französisch-Lehrerin! :-)
Frage: Gibt es zum Direct Speech Control
irgendwo eine Hilfedatei o. ä.?
Kommentar von Joachim am 04.03.2003 um 21:05
Gibt es eine Möglichkeit, das Ende des Spprechens eines textes abzufragen um danach eine Aktion auszuführen?
Kommentar von Sebastian am 12.12.2002 um 19:21
Hallo,
wo finde ich denn die SpachausgabeDLL und Sprachausg._Modul_Deutsch ??
ich kanns nicht finden!!
Kommentar von am 12.12.2002 um 19:18
Kommentar von NSC am 05.12.2002 um 12:47
Hat einer Erfahrung mit der Anbindung an NAVISION???
Kommentar von Basic-Master am 08.10.2002 um 14:15
Ich habe eine Frage zu dem Tool Reco, das auch in der Speech SDK enthalten ist: Gibt es eine möglichkeit, das Training von Reco in VB selber zu programmieren ?
Kommentar von Mark Brink am 30.09.2002 um 17:11
Korrektur:
- Unter Win2K funktioniert das herunterladbare Projekt sofort und ohne Zusatzinstallationen
- Unter Win NT funktioniert das herunterladbare Projekt nur, wenn wie im Kommentar beschrieben, die beiden Komponenten aus dem Download-Bereich zuerst installiert werden.
Kommentar von Mark Brink am 30.09.2002 um 16:47
Beim mir funzt das Teil auf verschiedenen Maschinen mit Windows2K problemlos, allerdings hapert es bei Windows NT. Trotz scheinbar korrekter Registrierung von XVoice.dll bleibt der Mund stumm.
Die Datei XVoice.dll ist übrigens gemäss Information von Microsoft Teil des Lieferumfangs von Win2K und WinXP, nicht jedoch von anderen Windows-Versionen. Wer sie also braucht sollte sie aus einer Win2K-Installation rauskopieren. Vielleicht funzt es ja doch irgendwie mit anderen Betriebssystem-Versionen.
Kommentar von Andreas Greifeneder am 02.09.2002 um 11:29
Ich habe das mit der Sprachausgabe auf ein Telefon für mich so gelöst: Mittels der .filename Eigenschaft des DirectSpeech Controls speichere ich die Sprachausgabe als Wave (einfach Dateiname als String übergeben). Mit der AWCapi Komponente von Atelier Web baue ich eine Verbindung zum gewünschten Anschluss auf und spiele die Wave ab. Funktioniert soweit gut, jedoch nur mit ISDN. Laut der Dokumentation für SAPI 4.0 sollte aber auch eine direkte Verwendung via TAPI möglich sein, habe ich mir aber nicht genauer angeschaut.
Kommentar von Gerhard Thiem am 24.07.2002 um 23:10
Kann die Sprachausgabe auch über ein Modem auf ein Telefon erfogen?
Kommentar von Hannes am 22.07.2002 um 11:09
Hallo!
Weiß jemand wie man eine Sprachausgabe auf Englisch machen kann?
Braucht man da noch ein anderes Sprachmodul?
Kommentar von Jagger am 14.06.2002 um 09:31
funktioniert soweit,
habe allerdings das Problem, dass der Rechner sich bei Umlauten und "ß" total aufhängt.
Warum macht er das?
Kommentar von Michael Steiner am 14.04.2002 um 11:18
Es klappt!
Und so auch in deutsch:
DirectSS1.CurrentMode = 2
Gruß Michael
Kommentar von Renate Bröcker am 12.03.2002 um 14:46
Gibt es etwas ähnliches auch für Java?
Kommentar von Rene Jahn am 24.02.2002 um 15:50
Also ich muß sagen geht einfach super. Aber was soll ich mit der Sprachausg_Modul_Deutsch Datei? der Spricht doch auch so deutsch
Kommentar von Utzus am 11.01.2002 um 17:08
Wie bekomme ich es hin das er "Stefan" anstadt "Anna" spricht?
thx,
Utzus
Kommentar von Lochschmidt Walter am 16.12.2001 um 18:10
Ich bin heute auf dieses Beispiel gestoßen. Es ist ein toller Gag!!!Ich weis ja nicht, ob nun schon alle die Sprachausgabe.Dll gefunden haben.
Über Up-Download bin ich auch nicht hingekommen.
Wenn man aber die URL direkt im IE-Explorer eingibt, dann klappts. Das Deutschmodul steht gleich darunter.
http://www.activevb-archiv.net/cgi-bin/VBupdown/VBuplist.pl?Start=38&Cmd=pick
Kommentar von Trunner helmut am 14.12.2001 um 14:27
Bin sehr interresiert,doch leider bekomme ich immer die Fehlermeldung OLE Server nicht installiert.Wer weiß,wo ich den erhalte ???
Danke im Voraus
Trunner H.
Kommentar von Georg Nowak am 07.08.2001 um 15:14
Können Sie mir mitteilen wo ich die XVoice.dll herunterladen kann? Ohne der Datei geht leider gar nichts!
Kommentar von Lars Corneliussen am 02.06.2001 um 11:58
Das Programm zeigt bei mir nur 2 Stimmen, jeweils "Default Male Voice" an.
der erste spricht englisch, der andere Flüstert englisch.
Dabei habe ich L&H, Logox, IBM und die Microsoft Speech engine installiert.
Kommentar von Lars Corneliussen am 02.06.2001 um 11:37
kann mann die ausgabe auch in eine wave-datei leiten?
Kommentar von Werner.Falkenbach am 28.05.2001 um 21:09
Wenn man den Quellcode in Ordnung bringt spricht's auch deutsch :-)
In List1_Click()
muss es heissen : DirectSS1.CurrentMode = list1.listindex + 1
Kommentar von Werner Falkenbach am 28.05.2001 um 20:10
Der Quellcode funktioniert zwar, wenn man die entsprchenden Steuerelemente auf die Form legt. Soweit-so gut.
Aber deutsch spricht das Biest nicht. Wie bringt man das DirectSpeechControl dazu, statt der englischen die "deutschen" DLL's zu nehmen?
Kommentar von David am 22.05.2001 um 19:11
Ist ja schön und gut!Soweit war ich ja auch schon.Eigentlich bin ich nur hierauf gestoßen, da ich diese Sprachausgabe DLL gesucht habe. Blöderweise habe ich nur die XVoice.dll aber die Registryeinträge fehlen. So jetzt mein Problem. Ich scheine mich zu Blöd anzustellen aber ich finde keine SpachausgabeDLL im Upload-Bereich!HILFE
Kommentar von Ferdinand am 21.05.2001 um 19:54
Irgend wie finde ich die Sprachausgabe.dll datei nicht! Wenn ich das programm starten will kommt das die Datei fehlt:
XVoice.dll
Kommentar von LeaDer am 14.05.2001 um 11:44
Warum wird der Speicher überlastet wenn mann einen zu langen Text eingib?
Kann man nicht einfach nach z.B 30 Zeichen die Sprachausgabe stoppen und den resste danach abspielen?
Kommentar von Carsten Tröller am 05.12.2000 um 09:18
Ich finde das es absolut nett gemacht ist.Es eröffnet einem doch gleich ganz andere Perspektiven.
Kommentar von Meik Piepmeyer am 28.11.2000 um 17:47
Mit diesem Sprachausgabemodul kann man (glaube ich zumindenst) auch Sprache eingeben (durch ein Mikrofon).
Denn in diesem Donload der Sprachausgabe ist auch ein Steuerelement enthalten (Microsoft.... Dictation). Wie funktioniert dies ???
Kommentar von Rene Vögeli am 16.11.2000 um 13:36
Das DirektSpeech Control ist zwar schön und gut, aber wer richtig mit soeiner Sprachausgabe programmieren will, der downloadet sich lieber Logox3 von der Seite www.logox.de. Man muss zwar die Software bein seinen Programmen beilegen, aber diese ist kostenlos (jedenfalls die Demo) und man kann viel eine viel schönere Sprachausgabe herstellen. (Bei der Software ist das Steuerelemet dabei!)
Kommentar von Syrius am 03.11.2000 um 19:38
Seht auch mal unter http://msdn.microsoft.com/library/techart/msdn_texttosp.htm
Grüsse Syr