Forum: Mikrocontroller und Digitale Elektronik Sprache über Controller an Server senden


von Bernd Roschmann (Gast)


Lesenswert?

Hallo,

ich möchte gerne Sprache über ein Mikrofon aufnehmen und diese über das 
TCP/IP Protokoll an einen Server senden der die Daten weiterverarbeitet. 
Die Qualitätsanforderungen an die Sprache sind sehr gering. Simple 
Telefonqualität reicht völlig aus! Ebenfalls soll auch Sprache von einem 
Server per TCP/IP entgegengenommen werden und wiedergegeben werden.

Reicht für dieses Vorhaben ein 8bit Controller (z.B. AVR) mit 
entsprechendem Netzwerk-IC oder sollte man besser in Richtung AVR32 
Controller und Linux gehen?

Herzliche Grüße
Bernd

von Bernd Roschmann (Gast)


Lesenswert?

Hat keiner dazu ein paar Tips?

von Weingut P. (weinbauer)


Lesenswert?

hmmm ... ist jetzt nicht mein Fachgebiet,
aber ich hol den Beitrag mal hoch, würd mich
auch interessieren.

Der Haken beim ottonormal AVR ist zweierlei.
Der ADC ist nicht besonders schnell in höherer
Auflösung und in niedriger ist die Quali nicht so besonders.
Aber gehen wir mal von 8 Bit Auflösung und 7KHz Abtastrate
aus, das sollte noch einigermaßen verständlich sein,
dann sind das jede Sekunde 7KB an Daten die der Rechenknecht
verwursteln müsste ... aufnehmen, puffern, verpacken und
verschicken ... als unkomprimierte Daten versteht sich.
Kompression aufm AVR wird schon noch mal ne Nummer haariger.
hmmm ... ich würd schätzen, da stößt er an die Grenzen
von RAM und Geschwindigkeit.
AVR32 ist schon ne ganze Nummer mächtiger, die Programmierung
nicht gerade trivial, schon garnicht im Vergleich mit dem
Ottonormal_AVR und ob das unter Linux in Echtzeit geht ...
keine Ahnung. Du schleppst halt das OS mit rum.

von Mehmet K. (mkmk)


Lesenswert?

In der Atmel Application-Note AVR335 wird mit einem 8MHz getaktem 
80S8535  Sprache (4kHz Bandbreite) auf DataFlash abgespeichert.
So aus dem Bauch heraus: Ein Atmega der neueren Generation mit 20Mhz 
getakt sollte für Dein Vorhaben genügen.

von .blackhat .. (blackhat-blade)


Lesenswert?

Ich denke* (spekuliere) das einer der Größeren 8 Bit AVRs (also kein 
Tiny11) zumindest dem Audiopart gewachsen sein dürfte, wenn du dich in 
der Qualität beschränkst. Zu aller erst solltest du austesten welche 
Samplerate du mindestens brauchst um die benötigte Qualität zu 
erreichen. Da wahrscheinlich die Sprachverständlichkeit im Vordergrund 
steht solltest du ein paar 'Hörproben' machen. Sobald du weisst was du 
brauchst kannst du dir benötigte Datenrate (nur um das Audio zwischen 
Netzwerk und DA/AD Wandlern hin und her zu schieben) ja ausrechnen.

Das Signal zu Komprimieren wird wohl nicht gehen von der Geschwindigkeit 
her mit einem 8bitter in Software.

Dann musst du klären wie viel Overhead der TCP/IP Stack mit bringt.
Wenn das alles passt, so grob über den Daumen, dann -> 8Bit.

Ansonsten solltest du schauen ob es nicht irgendeinen Hardware 
En/Decoder gibt (mp3?) der das Signal für deinen 8Bitter eindampft. (Und 
das Preislich sinn macht...)

Ansonsten solltest einen etwas dickeren Prozessor nehmen, doch linux ist 
für eine solch triviale Aufgabe wahrscheinlich eher hinderlich als 
hilfreich.

Alle Angaben ohne Gewehr*


*peng

von Bernd Roschmann (Gast)


Lesenswert?

Okay, danke für die Überlegungen!
Mir macht momentan weniger die Abtastung als vielmehr die 
Netzwerkkommunikation Sorgen :)

Habe momentan noch keinen Schimmer wie man mit einem 8-bitter eine 
TCP/IP Kommunikation hinbekommen kann wo dann auch noch ein 
"Audiostream" drüber gesendet bzw. empfangen wird...

von holger (Gast)


Lesenswert?

>Habe momentan noch keinen Schimmer wie man mit einem 8-bitter eine
>TCP/IP Kommunikation hinbekommen kann wo dann auch noch ein
>"Audiostream" drüber gesendet bzw. empfangen wird...

Dann macht man sich halt mal selber schlau. Suchen, suchen, suchen....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.