• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Sprachausgabe OSX auf deutsch

El Libero

Ontario
Registriert
19.05.06
Beiträge
340
Sicher kennt Ihr das Problem, dass man sich den Text zwar vorlesen lassen kann, aber man seinen Mac nur mit viel Fantasie versteht, da die Sprachmodule nur amerikanisch sprechen ***grmpfl***

Gibt es mittlerweile neben den kostenpflichtigen auch kostebfreie Deutsch-Module zum nachrüsten?
 

helgeh

Granny Smith
Registriert
30.06.06
Beiträge
14
kostenfrei leider nicht.
Ansonsten halt cepstralvoice
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Sicher kennt Ihr das Problem, dass man sich den Text zwar vorlesen lassen kann, aber man seinen Mac nur mit viel Fantasie versteht, da die Sprachmodule nur amerikanisch sprechen ***grmpfl***
;) Ton einschalten und im Terminal eingeben:
Code:
printf "begin-base64 644 x\nV29zIGhvc3N0IERvbyBnYWVnYWVubiBteSBuZW4gYWNrIGNlbnQ/Cg==\n===="|uudecode -p|say -v Vicki -f -
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Oder auch das hier:
Code:
for v in /System/Library/Speech/Voices/*.SpeechVoice ; do printf "begin-base64 644 x\nV29zIGhvc3N0IERvbyBnYWVnYWVubiBteSBuZW4gYWNrIGNlbnQ/Cg==\n===="|uudecode -p|say -v `basename $v .SpeechVoice`  -f - ; done
 

dahui

Carmeliter-Renette
Registriert
22.10.06
Beiträge
3.303
skeeve nimms mir nicht übel, aber kannst du noch ein wenig kommentieren was das genau bewirkt? nicht jeder kann terminal befehle einfach so lesen ;)
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
skeeve nimms mir nicht übel, aber kannst du noch ein wenig kommentieren was das genau bewirkt? nicht jeder kann terminal befehle einfach so lesen ;)
Nöööö... Das soll ja nicht sofort offensichtlich sein, was da passiert. Das nimmt doch den Spaß.

Naja.. Vielleicht heute Abend.
 

dahui

Carmeliter-Renette
Registriert
22.10.06
Beiträge
3.303
Nöööö... Das soll ja nicht sofort offensichtlich sein, was da passiert. Das nimmt doch den Spaß.

Naja.. Vielleicht heute Abend.

vorsicht ist die mutter der porzellankiste und für mich als italiener gilt dann auch noch

tutto arriva a chi sa aspettare :D
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
skeeve nimms mir nicht übel, aber kannst du noch ein wenig kommentieren was das genau bewirkt?
Okay... Ein wenig...
Code:
# Zuerst mal eine Schleife über alle Stimmen im System

for v in /System/Library/Speech/Voices/*.SpeechVoice ; do

  # Dann einen uu-codierten Text ausgeben

  printf "begin-base64 644 ... usw ..."

  # den schicken wir durch uudecode

  | uudecode -p

  # Das Ergebnis, der "entschlüsselte Text"
  # Wird an "say" übergeben,

  | say

  # wobei say mit der aktuellen Stimme aus $v spricht

  -v `basename $v .SpeechVoice`

  # das `basenam...` entfernt den Pfad und die Extension vom Dateinamen
  # So daß aus /System/Library/Speech/Voices/Victoria.SpeechVoice
  # "Victoria" wird

  # die letzte option von say

  -f -

  # teilt say mit, daß der zu sprechende Text aus der Datei (-file)
  # mit Namen "-" kommt, was hier der Standardeingabe
  # also der Ausgabe von uudecode entspricht.

# Schleifenende

done
Wer jetzt den Text vernehmen will muß es halt aufrufen.
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Versuch einer Deutsch -> Englisch "Übersetzung".

Ich habe mal angefangen eine Umsetzung von deutschen Zeichenfolgen in solche fürs Englische mit ähnlichem Klang zu programmieren.

Speichert das Script als "sprich", macht es ausführbar und gebt im Terminal ein:
"sprich das ist ja super".

Das ganze ist noch sehr rudimentär und Umlaute gehen auch nicht unbedingt, aber immerhin ein Anfang.

Code:
#!/usr/bin/perl
use strict;
use warnings;

my (
	$de2en,
	%de2en,
);

my $i=0;
$de2en= join '|', grep { $i=!$i } %de2en=  (
	ie => 'eeh',
	i => 'ee',
	j => 'y',
	u => 'oo',
	ss => 'z',
	au => 'ou',
	sch => 'sh',
	ch => 'k',
);
	
$_= join(' ', @ARGV);

s/($de2en)/$de2en{$1}/g;

system 'say',$_;

Ich habe das Script erweitert und ausgelagert. Schaut einfach hier...
 
Zuletzt bearbeitet:

astraub

Champagner Reinette
Registriert
17.06.04
Beiträge
2.651
Hallo,

es gibt auch deutsche Stimmen, die direkt aus deutschem Rext vorlesen können, z.B. hier ...

Gruss
Andreas