Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 04, 2025 13:21

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Eigener Audioplayer & Sprachausgabe
BeitragVerfasst: Di Jan 07, 2003 14:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Hi,

wie kann dich ohne die Kompo "TMediaPlayer" einen Audioplayer proggen? Und wie steht es eigentlich mit der Sprachausgabe eines PCs? Ich meine wir sprechen "Sp" ja auch nicht mit 2 Tönen. Lässt sich dynamisch kreeirte Sprachausgabe realisieren, wenn ja, wie?
Thnx im Voraus

Cyas,


Nach oben
 Profil  
Mit Zitat antworten  
BeitragVerfasst: Di Jan 07, 2003 15:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Zitat:
wie kann dich ohne die Kompo "TMediaPlayer" einen Audioplayer proggen?

Ganz einfach!Nimm dir eine bereits existierende Audio-Schnittstelle wie z.B. OpenAL oder DirectSound, oder entsprechende SoundLibs die darauf aufbauen (FMOD, BASS) und nutz deren Funktionen zum Abspielen verschiedener Soundformate.
FMOD kommt als praktische DLL, ist für unkommerzielle Produkte kostenlos, spielt jede Menge Formate (MP3, WAV, OGG-Vorbis, MIDI, S3-Tracker, uvm) und gibts hier : <a href='http://www.fmod.org' target='_blank'>http://www.fmod.org</a> (FMOD kommt in meinem aktuellen Projekt auch zum Einsatz)

Zitat:
Und wie steht es eigentlich mit der Sprachausgabe eines PCs? Ich meine wir sprechen "Sp" ja auch nicht mit 2 Tönen. Lässt sich dynamisch kreeirte Sprachausgabe realisieren, wenn ja, wie?

Ja...aber komm nicht auf die Idee das selbst machen zu wollen.Da haben heutzutage selbst wissenschaftliche Institute noch ihre Probleme mit.Die menschliche Sprache ist eine sehr komplexe Wissenschaft.
Wer sich noch an die SoundBlaster 16/AWE-Zeiten erinnern kann, der kennt auch garantiert noch das damals mitgelieferte Text-To-Speech.
Das hat genau das gemacht was du wolltest, und einen Text "versucht" zu sprechen (oder gar *oh wie grausam*) zu singen.
Das hat sich nur leider nicht besonders natürlich angehört.Die Technik hat zwar weite Schritte gemacht, steckt aber immernoch am Anfang, da besonders die Betonung und Dynamik der Sprache noch schwer zu schaffen machen!
Dynamische Sprachausgabe basiert ja letztendlich (im Gegensatz zu *statischer*, die auf Wavedateien basiert) auf mathematischen Formeln, die den Frequenzgang verschiedener Buchstaben darstellen.
Diese Methode ist natürlich weitaus speichersparender als andere Verfahren, steht wie gesagt aber noch am Anfang ihrer Karriere...

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Jan 07, 2003 15:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Hehehe, eine SB 16 steckt in meinem 133er, für den ich mal 'n Moni bräuchte und 5 Jahre lang verwendet habe. Also kenn ich das. Das mit dem Singen klappt leider nicht so richtig... Mir langt ja schon zu eine Kreation wie "Text-To-Speech" oder "Webspeech"!
Und dann wollen wir mal mit Entwickeln anfangen... wär doch gelacht... hehehe
Wie kreire ich denn Töne wie ein stimmloses S oder ein p? oder ein k? Oder E? Oder A, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z? *sg*


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 11, 2003 00:34 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Hi,

Hab ein Problem mit FMOD, wie lade ich denn aus PSingle den Array mit den 512 Werten?
Code:
  1.  
  2.  
  3. var
  4.  
  5.  &nbsp;Form1: TForm1;
  6.  
  7.  &nbsp;sf1: Pointer;
  8.  
  9.  &nbsp;fft: PSingle;
  10.  
  11.  &nbsp;fftdesc: Single;
  12.  
  13.  &nbsp;acti: Boolean;
  14.  
  15.  &nbsp;fps, fpsc: Integer;
  16.  
  17.  
  18.  
  19. implementation
  20.  
  21.  
  22.  
  23. {$R *.dfm}
  24.  
  25.  
  26.  
  27. procedure TForm1.Button1Click(Sender: TObject);
  28.  
  29. begin
  30.  
  31.  FSOUND_SetVolumeAbsolute(FSOUND_FREE,-50);
  32.  
  33.  sf1 := FSOUND_Stream_OpenFile('I:Music1.mp3',FSOUND_2D,FSOUND_Stream_GetLength(Self));
  34.  
  35.  FSOUND_Stream_Play(FSOUND_FREE,sf1);
  36.  
  37.  fft := FSOUND_DSP_GetSpectrum;
  38.  
  39.  acti := True;
  40.  
  41. end;
  42.  
  43.  
  44.  
  45. procedure TForm1.FormCreate(Sender: TObject);
  46.  
  47. begin
  48.  
  49.  FSOUND_Init(44100,32,0);
  50.  
  51.  FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit,True);
  52.  
  53. end;
  54.  
  55.  
  56.  
  57. procedure TForm1.ApplicationEvents1Idle(Sender: TObject;
  58.  
  59.  &nbsp;var Done: Boolean);
  60.  
  61. begin
  62.  
  63.  Done := False;
  64.  
  65.  inc(fps);
  66.  
  67.  if acti then
  68.  
  69.  begin
  70.  
  71.  &nbsp;fftdesc := fft^ * 100000;
  72.  
  73.  end;
  74.  
  75.  GAuge1.Progress := TrunC(fftdesc);
  76.  
  77. end;
  78.  
  79.  
  80.  
  81. procedure TForm1.Timer1Timer(Sender: TObject);
  82.  
  83. begin
  84.  
  85.  fpsc := fps;
  86.  
  87.  fps := 0;
  88.  
  89.  Form1.Caption := '[' + IntToStr(fpsc) + ' fps]';
  90.  
  91. end;
  92.  
  93.  

Der Timer ist nur zur Auslastungsüberprüfung drin.

Gibts auch irgendwo im Netz deutsche Tuts zu FMOD?

Cyas,


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 11, 2003 12:07 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Okt 26, 2002 17:14
Beiträge: 188
Wohnort: Hannover/Lüneburg
Hallo!

Wenn ich das jetzt richtig in Erinnerung habe, sollte das so funktionieren:
Code:
  1. type
  2.  
  3.  &nbsp;PSingleArray = ^TSingleArray;
  4.  
  5.  &nbsp;TSingleArray = Array[0..512] of Single;
  6.  
  7. ...
  8.  
  9. var
  10.  
  11.  &nbsp;Data : PSingleArray;
  12.  
  13. ...
  14.  
  15. Data := PSingleArray(FSOUND_DSP_GetSpectrum);
  16.  
  17. ...
Dann kannst Du die Werte einfach aus dem Array auslesen.

_________________
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jan 11, 2003 12:41 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 02, 2002 15:41
Beiträge: 867
Wohnort: nahe Stuttgart
Danke, klappt jetzt.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.010s | 16 Queries | GZIP : On ]