Archiv verlassen und diese Seite im Standarddesign anzeigen : sprechendes IC - Speakjet
Hi,
ich mache meine Sprachausgabe bisher mit einem Sprachspeicherchip ISD2560. Zukünftig würde ich die Sprache aber gern synthetisch erzeugen. Hat jemand schon Erfahrung mit diesem neuen Sprachsynthesizer-IC ?
http://www.speakjet.com/ 8)
https://www.roboternetz.de/phpBB2/album_pic.php?pic_id=187
Mich würde insbesondere interessieren, ob der "SpeakJet" nur englisch spricht, oder ob man ihm auch andere Sprachen (z.B. ein halbwegs verständliches deutsch) beibringen kann.
Viele Grüße
Avatar
Hi avatar!
Das is ja mal n cooles Teil.
Ich glaube aber nicht, dass man ihm Deutsch beibringen kann.
Der ist schon Programmiert (so wie ich das jetzt beim überfliegen rausgefunden habe...)
Du könntest ihn ja direkt über Synthesizer ansprechen, und so Deutsch sprechen ;)
Weist du was das Ding kostet und wie man es ansteuert?
Dokus habe ich keine gefunden...
Past jetzt zwar nicht hierher, aber...
Liebe Grüße, Tobi
Das IC kostet 25 US-Dollar. Beim momentanen Wechselkurs also etwa 20 Euro. Da das ganze sehr kompakt ist, sparst du 'ne Platz auf der Leiterplatte, das ist ja auch was wert. Angesteuert wird es über eine serielle Schnittstelle, allerdings nicht mit V.24-Pegel (+/-12V) sondern TTL-Pegel (=5V).
Hierzulande habe ich noch keinen Händler gefunden, der es anbietet. Wenn das zufällig ein Einkäufer von Conrad, Reichelt & Co. liest, sollte er vielleicht überlegen, es in das Sortiment aufzunehmen.
Viele Grüße
Avatar
EDIT (Nachtrag 31. Juli 2004)
Inzwischen gibt es auch einen deutschen Anbieter
http://www.robotikhardware.de/chips.html
Ich werd mal versuchen, zu veranlassen, dass es das bei Reichelt gibt. Aber so ein Ding ist echt nicht schlecht...
Gruß, Trabukh
Das wär' klasse.
Die Chefin (Angelika Reichelt) wohnt doch bestimmt bei dir in der um die Ecke oder?
Viele Grüße
Avatar
Naja man kann es ja mal probieren Deutsche Wörter aussprechen zu lassen. Klingt dann eben ein bischen denglisch, weil die Sprachengine und die Vokaltabelle für englisch sind.
Wenn es sowas für Deutsch geben würde, würde ich es mir sofort kaufen.
So, hab heut mal nachgefragt, mal schauen, was sich tun wird.
Also, hier die Situation: Ohne einer "lukrativen" Abnehmerzahl geht da gar nix. Wir müssten viiiiiiiiele Leute zusammen kriegen, die sowas haben wollen, oder einer bestellt hier 1000 Stück! :-)
Gruß, Trabukh
Das habe ich befürchtet.
Danke für die Mühe, die du dir gemacht hast.
viele Grüße
Avatar
Kein Problem, gerne wieder...
Es gibt im Netz ein paar Beispiele, wo man sich anhören kann, wie der IC klingt:
http://www.synthmodules.com/mp3/20040226-PSIM-SpeakJet-Demo-001.mp3
http://www.synthmodules.com/mp3/20040227-PSIM-SpeakJet-Demo-003.mp3
http://www.synthmodules.com/mp3/20040227-PSIM-SpeakJet-Demo-005.mp3
Es gibt im Netz ein paar Beispiele, wo man sich anhören kann, wie der IC klingt:
http://www.synthmodules.com/mp3/20040226-PSIM-SpeakJet-Demo-001.mp3
http://www.synthmodules.com/mp3/20040227-PSIM-SpeakJet-Demo-003.mp3
http://www.synthmodules.com/mp3/20040227-PSIM-SpeakJet-Demo-005.mp3
der macht mir Angst 8-[
Gruß, Sonic O:)
Da Speakjet Euch offenbar auch gefällt, hab ich mal dafür gesorgt das er jetzt hier http://www.robotikhardware.de/chips.html erhältlich ist. Ist bereits bestellt, sollte nächste Woche lieferbar sein. So braucht nicht jeder die teuren USA-Versandkosten zahlen
Bin selbst sehr gespannt! Was ich so lese gefällt mir aber gut! Ist ne gute Alternative zu ISP2590
http://www.synthmodules.com/mp3/20040226-PSIM-SpeakJet-Demo-001.mp3
Soetwas ähnliches habe ich schon einmal unter Hado gefunden.
("Die etwas übersinnliche Art Wassermoleküle zu sortieren". )
Wenn man das Echo herausnimmt und den Blecheimer am Ende vom ersten Spot festhält damit er nicht gleich die ganz Treppe herunterfälllt, kann man man ja vielleicht verstehen was er sagen will.
Ich habe beim ersten Anhören die Aussage nicht verstanden, obwohl es, wie ich den Eindruck hatte, ziemlich oft wiederhlot wurde. Man ist wohl schon davon ausgegangen, daß es nicht so leicht zu verstehen ist.
Ich habe jetzt noch nicht weiter gesucht aber ich bin bestimmt interessiert wenn man TTS(text to speach) ausgaben machen kann.
Kann noch mal jemand der den Chip kennt kurz sagen wie man einen Text Ausgibt?
Gibt es dafür einen Textcompiler extern/intern und wenn extern wo?
und wie lang ist die Phonencodierung von einem 100Worte-Text
Manfred
Das ist recht einfach. Im Datenblatt sind die verschieden Phoneme aufgelistet und ein englisches Beispielwort wo der Phonem vorkommt.
Wenn man nun ein deutsches Wort langsam vor sich ausspricht, notiert man die Laute und sucht die in der Tabelle raus. Dann braucht man nur noch die Codes der Reihe nach an die RS232 senden.
irgendwo habe ich schon Beispielprogramm für Atmel und Visual Basic gesehen. Wenn ich Link wieder finde poste ich das mal.
Jedenfalls war das C-Programm das ca. 10 Wörter ausgesprochen hat nur ca. 10 Zeilen lang (was bei C schon sehr wenig ist)
Gruß Frank
Das heißt, die Schnittstelle ist eine, über die man Phoneme ggf mit Zeitinformation an den Chip übergibt. Ich habe gerade mal im Datnblatt nachgesehen, da hatte ich es auch so verstanden.
Es ist wohl noch zu neu, als daß jemand schon mal einen Phonemgenerator für Fließtext gebaut hätte.
Manfred
Nein so wie ich es verstehe werden die realtime auch ausgesprochen. Für jedes Phonem braucht man ja glaub nur ein 3 Byte Befehl. Da ist man mit 9600 Baud ja schneller als er es sprechen kann. Er hat wohl einen kleinen Buffer drin, falls die RS232 Phonemenliste schneller kommen als er sie aussprechen kann. Zudem kann er ein Quttungssignal ausgeben wenn Buffer voll ist oder Buffer leer ist. Zumindest habe ich es bislang so verstanden. ;-)
Ach so, jetzt weiss ich was du meinst! Ein Zusatzprogramm das die entsprechenden zu sendenden Phonemen automatisch generiert. Ich glaub das hab ich auch schon für englische Wörter gesehn, aber ob ich das wiederfinde?
Für deutsche Texte wird sich wohl so schnell keiner die Mühe machen. Wird auch kaum gehen, da man da induitiv etwas tricksen muss. Einige wenige zeichen wie "Ü" werden etwas problematisch. Manchmal kann man so was duch die kombination zweier anderer Phonemen, die man schneller spricht, generieren. Muss man dann erst testen
Das ist recht einfach. Im Datenblatt sind die verschieden Phoneme aufgelistet und ein englisches Beispielwort wo der Phonem vorkommt.
Das denke ich auch. Im deutschen ist der Unterschied zwischen geschriebenem und gesprochenem nicht so groß wie im englischen. Deshalb dürfte es fast sogar einfacher sein, ihn deutsch sprechen zu lassen als englisch. Dort wird der gleiche Vokal je nach Kontext oft unterschiedlich gesprochen (hungry, lakehurst oder fish, thirsty). Die 72 Allophone müssten vollkommen reichen. Zur Not lässt man eben "Ü" als "I" aussprechen etc.
Prima, dass du einen Händler davon überzeugen konntest, dass es sich lohnt, den Chip auch auf dem deutschen Markt anzubieten. Ich habe ihn mir schon aus USA bestellt, weil ich nicht geglaubt habe, dass man das Teil bald auch hier bekommen kann. Testweise werde ich ihn einfach mal an den PC hängen. Dafür ist nur ein Pegelwandler, z.B. MAX232 notwendig. Das Signal "buffer half full" sollte man -auch üb. Pegelwandler- mit CTS (clear to send) verbinden und zwar als Flusskontrolle, damit der PC nicht schneller sendet als der Chip sprechen kann.
Viele Grüße
Avatar
Weitere Klang-Beispiele
http://www.speakjet.com/ ---- auf "Listen to Samples" klicken
Ja, an so etwas habe ich gedacht. Es eilt sicher nicht, aber wenn viele den Chp einsetzen müßte es früher oder später auftauchen.
Es kann auch sein, daß gewisse Interessensgemeinschaften ihre eigenen Lösungen schaffen.
In Krieg so erzählt man sich, habe es die Notwendigkeit gegeben, eine abhörsichere Funksprechverbindung herzustellen, obwohl keine Verschlüsselungsgräte zur Verfügung standen. Man hat dann in der Amerikanischen Einheit zwei Soldaten gefunden, die in der Schule den gleichen Französichlehrer hatten. Wenn die an den beiden Enden der Verbindung waren, konnten sie sich unterhalten ohne daß ein Abhörer oder einer der Danebenstehenden auch nur ein Wort verstanden hätte.
Manfred
so wie ich es verstehe werden die realtime auch ausgesprochen. Für jedes Phonem braucht man ja glaub nur ein 3 Byte Befehl.
Der Chip spricht nicht realtime sondern speichert die ankommenden Kommandos in einem Ringpuffer (Fifo) und spricht sie zeitversetzt aus. Mit dem CTS wird verhindert, dass der FIFO überläuft. Pro Allophon brauchst du jeweils nur 1 Byte. Nur wenn du noch zusätzlich die Tonhöhe, Geschwindigkeit etc. verändern willst brauchst du mehr. So habe ich es verstanden.
Ja stimmt. Zumindest hatte ich mit der englischen PC Sprachengine nie Probleme eigentlich alle Wörter auch in deutsch auszusprechen. Auch wenn dann manchmal die zusammengestellten Phonem etwas seltsam aussahen. Du kannst ja dann mal über deine Erfahrungen berichten und vielleicht dein Schaltbild posten.
Das mit dem Händler war nicht so schwierig, der ist mir gut ;-) bekannt - meine Firma :-)
Na ja, FIFO-Buffer ist ja nur ein paar Byte groß! Das würde ich noch als Realtime bezeichnen. Man postet ja keine Zeitinformationen mit, sondern fügt Pausen ein.
Hier hab ich etwas Beispielcode gefunden:
/*
* Speakjet Testprogramm
*
*/
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>
#include <avr/pgmspace.h>
#include <inttypes.h>
#define MCU_FREQ 16000000L
#define BAUD 9600L
volatile uint16_t ms_count;
#define WP 5
uint8_t announce[] = {
/* welcome */ 145, 131, 145, 4, 195, 136, 140, WP,
/* to */ 192, 162, WP,
/* the */ 169, 134, WP,
/* mavric */ 140, 132, 166, 148, 129, 194, WP,
/* speakjet */ 187, 198, 128, 194, 4, 165, 131, 191, WP,
/* test */ 191, 131, 187, 191, WP,
/* program */ 199, 148, 137, 179, 148, 132, 140
};
#define N_ANNC sizeof(announce)
void uart1_init(uint16_t baud)
{
uint16_t brr;
brr = MCU_FREQ / (16L*(long)baud) - 1;
UBRR1H = brr >> 8;;
UBRR1L = brr & 0x00ff;
UCSR1B = BV(TXEN);
}
void uart_putc(uint8_t uart, char c)
{
if (uart == 0) {
loop_until_bit_is_set(UCSR0A, UDRE);
outp(c, UDR0);
}
else if (uart == 1) {
while ((UCSR1A & BV(UDRE)) == 0)
;
UDR1 = c;
}
}
int main(void)
{
uint8_t i;
uart1_init(BAUD);
for (i=0; i<N_ANNC; i++)
uart_putc(1, announce[i]);
while (1)
;
}
Hier noch ein Link zu dem interessanten VB Programm, das ich vorhin gemeint hatte
PhraseALator v1.4 (http://www.synthmodules.com/speakjet/PhraseALator1_4.zip)(Includes 1,400 word dictionary.)
Kurze Info, falls es noch jemand braucht! Speakjet ist eingetroffen und nun sofort lieferbar.
http://www.robotikhardware.de/chips.html
http://www.robotikhardware.de/bilder/speakjet.jpg
Über den englischen Sprachengine braucht man sich glaub ich weniger Gedanken machen das dürfte ungefähr den Sound ergeben wie wenn man mit der englischen Webspeech-Version deutsche Texte vorlesen lässt, und da muss die Software selbst überlegen wie sie es ausspricht. In unserem Fall werden lediglich sounds aneinander gefügt also der Programmierer kann in recht weiten Grenzen den Klang beeinflussen.
Hab leider keine Ahnung von der programmierungselbst hab nur ein Beispielprogrammgesehen welches das ganze sehr gut veranschaulicht.
http://www.robotikhardware.de/download/speakjetsample.c
Da sieht das alles logisch und recht simpel aus.
SCHALTBILD gibts da auch echt simpel ohne Müll.
Gruss JOCHEN
Gottfreak
07.10.2004, 16:50
Gibt es irgendwo Samples, wo jemand versucht, verständliche, neutrale Sprache zu erzeugen?
Ich hab' mir die beiden ersten von den Links von Trabukh gesaugt und hauptsächlich Effekte gefunden. Das ermöglicht es mir kaum, die Qualität zu beurteilen.
Gottfreak
07.10.2004, 16:57
Ahh. Auf der Herstellerseite hab' ich noch was gefunden:
http://www.magnevation.com/waves/fxdemowords.mp3
Hannebambel
05.09.2005, 14:20
Hallo,
ich wollte nur mal fragen ob inzwischen schon etwas mehr Erfahrung mit dem Speakjet gemacht wurden.
Lohnt sich das teil in anbetracht von Speicherplatz auf dem AVR, Ansteuerung, deutlichkeit der ausgegebenen Sprache.
Oder ist es doch besser Sprache aufzunehmen als sie zu generieren?
Mich würde das auch sehr interessieren, ich bin jedoch sehr skeptisch.
Ich kenne solche systeme seit dem C64 und die haben nie wirklich überzeugen können.
LG
Rubi
Mich würde das auch sehr interessieren, ich bin jedoch sehr skeptisch.
Ich kenne solche systeme seit dem C64 und die haben nie wirklich überzeugen können.
LG
Rubi
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.