 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 16.11.2006, 22:21 Titel: Kranke Idee - Spracherkennung mit QBasic |
|
|
Hallo Leudde,
ich hab da eine etwas abwegige Programmidee im Kopf rumschwirren:
Ein Spracherkennungsprogramm!
Wenn man einen bestimmten Satz sagt, dann soll ein vorher zugeortnetes Programm geöffnet werden.
Wenn ich zum Beispiel "öffne Mozilla" sage, dann soll Firefox gestartet werden. - Dies könnte man ja vorher entsprechend festlegen.
Leider brauche ich dafür eine Routine, die das Gesprochene "aufnimmt" und mit der vorher festgelegten Sprachausgabe vergleicht.
Man könnte ja dann die "Tonkurven" (was weis ich, wie das heißt) miteinander vergleichen und einige Abweichungen zulassen.
In QBasic gibt es ja Programme, die eine Grafik aus einer *.wav erstellen. Leider weis ich nicht, wie ich die Aufnahme anzeigen und so vergleichen könnte.
Könnt ihr mir da weiterhelfen?
Was haltet ihr überhaupt von der Idee?
MfG Type
Zuletzt bearbeitet von Type am 08.12.2006, 22:34, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 16.11.2006, 22:54 Titel: |
|
|
Es gibt irgendwo auf der Seite der CodingCrew ein Beispielprogramm von Marty, bei dem er auf's Mikro zugreift und die Wellen anzeigt.
Zur Idee selbst:
Graphisch vergleichen wär wahrscheinlich so gut wie nicht möglich. Wenn man aber Abweichungen von sagen wir 5-10% zulässt (bei dem, was du gepostet hast, isses mehr ), dann kann "öffne Mozilla" genauso etwas anderes bedeuten. Verschiedene Ereignisse/vordefinierte Tonaufnahmen würden sich dann überlagern und du bekämst dann zum Beispiel Firefox geöffnet und gleichzeitig auch einen Client für das ed2k-Netz ("öffne Gorilla" ).
Also meine Meinung kurzgefasst: das wird nix. So schön die Idee auch ist. Ich weiß, es gibt Spracherkennungssoftware (warum darf sich der Scheiß überhaupt so nennen?!) - rauskommen tut meist immer etwas _vollkommen_ anderes. Beispiel Handy: ich hab da auch 'ne Art Spracherkennung, wen ich anrufen will. Aber ich brauch bloß mal erkältet sein, oder ich bin g'rad an 'ner gut befahrenen Straße und schon funktioniert's net mehr. Ganz einfach deswegen, da die Abweichung zu groß ist.
Aber lass dich mal nicht entmutigen ( ), es gibt auch andere interessante Dinge, die in diese Richtung (fast eine Art KI) hingehen. Probier doch zum Beispiel mal, 'nen Eliza-Fake zu schreiben.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 16.11.2006, 23:03 Titel: |
|
|
Naja, also... theoretisch ist nichts unmöglich
Aber so was ist schon extrem schwierig...
Type hat Folgendes geschrieben: |
Man könnte ja dann die "Tonkurven" (was weis ich, wie das heißt) miteinander vergleichen und einige Abweichungen zulassen.
|
Also das müssten dann schon sehr viele Abweichungen sein, denn was ist
wenn ich lauter spreche, ich tiefer spreche, ich das 1. "a" länger als das
2. "a" ausspreche oder gar einen ganz anderen Singsang verwende?
Type hat Folgendes geschrieben: |
In QBasic gibt es ja Programme, die eine Grafik aus einer *.wav erstellen. Leider weis ich nicht, wie ich die Aufnahme anzeigen und so vergleichen könnte.
|
Also ich würde das Schwingungsbild direkt aus der Wav-Datei auslesen,
als Text. Wenn du das anzeigst hast du nämlich das Problem, dass man
es einen kurzen Moment sieht. Außerdem ist es nicht sehr elegant, ein
Schwingungsbild per SCREEN zu analysieren (geschweigedenn anzuzeigen)...
Wenn du keine Mühen scheust, würde ich dir eine KI empfehlen dem Computer wird
ein Text gegeben, den eine Person vorliest. Wenn das ein paar mal mit
verschiedenen Texten gemacht wurde und die KI entsprechen gut ist,
kann er sprechen und verstehen...
Aber das würdest du wahrscheinlich nie hinkriegen (auch kein anderer
aus dem Forum )...
Lange Rede kurzer Sinn: Es ist schwer, aber nicht unschaffbar.
EDIT: Mist, ich hab mal wieder zu lang gebraucht...
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
|
Nach oben |
|
 |
Elvis

Anmeldungsdatum: 01.06.2006 Beiträge: 818 Wohnort: Deutschland, BW
|
Verfasst am: 17.11.2006, 15:02 Titel: |
|
|
Du stellst dir also vor, dass du irgendwie, á la Quick&Dirty, ein Neuronales
Netz zusammenbastelst und das dann auch noch funktioniert?
Grüße, Elvis _________________ Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+ |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 17.11.2006, 23:34 Titel: |
|
|
Hallo Leudde,
eure Meinungen find ich sehr interessant, hätte nicht gedacht, dass es so eine Resonanz gibt.
Ich hab mal versucht mit Hilfe von Sample.bas der CodingCrew eine Aufnahme- und Abfrageroutine zu basteln.
Anstatt der Grafik, habe ich den "Wert" verwendet, der zuerst erstellt wird. (daraus ensteht dann die Grafik)
Die Zahlen werden beim erstellen eines Sprachbefehls gespeichert und die ganze Zeit über in einer Routine abgefragt.
Hat an sich gut gefunzt, aber die Abweichungen sind zu groß um sie vergleichen zu können. Vor allem was die länge des Sprachbefehls angeht...
- Daran muss ich wohl noch arbeiten...
MfG Type |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.11.2006, 23:38 Titel: |
|
|
nur mal so, genau die selbe projektfrage und genau den selben lösungsansatz vom autor aus gab's auch schon aufm Infection-Board.....kann das was heißen?  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 18.11.2006, 11:56 Titel: |
|
|
Das Samplen über den A/D-Wandler der Soundkarte stellt bei diesem Projekt noch die einfachste Aufgabe dar. Schwieriger wird schon die Auswertung.
Direkter Wellenformvergleich kannst Du vergessen, schliesslich spricht man nicht immer genau gleich schnell, so dass bereits die Anzahl Schwingungen variiert. Am ehesten dürfest Du noch Erfolg haben mit einer Fourier-Analyse Erfolg haben, also dem gezielten Zerlegen in die Grund- und einzelnen Oberschwingungen. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 18.11.2006, 14:10 Titel: |
|
|
Hallo
dreael hat Folgendes geschrieben: | Direkter Wellenformvergleich kannst Du vergessen, schliesslich spricht man nicht immer genau gleich schnell, so dass bereits die Anzahl Schwingungen variiert. Am ehesten dürfest Du noch Erfolg haben mit einer Fourier-Analyse Erfolg haben, also dem gezielten Zerlegen in die Grund- und einzelnen Oberschwingungen. |
Könnte man die Dauer des Wortes nicht etwas normieren? Also dass die Auswertung beginnt, wenn ein bestimmter Lautstärkepegel das erste mal überschritten wird und endet, wenn sie für eine bestimmte Zeit unterschritten bleibt. Die Aufzeichnungsdauer wird dann auf einen Standardwert gestaucht oder gestreckt.
Leider fehlt mir dazu das nötige Hintergrundwissen, aber vielleicht muss man ja auch garnicht den genauen Frequenzverlauf analysieren, sondern es reicht, wenn man eine Art Hüllkurve an die jeweiligen Mini- und Maxima zwischen zwei Nulldurchgängen der Aufzeichnung anlegt. Dies wird dann mit den gespeicherten und ebenfalls auf diese Weise normierten Wörtern verglichen und das, bei dem die geringsten Abweichungen gefunden werden wird erkannt. Also ich meine das so, dass man eigentlich nur den Lautstärkeverlauf vergleicht. Ist jetzt aber reine Spekulation.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 18.11.2006, 14:35 Titel: |
|
|
Tach Leudde,
genau das hatte ich auch vor.
Der Lautstärkepegel wird aufgenommen und mit dem Gesprochenen verglichen. - Es wird aber nur etwas aufgenommen, wenn eine bestimmte Lautstärke erreicht wird.
Diese wird zuvor automatisch festgelegt. (Wenn man nichts sagt, dann gibt es ja trotzdem Geräusche, diese Umgebungslautstärke wird dann übergangen und nicht in der Aufnahme gespeichert)
Der Sache mit dem Vergleich komme ich, glaub ich, langsam näher... - Allerdings weis ich noch nicht, was man gegen die Längenunterschiede des Gesprochenen Textes machen kann...
@Jojo:
Infection-Borad? - Ich bin nur hier registriert... keine Ahnung! - Könntest du mir evt. ne URL geben, damit ich mir das mal durchlesen kann?
@dreael:
Irgendwie kann ich mit dieser Fourier-Analyse nix anfangen, ich versteh das irgendwie nich
MfG Type |
|
Nach oben |
|
 |
Michael Frey

Anmeldungsdatum: 18.12.2004 Beiträge: 2577 Wohnort: Schweiz
|
Verfasst am: 18.11.2006, 14:43 Titel: |
|
|
Type hat Folgendes geschrieben: | @dreael:
Irgendwie kann ich mit dieser Fourier-Analyse nix anfangen, ich versteh das irgendwie nich |
Wikipedia?
Einfach gesagt:
Das Resultat der Fourier Analyse ist ein Diagramm, das zeigt welche Frequenz (Tonhöhe) in welcher Stärke vorkommt. _________________ http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 18.11.2006, 21:53 Titel: |
|
|
type: guckst du hier...  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Eisbaer

Anmeldungsdatum: 16.10.2004 Beiträge: 354 Wohnort: Deutschland,Bayern
|
|
Nach oben |
|
 |
Flo aka kleiner_hacker
Anmeldungsdatum: 23.06.2006 Beiträge: 1210
|
Verfasst am: 20.11.2006, 17:36 Titel: |
|
|
bäh...
ihr seid fies...
außerdem war es EIN VORSCHLAG und eine SEHHHHHHHR abwegige idee _________________ MFG
Flo
Satoru Iwata: Wer Spaß am Spielen hat, fragt nicht nach Grafik.
zum korrekten Verstaendnis meiner Beitraege ist die regelmaessige Wartung des Ironiedetektors unerlaesslich. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 20.11.2006, 17:57 Titel: |
|
|
Du hast wirklich noch viel zu lernen.
Wenn man überleben will, muss man Kritik vertragen können und erkennen, was gerechtfertigt war und was nicht. (In diesem Fall war's das aber. ) _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
croco97

Anmeldungsdatum: 04.11.2005 Beiträge: 260
|
Verfasst am: 21.11.2006, 11:12 Titel: |
|
|
Elvis hat Folgendes geschrieben: |
Du stellst dir also vor, dass du irgendwie, á la Quick&Dirty, ein Neuronales
Netz zusammenbastelst und das dann auch noch funktioniert?
Grüße, Elvis |
Na ja, ich bin da stark vorbelastet. Gehört zu meiner Berufstätigkeit, so Dinger zu bauen und zu benutzen.
Aber abgesehen davon: Ich glaube, es ist nicht (viel) leichter, die Aufgabe der Spracherkennung ohne NN zu bewältigen. Dass man NN's nicht einfach so hernimmt wie ne neue GUI-Lib - da hast sehr wohl recht.
Grüsse!
Croco |
|
Nach oben |
|
 |
helium

Anmeldungsdatum: 10.09.2004 Beiträge: 397 Wohnort: Leverkusen
|
Verfasst am: 21.11.2006, 14:18 Titel: |
|
|
Jo, NNs wäre jetzt erlichgesagt meine einzige Idee, wie ich das umsetzten könnte, obwohl meine NN-Erfahrungen doch arg beschränkt sind.
Audioanalysen in der Zeit-Domäne kannste ansonsten direkt knicken, behaupte ich jetzt mal.
Selbst in der Freqeunz-Domäne wirste Probleme haben. Die Formanten sind zwar bei allen Menschen ähnlich (deswegen klingt ein Mensch immer nach Mensch), aber dennoch verschieden (deswegen haben verschiedene Menschen auch verschiedene Stimmen). Männder, Frauen und Kinder sind diesbezüglich dann auch noch komplett verschieden. _________________ Bevor Sie aufhören sich körperlich zu betätigen sollten Sie ihren Doktor befragen. Körperliche Inaktivität ist abnormal und gefährlich für Ihre Gesundheit. |
|
Nach oben |
|
 |
Skilltronic

Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 21.11.2006, 15:08 Titel: |
|
|
Hallo
helium hat Folgendes geschrieben: | ...(deswegen haben verschiedene Menschen auch verschiedene Stimmen). Männder, Frauen und Kinder sind diesbezüglich dann auch noch komplett verschieden. |
Da müsste man erst noch klären, ob die Spracherkennung für beliebige Benutzer sein soll, oder ob man sie auf einen bestimmten Anwender abstimmt, von dem man zu Beginn Sprechproben der Befehle aufzeichnet. Das würde die Sache wahrscheinlich ziemlich vereinfachen.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
 |
Type
Anmeldungsdatum: 24.02.2006 Beiträge: 187 Wohnort: Dresden
|
Verfasst am: 21.11.2006, 15:39 Titel: |
|
|
Hallo Leudde,
Skilltronic hat Folgendes geschrieben: | Da müsste man erst noch klären, ob die Spracherkennung für beliebige Benutzer sein soll, oder ob man sie auf einen bestimmten Anwender abstimmt, von dem man zu Beginn Sprechproben der Befehle aufzeichnet. Das würde die Sache wahrscheinlich ziemlich vereinfachen.
|
Der Benutzer ordnet _seiner_ Aufnahme ein Programm zu und diese soll dann ständig mit dem, was er sagt verglichen werden.
- Wobei das mit dem Vergleichen nich funktionieren will...  |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|