• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> 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