AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Spracherkennung (Einzelworterkennung)
Thema durchsuchen
Ansicht
Themen-Optionen

Spracherkennung (Einzelworterkennung)

Ein Thema von omata · begonnen am 29. Sep 2007 · letzter Beitrag vom 13. Feb 2016
Antwort Antwort
Seite 3 von 4     123 4      
omata
Registriert seit: 26. Aug 2004
Wie hier bereits erwähnt,
stelle ich nun mal ein Programm vor, dass eine Spracherkennung (Einzelworterkennung) durchführt.

Im Anhang befindet sich auch eine Dokumentation.

Viel Spass beim Testen.

Wichtig für den Quellcode: Zeos-Komponenten

Gruss
Thorsten
Miniaturansicht angehängter Grafiken
spracherkennung.png  
Angehängte Dateien
Dateityp: pdf myvoicescanner_375.pdf (725,4 KB, 635x aufgerufen)
Dateityp: zip myvoicescanner.exe_199.zip (2,62 MB, 626x aufgerufen)
Dateityp: zip myvoicescanner_181.zip (2,21 MB, 400x aufgerufen)

Geändert von omata (14. Aug 2011 um 20:05 Uhr)
 
Timi-loader

 
Delphi 7 Personal
 
#21
  Alt 12. Mai 2008, 13:05
hmm hab personen und aufnahmen erstellt sehe die auch in der datenbank aber die erkunng klappt überhauptnicht.

also ich hab son stück einer aufnahme per stereo mix aufgenommen und in der db. wenn ich genau das selbe stück jetzt nochmal abspiele bei der erkennung dann sehe ich auch eine kurve aber er meint immer kein symbol erkannt.

  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#22
  Alt 12. Mai 2008, 16:22
Hallo Timi-loader,

ich habe mir das nochmal angesehen und konnte dein Problem nachvollziehen. Du hast vermutlich nur eine Aufnahme, selbst bei mehreren, die sehr stark in der Länge variiren tritt dieses Problem auf. Dann kann nämlich keine Prozentschwelle berechnet werden bzw. sie ist immer auf 0% und du erhälst deshalb keine Erkennung. Probiere erstmal aus, ob du eine Erkennung erhälst, wenn du die Schwelle auf 0% stellst.
Ich habe den Quellcode angepasst und neu hochgeladen. Der Benutzer kann nun entscheiden ob ein Längenvergleich durchgeführt werden soll. Ist dies der Fall, werden nur Signale verglichen, die in etwa gleichlang sind (das war bis jetzt der Default). Dann muss nicht jedes Muster mit dem zu erkennenden verglichen werden. Das erhöht die Geschwindigkeit, allerdings wenn nur noch ein Muster passt und damit nur als einziges zum Vergleichen herangezogen wird, dann kann keine Prozentschwelle ermittelt werden.
Dies wird jetzt anstelle der Prozentangabe ausgegeben und die Erkennungsschwelle wird dann nicht mehr berücksichtigt. Allerdings ist dann auch keine Aussage mehr möglich, ob das gefundene Muster auch wirklich dem gerade eingesprochenem entspricht.

Mir ist diese Problematik bis jetzt nicht aufgefallen, weil ich immer mehrere Muster (Zahlen: 0-9) in der Datenbank vorliegen hatte und diese eben alle ungefähr gleich lang sind, so das immer mehrere zu einem Vergleich herangezogen wurden.

Vielen Dank für diesen Hinweis, hoffe ich konnte dir das Problem näherbringen.

Grüsse
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#23
  Alt 12. Mai 2008, 17:39
Bei mir kommt es direkt nach Programmstart zu folgendem Fehler:

Code:
---------------------------
Spracherkennung
---------------------------
Aufnahme kann nicht initialisiert werden.
---------------------------
OK  
---------------------------
OS: Windows Vista 32 Bit.
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#24
  Alt 12. Mai 2008, 18:01
Das ist schade, ich habe kein Vista.

Quellcode ist ja für eine Fehlersuche vorhanden.

Edit: Hast du eventuell mehrere Soundausgabemöglichkeiten, aber nicht alle davon können aufnehmen?
Startet das Programm trotzdem? Wenn ja, könntest du mal ein anderes Device auswählen.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Timi-loader

 
Delphi 7 Personal
 
#25
  Alt 12. Mai 2008, 21:26
hallo omata.

ok jetzt versteh ich das problem. denn die aufnahmen die live gemacht werden fangen immer anders an und enden anders. also dein programm nimmt ja ein neues wort dann wahr wenn ne pause war. und ja hab auch nur wenig aufnahmen drinn bzw nur die eine in verschiedenen längen. aber auch bei 0% klappt es nicht. kannst du dein programm so umbaun, dass es auch teile aus einem andern erkennt? bzw wäre auch ne art live-mode dann gut. (also dass man praktisch doppelt recordet immer bei der hälfte des einen den andern schon recordern so könnte man nix verpassen)
den neuen quellcode kann ich leider nicht testen da ich nicht klar komme die zeus-komponenten zu installen (dbrtl fehlt.. ach ich hasse delphi personal)

mfg

achso: bei vielen dazugesprochenen zahlen noch und 0% erkennt er was. aber dann eben alles quer durchs beet^^
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#26
  Alt 12. Mai 2008, 21:50
Hallo Timi-loader,

die Personal-Version hat kein TDataSet, deshalb kannst du die ZEOS-Komponenten nicht installieren.

Wie der Titel schon sagt kann dieses Programm eine Einzelworterkennung. In einem Wort sind normalerweise keine Pausen. Der verwendete DTW-Algorithmus ist zwar ziemlich genau in der Erkennung aber es ist nunmal systembedingt, dass alle Muster verglichen werden müssen. Da der Algorithmus relativ aufwendig ist wird das System bei vielen Mustern sehr langsam.
Ich weiss nicht was du vorhast und was du dir vorstellst, was dieses System im Stande ist zu leisten. Spracherkennung ist nichts triviales. Ich habe da Monate dran gesessen und das mal eben umzuprogrammieren ist nicht so einfach bzw. wenn ich da keine wirkliche Verbesserung erkennen kann, dann werde ich da keine Zeit rein investieren. Das System ist schon hoch optimiert, aber Zaubern kann es nunmal nicht.
Das Hauptproblem ist nunmal die Größe des Wortschatzes, der DTW ist nur anwendbar bei einem kleinen oder reduzierbaren Wortschatzumfang. Da ist er dann aber unschlagbar!

Vielleicht solltest du dich mal mit HMMs und KNNs beschäftigen, mir waren die HMMs damals allerdings einfach zu kompliziert. Siehe hier.

Was du da genau machen möchtest verstehe ich allerdings noch nicht so ganz.

Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#27
  Alt 12. Mai 2008, 22:15
Ne also das Programm startet nicht. Es folgen noch 3 bis 4 weitere Fehlermeldungen, die aber nur Zugriffsverletzungen melden. Wenn ich Zeit habe, kann ich mal bisschen debuggen.
  Mit Zitat antworten Zitat
Blacky1812
 
#28
  Alt 3. Aug 2008, 15:04
Hallo,
ich wollte eigentlich ein kleines privates Programm schreiben auf der Basis von diesem hier... jedoch habe ich Probleme, es überhaupt zu compilieren.

Das Problem liegt in der Unit "Main" (und weiterhin wohl auch überall dort, wo die Dateien fehlen). Hier fehlen einige dcu's:

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, ExtCtrls, BassPlayerExU, BassTypenU, Menus,
  ZConnection, DB, ZAbstractRODataset, ZAbstractDataset, ZDataset, Grids,
  DBGrids, DBCtrls, DmConnectionU, FrameAufnahmeU, FFTU, Math, AuswertungU,
  BassChannelU, WaveToolsU, WaveAnalyseU, WaveFrameU, WaveTypenU,
  BassRecordingU, Spin;
Fehlermeldung:
Zitat:
[DCC Fehler] Main.pas(18 ): F1026 Datei nicht gefunden: 'ZConnection.dcu'
sowie die gleiche jeweils für: ZAbstractRODataset.dcu, ZAbstractDataset.dcu und ZDataset.dcu

Was mache ich falsch? Fehlen mir einige Daten, die für das Programm nötig sind? Ich dachte, es wäre so weit OpenSource und würde komplett zum Download stehen.
Google spuckt da auch nichts aus.

Hat jemand nen heißen Tip für mich?

Grüße,
Blacky1812
  Mit Zitat antworten Zitat
helgew
 
#29
  Alt 3. Aug 2008, 15:21
nette Sache... werde ich heute Abend testen :>
  Mit Zitat antworten Zitat
omata

 
Delphi 7 Enterprise
 
#30
  Alt 3. Aug 2008, 15:51
Zitat von Blacky1812:
Was mache ich falsch? Fehlen mir einige Daten, die für das Programm nötig sind?
Erster Beitrag:
Zitat von omata:
Wichtig für den Quellcode: Zeos-Komponenten
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 08:23 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