Deutsch
Quelltexte/ Codesnippets

Sapi Sprachausgabe

 
- Seite 1 -



Frank
Abbing
Ein kleines Testprogramm von mir. Happert es noch irgendwo?

5 kB
Hochgeladen:17.06.2006
Ladeanzahl373
Herunterladen
 
17.06.2006  
 



 
- Seite 3 -



Frank
Abbing
[quote:3dd6bef327]Die installierten Stimmen stehen in der Registry unter
[HKEY_LOCAL_MACHINESOFTWAREMicrosoftSpeechVoicesTokens]
Jede hat einen Unterschlüssel ATTRIBUTES, in dem alles drin steht, was es zu wissen gibt.
Soweit ich das verstanden habe, lesen die entsprechenden SAPIs zum Auswählen/Aufzählen auch nur da nach.[/quote:3dd6bef327]
Soweit klar. Ich kann dort alle installierten Stimmen finden. Nur kann ich beim besten Willen nicht erkennen, welche Stimme denn jetzt aktiviert ist.
Kann mir mal jemand nen Schubs in die richtige Richtung geben?
 
23.06.2006  
 




Frank
Abbing
Ok, hab die passende Stelle gefunden.
Da werd ich nochmal ein bischen weiter basteln.
 
23.06.2006  
 




Frank
Abbing
Die englisch nach deutsch Transformation bringt nicht viel ein. Ich werde sie für die Dll nicht weiter verfolgen.
Ich schreib noch eine Anleitung, aber ansonsten ist sie fertig.

@Pascal, dein Programm produziert noch Fehler (Absturz oder fehlende Sprachausgabe), wenn die Buchstaben c, q und x im Text benutzt werden (sch wird ja umgewandelt in sh).
 
25.06.2006  
 




Walter
Hallo,
das Thema Sprachausgabe ist hier seit 2006 verwaist, interessiert mich jedoch schon lange und nun wieder besonders.
Habe 4 Stimmen installiert und erfolgreich einige Programme mit Sprachausgabe geschrieben - dank speech.dll - nun aber die Notwendigkeit, auch die Lautstärke zu steuern und die Stimme zu wechseln (was mit speech.dll derzeit nicht möglich ist).
Die Versuchs- und Beispielscodes verstehe ich leider nur zum Teil . Scheitere ja bereits am ! in der ersten Zeile (was bedeutet das? Wo finde ich etwas darüber? zB

!
window 50,50-500,200

Wenn mir auch Speicherbereiche nicht ganz fremd sind, sind Registry und COM zumindest derzeit nicht innerhalb meines Wirkungsvermögens - kurz: gibt es ev. doch eine DLL oder eine INC, mit der auch Unbedarfte SAPI samt Stimmenauswahl, Lautstärke, Pausen,... ansprechen können?
 
12.01.2016  
 



Stimmt, das Thema ist 10 Jahre jung. ^^

Das Ausrufezeichen am Anfang dieses Codes gehört nicht zum Code -
das war ein Flag für ein hiesiges Feature für Verzicht auf Codeformatierung.

Was die speech.dll betrifft schrieb Frank in 2006:

> Die englisch nach deutsch Transformation bringt nicht viel ein.
> Ich werde sie für die Dll nicht weiter verfolgen.

Vielleicht kontaktierst Du ihn dafür direkt über seine Seite:  [...] 

Sehe ich das richtig, dass Uwe (weiter oben) mit seinem Code erfolgreich Sprache ausgibt?
 
12.01.2016  
 




Walter
>Sehe ich das richtig, dass Uwe (weiter oben) mit seinem Code erfolgreich Sprache ausgibt?

So klingt es, und ich habe es auch nach Entfernen des Rufzeichens versucht. Problemloser Durchlauf, jedoch bei mir kein Mucks.
Waran es liegt?? Leider blicke ich an der Schnittstelle nicht durch...
Wäre natürlich interessant, da ja (neben der Transformation der Laute) die deutsche Stimme auch direkt aufgerufen wird.

>Vielleicht kontaktierst Du ihn (Frank) dafür direkt über seine Seite

Werde ich machen.
Danke!
 
12.01.2016  
 



Hast Du mal den Code von Uwe repariert und parat, also diese ganzen überflüssigen Zeichen entfernt?
 
12.01.2016  
 




Walter
Das war meine letzte Testversion (vom 30.12.)

4 kB
Bezeichnung:Test SAPI
Kurzbeschreibung: Versuchscode aus Uwes Beispiel
Hochgeladen:12.01.2016
Ladeanzahl244
Herunterladen
 
12.01.2016  
 




Walter
Habe von Frank leider eine Absage erhalten: "...wird es von meiner Software kein Update mehr geben."
Mittlerweile auch versucht, im Code-Beispiel von Pascal StringToGUID("{96749377-3391-11D2-9EE3-00C04F797396}",a#)
durch den Key von Steffi aus meiner Registry zu ersetzen. Ergebnis: Statt Durchlauf ohne Sprachausgabe (wie vorher) erfolgte ein Absturz.
Gibt es irgendwo Doku, die mir weiterhilft?
Beste Grüße
Walter
 
01.02.2016  
 




Georg
Teles
Nabend,

Walter (12.01.2016)
... nun aber die Notwendigkeit, auch die Lautstärke zu steuern und die Stimme zu wechseln (was mit speech.dll derzeit nicht möglich ist) ...


also mit der Lautstärke kann man sich mit der WINMM.DLL behelfen, um diese wenigstens über den MS-Mixer zu steuern, hier die erweiterte Speech.prf
Declare sx&,sy&,text$,x&,y&,speechdll&
Declare hButt01&, hButt02&, hEdit01&
Def GetSysColor(1) !"USER32","GetSysColor"
Def LoadIcon(2) !"USER32","LoadIconA"
Def InitSpeech(0) !"SPEECH","InitSpeech"
Def DeInitSpeech(0) !"SPEECH","DeInitSpeech"
Def PlaySpeech(2) !"SPEECH","PlaySpeech"
Def StopSpeech(0) !"SPEECH","StopSpeech"
'--------# zusätzliche DEFs
DEF waveOutSetVolume(2)!"winmm","waveOutSetVolume"
DEF waveOutGetVolume(2)!"winmm","waveOutGetVolume"
Def HiWord(1) (&(1)\$10000)
Def LoWord(1) And(&(1),$FFFF)
Def MakeLong(2)Or(&(1),(&(2)*$10000))
Def GetLeftChannel(1) (LoWord(&(1))\$028F)
Def GetRightChannel(1) (HiWord(&(1))\$028F)
'--------#
speechdll&=UseDll("Speech.dll")
sx&=640
sy&=480
Windowstyle 26+512
Windowtitle "Speech.dll Testcode."
Window %maxx,0-sx&,sy&
SendMessage(%hwnd,$80,1,LoadIcon(0,32517))'Application Icon setzen
Cls GetSysColor(15)
UseFont "MS Sans Serif",13,0,0,0,0
SetDialogFont 1
hButt01& = Create("BUTTON",,%hwnd,"Text sprechen",16, 408, 120, 24)
hButt02& = Create("BUTTON", %hwnd,"Sprache stoppen", 144, 408, 120, 24)
hEdit01& = Create("MultiEdit",%hwnd,"Das ist ein Probetext.",16,16,600,382)
'--------# zusätzliche VARs & Regler
Declare volumeregler&,LautL%,LautR%,Volume&
volumeregler&=Create("HScroll",%HWND,"",288, 408, 120, 24)
SetScrollRange volumeregler&,0,100'Range auf 100 setzen
waveOutGetVolume(-1,Addr(Volume&))
LautL% = GetLeftChannel(Volume&)'linker Kanal reciht aus um beide gleich zu setzen
'LautR% = GetRightChannel(Volume&) 'rechter Kanal
SetScrollPos volumeregler&,LautL%
'--------#
SetWindowPos %hwnd=(%maxx/2-(sx&/2)),(%maxy/2-(sy&/2))-sx&,sy&
InitSpeech()

While 1

    Waitinput
    '--------# zusätzliche abfrage Regler & Lautstärke setzen
    LautL% = (GetScrollPos(volumeregler&))
    waveOutSetVolume(-1,MakeLong((LautL%*$028F),(LautL%*$028F)))'beide gleich setzen nach dem Regler
    'waveOutSetVolume(-1,MakeLong((LautL%*$028F),(LautR%*$028F))) 'beide Kanäle
    '--------#

    If %key=2

        BREAK

    ElseIf Clicked(hButt01&)

        text$=GetText$(hEdit01&)
        PlaySpeech(addr(text$),len(text$))

    ElseIf Clicked(hButt02&)

        StopSpeech()

    EndIf

EndWhile

DeInitSpeech()
Freedll speechdll&
End

Aber die Stimme zu wechseln, keine Ahnung, noch nie damit zutun gehabt

Servus
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

06.02.2016  
 



 
- Seite 4 -



Walter
Ja, geht super!
Die Lautstärke anpassen zu können ist bereits sehr hilfreich!
Danke
Walter
 
06.02.2016  
 




Georg
Teles
 
XProfan X3
TC-Programming [...] 
XProfan 8.0 - 10.0 - X2 - X3 - X4

06.02.2016  
 




Zum Quelltext


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

35.338 Betrachtungen

Unbenanntvor 0 min.
Walter28.11.2022
OliverJung28.11.2021
Uwe ''Pascal'' Niemeier24.11.2021
p.specht18.11.2021
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie