AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Voice-/Sprach-Chat

Offene Frage von "onepiecefreak2"
Ein Thema von onepiecefreak2 · begonnen am 13. Jun 2014 · letzter Beitrag vom 20. Jun 2014
Antwort Antwort
Seite 3 von 6     123 45     Letzte » 
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#21

AW: Voice-/Sprach-Chat

  Alt 14. Jun 2014, 23:18
Erstmal danke für die ganzen Links, mein Bester.
Schau mal in den Post von mir, wo ich Code eingefügt habe. Dieser Code ist zur Aufnahme und Speicherung einer Audio-Datei. Dieser Punkt ist also schon fertig.
Nein, der Punkt zeigt dir lediglich, wie du auf rudimentärste Art Daten über ein Mikrofon mit Hilfe der Windows Media Player API in eine WAV-Datei speichern kannst.

Wie die anderen schon geschrieben haben, hat das nichts mit dem zu tun, was du vorhast. Wenn du aber hier einen Voice-Chat (oder gar einen Video-Chat, wird ja immer besser ) hinbekommen willst, wirst du diesen Codeschnippsel nicht weiterverarbeiten können, weil du Daten in einem kontinuierlichen Stream aufnehmen und gleichzeitig verarbeiten musst, dh. komprimieren (oder wie hier vorgeschlagen runtersamplen), versenden und nebenbei das was du (vom Server / Gegenstelle) empfängst ebenfalls verarbeiten.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#22

AW: Voice-/Sprach-Chat

  Alt 14. Jun 2014, 23:36
@Namenloser
Schau mal in den Post von mir, wo ich Code eingefügt habe. Dieser Code ist zur Aufnahme und Speicherung einer Audio-Datei. Dieser Punkt ist also schon fertig.
Das Problem ist, dass dir die Datei nichts bringt. So kannst du höchstens einen Anrufbeantworter programmieren, aber du willst doch wohl live mit deinem Gegenüber reden.

Das heißt du brauchst auch Live-Zugriff auf die Audiodaten, ohne den Umweg über eine Datei. Das geht zum Beispiel mit der bass.dll.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#23

AW: Voice-/Sprach-Chat

  Alt 15. Jun 2014, 02:27
Erstmal danke für die ganzen Links, mein Bester.
Wenn du die hinter den Links verborgenen Informationen nicht studierst, waren sie zwecklos und ich habe mir die Mühe umsonst gemacht.

Schau mal in den Post von mir, wo ich Code eingefügt habe. Dieser Code ist zur Aufnahme und Speicherung einer Audio-Datei. Dieser Punkt ist also schon fertig.
Ich kann mich hier Namenloser und nuclearping nur anschließen: Auf dem Weg über die Datei kommst du nicht weiter. Offenbar hast du die entsprechenden Hinweise, die dir bereits mehrfach geliefert wurden, erfolgreich ignoriert. Dann ist dir nicht wirklich zu helfen.

Vllt. kommt das an dieser Stelle schon zu spät, aber ein Videochat über ein lokales Netzwerk war mein Ziel. Also im Grunde genommen würde mir so einer schon reichen.
Jetzt soll's plötzlich ein Video-Chat sein? Junge Junge ... Jetzt mach doch mal langsam und gehe einen Schritt nach dem anderen

Aber deine Idee mit dem TCP-Server hatte ich auch schon. Ich muss halt nur schaffen den Audio-Stream von der bass.dll auch in Echtzeit übertragen zu können. Das ist das Problem nach der bass.dll. Oder ich bin noch nicht an der Stelle angekommen wo erklärt wird, wie ich eine solche Netzwerkübertragung mit der bass.dll bewerkstellige.
Versuch doch einmal, produktiv zu lernen: Du nimmst dir ein Tutorial und programmierst das durch. Einfach nur drüberfliegen und querlesen, bis man ein Stichwort findet, das die gesuchten Informationen einleitet, führt nur äußerst selten zum Ziel. Lerne doch erst einmal, wie man mit der Bass.dll eine Sound-Datei aufnimmt. Dabei werden die vom Mikrofon erzeugten Signale in einen Stream gespeichert. Du mußt dich mit der Callback-Funktion (im Tutorial ausführlich beschrieben) auseinandersetzen und dort die hereinkommenden Signale zeitnah verarbeiten. Ein geübter Programmierer, der wie ich seit Jahren jeden Tag 8 bis 10 Stunden mit Delphi arbeitet, benötigt dafür sicher einen Tag, eher mehr, wenn er die Bass.dll noch nicht kennt. Bei einem ungeübten Programmierer mit lediglich rudimentären Kenntissen würde ich erfahrungsgemäß eine Woche einplanen – ich war schließlich auch mal Anfänger und habe nicht vergessen, wie das war.

Wenn du dann begriffen und erfolgreich umgesetzt hast, wie man einen Audiostream erzeugt und verarbeitet, kommt der nächste Schritt: das Codieren des Streams. Aber so weit bist du jetzt noch nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#24

AW: Voice-/Sprach-Chat

  Alt 15. Jun 2014, 07:50
Ich versteh nicht, warum das jeder so verkompliziert.
Ist im Grunde doch ganz einfach - Windows bietet einem bereits alles an, was man braucht: Sockets + WaveIn/WaveOut Funktionen
Im Anhang befindet sich ne kleine Demo; die habe ich in ca. 2h programmiert und auf Windows 7 getestet.

Das sind 300 Zeilen Code, mehr nicht!

Edit: Hab die DPR Datei auch noch hochgeladen..
Die Tonquali habe ich runtergedreht (1 Channel mit 11025 Samples / Sek, wobei 1 Sample = 1 Byte..) und einfachheitshalber nur TCP verwendet (mit internen Stream Klassen.. zum Streamen halt). Darauf kannst du ja nun aufbauen.
Angehängte Dateien
Dateityp: rar VoiceChat.rar (111,8 KB, 78x aufgerufen)
Dateityp: rar VoiceChatDPR.rar (2,1 KB, 63x aufgerufen)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (15. Jun 2014 um 08:20 Uhr)
  Mit Zitat antworten Zitat
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#25

AW: Voice-/Sprach-Chat

  Alt 15. Jun 2014, 16:02
Ok, ich muss hier etwas klarstellen... das ich Videochat geschrieben habe, ist mir gar nicht aufgefallen.

Ic wollte Voicechat schreiben... SRY an der Stelle. Mein Problem aber, dürfte sein, dass ich versuche alles auf einmal lernen und einbringen zu wollen. Deswegen klingt das alles auch so wirsch was ich vorhab .

@Perlsau
Die Links habe ich bereits alle durchgelesen. Manche davon kannte ich schon. Das Aufnehmen einer Sounddatei ist mir, wie du mir als Ziel gesetzt hast, schon möglich. Natürlich muss ich aber Streamen und nicht aufnehmen und Datei speichern.

Was ich aber am geilsten finde an diesem Thread, dass hier so viele "bekannte" Gesichter reinschreiben. Mavarek oder Aphton habe ich im Zusammenhang mit solchen Audio-Themen hier im Forum immer wieder rumgeistern sehen.

Ich werde mir mal den Code von Aphton ansehen.

Bis zum nächsten Kommentar.

Geändert von onepiecefreak2 (15. Jun 2014 um 17:37 Uhr)
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#26

AW: Voice-/Sprach-Chat

  Alt 15. Jun 2014, 16:07
Ich versteh nicht, warum das jeder so verkompliziert.
Wir verkomplizieren es nicht. Wir versuchen lediglich, ihn auf dem Boden zu halten, damit aus dem Vorhaben keine "Eintagsfliege" wird, da offensichtlich viel Grundlagenwissen fehlt und er damit zu naiv rangeht. Ist ja nicht bös' gemeint, auch wenn's vielleicht ein wenig harsch klingt.
  Mit Zitat antworten Zitat
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#27

AW: Voice-/Sprach-Chat

  Alt 15. Jun 2014, 16:21
Seid so kritikfreudig, wie auch sonst. Ich habe ein Vorhaben. Das will ich verwirklichen und wenn ich meine Ausbildung anfange, kann ich auch nicht einfach sagen, dass ich keine Lust mehr habe. Demnach nutze ich meine Zeit, um zu lernen, euren Räten zu folgen und das Ding zuende zu stellen.

@Aphton
Dein Programm ist beeindruckend klein. Ich teste es auch noch mit einem Freund. Sollte es funktionieren und unseren Ansprüchen genügen, werde ich es, wenn du erlaubst als Vorlage zum Lernen nutzen und für unsere Zwecke noch auf eine schöne Form bringen.

Heißt natürlich nicht, dass ich aufhöre z.B. mit der bass.dll zu lernen oder auch noch meinen eigenen VoiceChat schreibe. Also der Thread ist wegen Aphton's VoiceChat nicht schon zuende.

Danke schön.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#28

AW: Voice-/Sprach-Chat

  Alt 16. Jun 2014, 12:13
Was ich aber am geilsten finde an diesem Thread, dass hier so viele "bekannte" Gesichter reinschreiben.
Ups... Sieh mal einer an zu welchem Club ich hier gehöre...

Zitat von Groucho-Marx:
"Ich mag keinem Club angehören, der mich als Mitglied aufnimmt."
Na egal...

BTB:

Thema 1 Audioaufnahme:
Die "Komponente" muss einen möglichst kleinen zum UDP Package großen Audiostream aufnehmen (Größe nach dem Codec). Bedeutet
Die nativen Audiodaten in Puffer 1 schreiben. Wenn der Puffer voll ist diesen durch einen Codec jagen und zwar einen der
KEINE Datei braucht. Hierfür sind VOIP/Telefon Codecs besser geeignet.
Die Routinen muss also einen Backcall/Interrupt auslösen, um das Samplen auf Puffer 2 um zu stellen und den Codec starten.

Thema 2 Übertragung:
Wenn der Codec fertig ist, müssen die Daten per TCP/IP oder UDP übertragen werden. Also müssen die Daten so klein sein, dass diese
genau so schnell oder schneller übertragen werden können, als dass aufnehmen des Puffers dauert. (inkl.Codec)
Also brauchst Du eine adaptive Qualitätseinstellung um die Größe an zu passen.

Weil? Was tun, wenn der Puffer2 schon voll ist, aber der Puffer 1 noch nicht codiert ist?
- Codec zu langsam

Was ist wenn der Codec schon wieder gestartet wird, obwohl der Übertragungspuffen noch nicht leer ist?
- 2. Puffer anlegen... 3. Puffer anlegen 4. usw. und hoffen, das der Sprechende mal ne pause macht. bzw.
Ab dem 3. Puffer die Aufnahme Qualität runter bzw. die Codec Kompression hoch setzen.

Ach ja unnötig zu erwähnen, dass Du natürlich parallel dazu die ganze Zeit auch noch Audio Streams empfangen musst und diese an die Soundkarte ausgeben musst.

Optimierung:
Sprachpausen, Hintergrund Geräusche und Echos erkennen und eliminieren.

Sprachpausen als Token (Warte n Millisekunden) (5 Byte) übertragen und nicht das dem Codec überlassen.

So kann es etwas werden...

Mavarik
  Mit Zitat antworten Zitat
onepiecefreak2

Registriert seit: 13. Jun 2014
50 Beiträge
 
#29

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 18:51
So,

ich habe mich mal durch Aphtons Programmcode gefressen. Nun ich bin weit gekommen, kann allerdings das Programm nicht neu compilieren, weil ich zB mal die Samplerate erhöht habe. Er fordert eine aphtonSocket.dcu. Da ich die nicht habe, habe ich den Verweis aus dem uses-Bereich gelöscht und kennt danach die REGION-Einklammerungen nicht mehr.

Also wenn Aphton mir die dcu-Datei gibt oder mir sagt, wie ich es auch ohne diese neu compilieren kann, wäre ich sehr dankbar.

Und nochmal, nicht dass es falsch rüberkommt, ich wollte nur die Samplerate mal höher stellen. Nichts anderes.
Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#30

AW: Voice-/Sprach-Chat

  Alt 17. Jun 2014, 20:40
Joa, hab ich vergessen.. Ist nur ein kleiner WinSock Wrapper..
Angehängte Dateien
Dateityp: pas aphtonSocket.pas (7,8 KB, 44x aufgerufen)
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz