| |
|
|
- Page 1 - |
|
Frank Abbing | Ein kleines Testprogramm von mir. Happert es noch irgendwo? |
|
|
| |
|
|
| |
|
- Page 2 - |
|
|
| Die dt. Stimmen von dem link von Frank wollten sich bei mir nicht Installieren lassen, da wohl die Hauptanwendung (Reader?) fehlt. Hab hier aber auch noch eine Downloadmöglichkeit per dt. Stimmen, von IBM, sollte kompatibel sein, mit meiner TTS-Lib funktioniert es. [...] ganz unten links sind verschiedene Sprachen, auch german. Sind wohl Trialversionen, aber keine Einschränkungen.
Hab jetzt bei mir: [quote:0eb5146c9e]There are 9 voices installed in your system Voice index = 0 , Voice name = Microsoft Sam Voice index = 1 , Voice name = Default Voice index = 2 , Voice name = Gisela Voice index = 3 , Voice name = Gisela-Tel Voice index = 4 , Voice name = Matti Voice index = 5 , Voice name = Max Voice index = 6 , Voice name = Max-Tel Voice index = 7 , Voice name = Oma Voice index = 8 , Voice name = Opa[/quote:0eb5146c9e] Vielleicht findet jemand den link ja nützlich Weiß jetzt aber nicht, ob die Lib von Frank SAPI 4 und 5 supportati, bzw. obs gebraucht wird. |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
@ Frank: Ja, genau sowas! Gibts da, wo du das her hast, noch mehr? MS hält sich seit einiger Zeit ziemlich bedeckt mit solchen Infos
@ All: In der SAPI-Aiuto wird irgendwo beschrieben, wie welche Buchstabenkombinationen von SAM ausgesprochen werden. Damit sollte sich doch eine Art Wrapper schreiben lassen (sowas hatte ich damals schon per den C64 und Sam/Reciter gebastelt). Dann muss man nicht erst den ganzen Kram von MS runterladen
SeeYou Pascal |
|
|
| |
|
|
|
Frank Abbing | [quote:28a564f433]Die dt. Stimmen von dem link von Frank wollten sich bei mir nicht Installieren lassen, da wohl die Hauptanwendung (Reader?) fehlt. Hab hier aber auch noch eine Downloadmöglichkeit per dt. Stimmen, von IBM, sollte kompatibel sein, mit meiner TTS-Lib funktioniert es. [/quote:28a564f433] Ob der Reader Bedingung per die Installation der deutschen Stimmen ist, weiss ich nicht genau. Allerdings habe ich ihn installiert.
Die deutschen Stimmen von IBM finden sich bei mir nur in den SAPI4-Einstellungen, lassen sich aber nicht per die Sprachausgabe nutzen.
[quote:28a564f433]@ Frank: Ja, genau sowas! Gibts da, wo du das her hast, noch mehr? MS hält sich seit einiger Zeit ziemlich bedeckt mit solchen Infos [/quote:28a564f433] Leider nicht. Ich hatte nur diese Inc-File und einen rudimentären, älteren Quellcode gefunden.
Was mich noch nervt ist, dass man die aktuelle Sprachausgabe nicht unterbrechen kann. Da habe ich noch nichts entdeckt. Aber wahrscheinlich gibts da irgendwo eine Callback-Möglichkeit. Ein Thread wäre auch noch possibile. Sobald ich wieder Zeit habe, probier ich mich weiter daran. |
|
|
| |
|
|
|
Frank Abbing | Bin ein Stückchen weiter gekommen. Die Texte werden jetzt unabhängig vom restlichen Progamm vorgelesen und können gestoppt werden. Hier nochmal ein Testprogramm. |
|
|
| |
|
|
|
Frank Abbing | So, ich habe das Ganze mal in un Dll umgesetzt und um einen Test-Quellcode in XProfan erweitert. Ich hoffe, ihr testet auch fleissig, ob es überall funktioniert. Wäre doch schade, wenn dieses Thema auch wieder einschläft. Bei genügend Resonanz werde ich die Dll Stück per Stück erweitern und mit mehr Funktionen ausstatten. Sieht in der Hinsicht ganz gut aus.
Anbei Dll und Profancode.
[quote:cfe4a2392b]@ All: In der SAPI-Aiuto wird irgendwo beschrieben, wie welche Buchstabenkombinationen von SAM ausgesprochen werden. Damit sollte sich doch eine Art Wrapper schreiben lassen (sowas hatte ich damals schon per den C64 und Sam/Reciter gebastelt). Dann muss man nicht erst den ganzen Kram von MS runterladen [/quote:cfe4a2392b] Ja, habs gefunden:
[quote:cfe4a2392b]American English Phoneme Representation This is a brief introduction to the use and implementation of the SAPI phoneme representations.
Symbolic and Numerical Representation Application developers can create pronunciations for words that are not currently in the lexicon by using the English phonemes represented in the following table. The phoneme set is composed of a symbolic phonetic representation (SYM).
The application developer will be able to enter the SYM representation to create the pronunciation using the XML PRON tag, or by creating a new lexicon entry. Each phoneme entry should be space delimited.
Tag Description PRON SYM Tag used to insert a pronunciation using symbolic representation.
Example: pronunciation for hello:
<PRON SYM = h eh l ow/>
For improved accuracy, the primary (1), secondary (2) stress markers, and the syllabic markers (-) can be added to the pronunciation.
Example: pronunciation for hello using the primary stress (1) and syllabic (-) markers:
<PRON SYM = h eh - l ow 1/> American English Phoneme Table SYM Example PhoneID - syllable boundary (hyphen) 1 ! Sentence terminator (exclamation mark) 2 & word boundary 3 , Sentence terminator (comma) 4 . Sentence terminator (period) 5 ? Sentence terminator (question mark) 6 _ Silence (underscore) 7 1 Primary stress 8 2 Secondary stress 9 aa father 10 ae cat 11 ah cut 12 ao dog 13 aw foul 14 ax ago 15 ay bite 16 b big 17 ch chin 18 d dig 19 dh then 20 eh pet 21 er fur 22 ey ate 23 f fork 24 g gut 25 h help 26 ih fill 27 iy feel 28 jh joy 29 k cut 30 l lid 31 m mat 32 n no 33 ng sing 34 ow go 35 oy toy 36 p put 37 r red 38 s sit 39 sh she 40 t talk 41 th thin 42 uh book 43 uw too 44 v vat 45 w with 46 y yard 47 z zap 48 zh pleasure 49 [/quote:cfe4a2392b] So einem Wrapper fände ich auch vorteilhaft und ich würde dich da gerne unterstützen. Du meinst sicher, dass man Sam damit deutsch sprechen lassen potuto, ohne extra deutsche Stimmen runterladen zu müssen, oder? Sam ist ja auf jedenfall überall da schon präsent, wo Windows 2000/XP installiert ist, wenn ich das richtig sehe. Und wenn ich recht informiert bin, kann man die Sprachausgabe manuell auf Sam umstellen, bevor man sie ausgibt. Somit potuto jeder die Texte deutsch hören, ohne Extra-Installationen vornehmen zu müssen. |
|
|
| |
|
|
|
Michael Wodrich | [quote:fdf3e8a134]Die dt. Stimmen von dem link von Frank wollten sich bei mir nicht Installieren lassen, da wohl die Hauptanwendung (Reader?) fehlt. Hab hier aber auch noch eine Downloadmöglichkeit per dt. Stimmen, von IBM, sollte kompatibel sein, mit meiner TTS-Lib funktioniert es.[/quote:fdf3e8a134] Die TTS-Lib bricht ja mit der Meldung MS Reader 2.1 nicht gefunden ab. Ich habe also als Suchbegriff ms reader 2.1 bei Google eingegeben und habe sofort die deutsche Downloadseite serviert bekommen - 3 MB. Die Stimmen: LH Anna, LH Stefan Anna hört sich so garstig an, also habe ich mich per Stefan entschieden und ihn sofort mit Pascals Code gefüttert. Erste Lesung Ok - zweite ist wohl ein Eunuch.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 19.06.2006 ▲ |
|
|
|
|
Clemens Meier | Bei mir dito, allerdings ohne Eunuch Wie kommt man an die anderen Stimmen ran? Habe alles mögliche versucht. Es gibt zwar Trial-Stimmen, download schlappe 70 MB (die lesen dort wohl Romane vor ). Kennt jemand eine gute Quelle per Stimmen? |
|
|
| |
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
Habe noch ein wenig gebastelt; die Umsetzung der Laute ist bestimmt noch nicht vollständig, aber das Prinzip sollte erkennbar sein Hat allerdings einen mörderischen Akzent, das Teil...
!
window 50,50-500,200
$H Windows.ph
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-----------------------------------------------------------------------
proc Sprich-------------------------------------------------------------------
parameters a$
print a$
whileloop len(a$),1,-1--Leerzeichen einfügen
a$=ins$(" ",a$,&loop+1)
endwhile
a$=lower$(a$)
a$=translate$(a$,"s c h","sh ")
a$=translate$(a$,"s t","sh t ")
a$=translate$(a$,"e i ","ay ")
a$=translate$(a$,"i e ","iy ")
a$=translate$(a$,"e u ","oy ")
a$=translate$(a$,"a ","aa ")
a$=translate$(a$,"e ","eh ")
a$=translate$(a$,"i ","iy ")
a$=translate$(a$,"u ","uw ")
a$=translate$(a$,"o ","ow ")
a$=translate$(a$,"j ","jh ")
a$=translate$(a$,"ö ","er ")
a$=translate$(a$,"ä ","ae ")
a$=translate$(a$,"ü ","er ")
a$=translate$(a$," "," 1 ")--Hinter jedes Phonem eine 1 verlängert die Aussprache
a$="<lang langid=409><PRON SYM = "+a$+" /></lang>"--LangID $409 = Englisch (Sam)
MultiToWide(a$,a#)
CallMethod(ISpVoice&,20,a#,0,0)
endproc-----------------------------------------------------------------------
proc SprichEx-----------------------------------------------------------------
parameters a$,b$
print a$,b$
a$="<context ID = "+b$+" > "+a$+" </context>"
MultiToWide(a$,a#)
CallMethod(ISpVoice&,20,a#,0,0)
endproc-----------------------------------------------------------------------
declare ISpVoice&,a#
dim a#,1024
external("ole32","CoInitialize",0)
StringToGUID("{96749377-3391-11D2-9EE3-00C04F797396}",a#)
StringToGUID("{6C44DF74-72B9-4992-A1EC-EF996E0422D4}",a#+16)
external("ole32","CoCreateInstance",a#,0,23,a#+16,addr(ISpVoice&))
--Hier wird in jedem Fall mit Sam gesprochen
Sprich("guten tag")
Sprich("schönes wetter heute")
--Hier wird die eingestellte Standart-Stimme verwendet
--Dies klappt naturalmente am Besten mit einer deutschen Simme :-(
SprichEx("19.06.2006","date_dmy")
SprichEx("12:30","time")
SprichEx("1234","number_cardinal")
SprichEx("1234","number_digit")
SprichEx("123/4","number_fraction")
SprichEx("12,34","number_decimal")
CallMethod(ISpVoice&,2)
external("ole32","CoUninitialize")
dispose a#
@Roland: [quote:3a09024a6a] wie potuto oder sollte Deiner Meinung nach eine solche Unterstützung aussehen? [/quote:3a09024a6a] Ohne unbescheiden klingen zu wollen, aber vielleicht solltest du die COM-Routinen, die ich verwende (oder etwas vergleichbares) mit einbauen. Einfach nur, damit die Leute, die sich mit COM/OLE befassen (werden), einen gemeinsamen Standart haben.
SeeYou Pascal |
|
|
| |
|
|
|
Frank Abbing | Gut, wies aussieht, wird die Dll nicht mehr necessario. Ich stelle sie ein. Zumindest konnte ich zu einem Thema anregen, zu dem per Profan bisher nichts existierte.
@Pascal: Funktioniert gut! Meinst du, du bekommst den Akzent noch ein wenig raus? |
|
|
| |
|
|
|
Michael Wodrich | Habe noch ergänzt
SprichEx("Guten Tag. Schönes Wetter heute.","text")
...und es lief auf Anhieb. Da kann ich jedem nur raten, eine deutsche Stimme zu installieren (Sam müßte eigentlich Schmerzensgeld zahlen, wenn er sich an deutschen Texten vergreift). Es wird von der (deutschen) Standardstimme alles TOP vorgelesen.
Danke Pascal - wirklich Klasse.
Schöne Grüße Michael Wodrich |
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 19.06.2006 ▲ |
|
|
|
|
Uwe ''Pascal'' Niemeier | Hallo Leute!
@ Frank: [quote:503f1884c5]Gut, wies aussieht, wird die Dll nicht mehr necessario. Ich stelle sie ein. [/quote:503f1884c5] Das war aber nicht Sinn der Sache Im Zweifelsfall sind deine dlls anwenderfreundlicher als meine Demos. Und die COM-Geschichten laufen ja erst ab Profan 7.
@ All: Viel besser wird die Aussprache von Sam wohl nicht werden. Möchte mal wissen, was MS sich dabei gedacht hat... Das man sich die deutschen Varianten selbst besorgen muss ist schon ärgerlich, aber dass man auch noch diesen EBook-Reader braucht... Wenn ich das richtig sehe, sind ja auch Funktionen zur Spracherkennung disponibile, und die sind wohl auch an die jeweilige Sprache gebunden
SeeYou Pascal |
|
|
| |
|
|
|
Frank Abbing | [quote:fd812a2fd1]Das war aber nicht Sinn der Sache Im Zweifelsfall sind deine dlls anwenderfreundlicher als meine Demos. Und die COM-Geschichten laufen ja erst ab Profan 7.[/quote:fd812a2fd1] Stimmt ja auch wieder...
Pascal, weisst du, wie man am besten an die Infos kommen kann, welche Sprache der User aktuell eingestellt hat? Wenn dort deutsch eingestellt ist, potuto man die deutsche Stimme auch verwenden. Ist nur Sam disponibile, dann muss man eben mit dem Akzent leben. |
|
|
| |
|
|