| |
|
|
Frank Abbing | Ein kleines Testprogramm von mir. Happert es noch irgendwo? |
|
|
| |
|
|
|
Torsten Rümker | Tja wenn ich jetzt eine deutsche Stimme installiert hätte
Funktioniert auf jeden Fall (außer das bei mir natürlich Sam vorliest).
MfG Torsten
PS: woher bekommt man eigentlich andere Stimmen? Direkt von Microsoft denke ich mal. Gleich mal nachschauen. |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 17.06.2006 ▲ |
|
|
|
|
Frank Abbing | |
|
| |
|
|
|
Torsten Rümker | Danke für die flinke antwort gleich mal installieren.
Bin ehrlich gesagt schon ganz gespannt.
MfG Torsten
[EDIT] PS: Mir gefällt Stefan besser. [/EDIT] |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 17.06.2006 ▲ |
|
|
|
|
Torsten Rümker | Mmmh, sag mal, wo finde ich denn wohl eine Hilfe für die SAPI?
Mir schwebt gerade so vor meinem Chat (in Entwicklung) eine optionale Sprachausgabe mitzugeben
MfG Torsten |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 17.06.2006 ▲ |
|
|
|
|
Frank Abbing | Die Hilfe dazu findest du [...] . |
|
|
| |
|
|
|
Torsten Rümker | tse, das liegt daran, wenn man die falschen Suchbegriffe eingibt um sowas zu finden. danke dir. |
|
|
| Ich lerne, ob ich will oder nicht! Betriebssystem: - Ubuntu 15.x - Windows (diverse) XProfan Version: X2 | 17.06.2006 ▲ |
|
|
|
|
Jac de Lad | Hallo Frank!
Kannste für die SAPI vielleicht ne INC oder so für Einsteiger machen? (also Leute wie mich) Dann könnten wir das auch in Profan nutzen!
Jac |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 17.06.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Hier ein Versuchscode von mir:
!
window 50,50-500,200
$H Messages.ph
$H Windows.ph
declare a#,b#
dim a#,1024
dim b#,16
proc MultiToWide--------------------------------------------------------------
parameters Text$,Ziel&
return ~MultiByteToWideChar(0,0,addr(Text$),-1,Ziel&,250)
endproc-----------------------------------------------------------------------
proc StringToGUID-------------------------------------------------------------
parameters GUID$,GUID&
declare Temp$
Temp$=space$(80)
~MultiByteToWideChar(1,1,addr(GUID$),-1,addr(Temp$),80)
external("ole32","CLSIDFromString",addr(Temp$),GUID&)
endproc-----------------------------------------------------------------------
proc CallMethod---------------------------------------------------------------
parameters IFace&,Method&
declare VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
case %pcount=2:return call( Method&,IFace& )
case %pcount=3:return call( Method&,IFace&,&(3) )
case %pcount=4:return call( Method&,IFace&,&(3),$(4) )
case %pcount=5:return call( Method&,IFace&,&(3),&(4),&(5) )
endproc-----------------------------------------------------------------------
declare ISpVoice&,Text$,Error&
external("ole32","CoInitialize",0)
StringToGUID("{96749377-3391-11D2-9EE3-00C04F797396}",a#)
StringToGUID("{6C44DF74-72B9-4992-A1EC-EF996E0422D4}",b#)
Error&=external("ole32","CoCreateInstance",a#,0,23,b#,addr(ISpVoice&))
print "Error CoCreateInstance",Error&
print "ISpVoice",ISpVoice&
print
Text$="Hallo Test"
MultiToWide(Text$,a#)
Error&=CallMethod(ISpVoice&,20,a#,0,0)
print "Error ISpVoice::Speak",Error&
print
Text$="<pitch middle=+20/> Hallo Test"
MultiToWide(Text$,a#)
Error&=CallMethod(ISpVoice&,20,a#,8,0)
print "Error ISpVoice::Speak",Error&
print
Error&=CallMethod(ISpVoice&,2)
print "Error ISpVoice::Release",Error&
external("ole32","CoUninitialize")
waitkey
Da wäre sicher mehr rauszuholen, wenn ich irgendwo eine Sapi-Headerdatei finden könnte; in welchem Package von MS ist die drin?? (Habe keine Lust, auf Verdacht 30 MB runterzuladen)
PS: Da macht sich wieder die fehlende COM-Unterstützung bemerkbar...
SeeYou Pascal |
|
|
| |
|
|
|
RGH | [quote:034943faec=Uwe Pascal Niemeier]PS: Da macht sich wieder die fehlende COM-Unterstützung bemerkbar... [/quote:034943faec] Hallo Pascal, wie könnte oder sollte Deiner Meinung nach eine solche Unterstützung aussehen?
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 17.06.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Roland!
Ähh... Eigendlich hatte ich meinen Vorschlag zur Mehrfachdeklaration in Headern im Kopf, aber das würde ja gerade hier nichts bringen (wo nichts ist...) Aber war nicht irgendwann mal irgendeine Unterstützung für WideChar im Gespräch? Es gibt ja auch normale APIs ,die man damit füttern muss (ein deutlicher Trend seit XP). Und vielleicht eine PH mit den wichtigsten Funktionen und Konstanten für oleaut32, ole32 und Verwande.
Mehr weis ich jetzt aus dem Steggreif eigentlich auch nicht
SeeYou Pascal |
|
|
| |
|
|
|
Frank Abbing | [quote:dfb4c32d43]Kannste für die SAPI vielleicht ne INC oder so für Einsteiger machen? (also Leute wie mich) Dann könnten wir das auch in Profan nutzen![/quote:dfb4c32d43] Ich denke eher an eine kleine Dll oder einen XPIA-Code. Wie Pascal schon erwähnt, ist mit Profan nicht alles möglich.
@Pascal: Ja, dein Code ist meinem sehr ähnlich Vielleicht hilft dir die Asm-SAPI-Inc:
; SAPI 5.1
; GUIDS ---------------------------------------------------------------------------
.data
CLSID_SpVoice GUID {096749377h,03391h,011D2h,<09Eh,0E3h,000h,0C0h,04Fh,079h,073h,096h>}
IID_ISpVoice GUID {06C44DF74h,072B9h,04992h,<0A1h,0ECh,0EFh,099h,06Eh,004h,022h,0D4h>}
.const
TEXT_ MACRO your_text:VARARG
LOCAL text_string
.data
text_string db your_text,0
.code
EXITM <addr text_string>
ENDM
; INTERFACES ---------------------------------------------------------------------------
_vtISpVoice MACRO Name:REQ
;; IUnknown Methods
_vtIUnknown Name
;; ISpVoice Methods
&Name&_SetNotifySink CoMethod1 ?
&Name&_SetNotifyWindowMessage CoMethod5 ?
&Name&_SetNotifyCallbackFunction CoMethod4 ?
&Name&_SetNotifyCallbackInterface CoMethod4 ?
&Name&_SetNotifyWin32Event CoMethod1 ?
&Name&_WaitForNotifyEvent CoMethod2 ?
&Name&_GetNotifyEventHandl CoMethod1 ?
&Name&_SetInterest CoMethod3 ?
&Name&_GetEvents CoMethod4 ?
&Name&_GetInfo CoMethod2 ?
&Name&_SetOutput CoMethod3 ?
&Name&_GetOutputObjectToken CoMethod2 ?
&Name&_GetOutputStream CoMethod2 ?
&Name&_Pause CoMethod1 ?
&Name&_Resume CoMethod1 ?
&Name&_SetVoice CoMethod2 ?
&Name&_GetVoice CoMethod2 ?
&Name&_Speak CoMethod4 ?
&Name&_SpeakStream CoMethod4 ?
&Name&_GetStatus CoMethod3 ?
&Name&_Skip CoMethod4 ?
&Name&_SetPriority CoMethod2 ?
&Name&_GetPriority CoMethod2 ?
&Name&_SetAlertBoundary CoMethod2 ?
&Name&_GetAlertBoundary CoMethod2 ?
&Name&_SetRate CoMethod2 ?
&Name&_GetRate CoMethod2 ?
&Name&_SetVolume CoMethod2 ?
&Name&_GetVolume CoMethod2 ?
&Name&_WaitUntilDone CoMethod2 ?
&Name&_SetSyncSpeakTimeout CoMethod2 ?
&Name&_GetSyncSpeakTimeout CoMethod2 ?
&Name&_SpeakCompleteEvent CoMethod1 ?
&Name&_IsUISupported CoMethod5 ?
&Name&_DisplayUI CoMethod6 ?
ENDM
ISpVoice struct dword
_vtISpVoice ISpVoice
ISpVoice ends
SpVoice TYPEDEF PTR ISpVoice
SPF_DEFAULT equ 0
SPF_ASYNC equ 1
SPF_PURGEBEFORESPEAK equ 2
SPF_IS_FILENAME equ 4
SPF_IS_XML equ 8
SPF_IS_NOT_XML equ 16
SPF_PERSIST_XML equ 32
SPF_NLP_SPEAK_PUNC equ 64
SPF_NLP_MASK equ SPF_NLP_SPEAK_PUNC
SPF_VOICE_MASK equ SPF_ASYNC or SPF_PURGEBEFORESPEAK or SPF_IS_FILENAME or SPF_IS_XML or SPF_IS_NOT_XML or SPF_NLP_MASK or SPF_PERSIST_XML
SPF_UNUSED_FLAGS equ NOT SPF_VOICE_MASK
|
|
|
| |
|
|