Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Kranke Idee - Spracherkennung mit QBasic
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 16.11.2006, 22:21    Titel: Kranke Idee - Spracherkennung mit QBasic Antworten mit Zitat

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? durchgeknallt

MfG Type


Zuletzt bearbeitet von Type am 08.12.2006, 22:34, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 16.11.2006, 22:54    Titel: Antworten mit Zitat

Es gibt irgendwo auf der Seite der CodingCrew ein Beispielprogramm von Marty, bei dem er auf's Mikro zugreift und die Wellen anzeigt. lächeln

Zur Idee selbst: mit den Augen rollen Zunge rausstrecken durchgeknallt zwinkern
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 zwinkern), 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" lachen).
Also meine Meinung kurzgefasst: das wird nix. zwinkern 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. zwinkern

Aber lass dich mal nicht entmutigen (zwinkern), 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. lächeln
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 16.11.2006, 23:03    Titel: Antworten mit Zitat

Naja, also... theoretisch ist nichts unmöglich happy
Aber so was ist schon extrem schwierig... mit den Augen rollen zwinkern

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? zwinkern Zunge rausstrecken

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)... lachen durchgeknallt

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... durchgeknallt
Aber das würdest du wahrscheinlich nie hinkriegen (auch kein anderer
aus dem Forum mit dem Kopf durch die Mauer wollen peinlich )...

Lange Rede kurzer Sinn: Es ist schwer, aber nicht unschaffbar.

EDIT: Mist, ich hab mal wieder zu lang gebraucht... peinlich cool


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 17.11.2006, 09:46    Titel: Mikrofon einlesen, abtasten, Spracherkennung,Voice; Antworten mit Zitat

Ok, unmöglich ist das nicht.
Kommt drauf an wie du es anpacken willst,

Generell dazu siehe Telefon: (Festnetz)

Bei einem Fernsprechkanal werden 256 Stufen benutzt, ein Codewort hat 8 Bit, die Abtastfrequenz beträgt 8 kHz.

http://de.wikipedia.org/wiki/Puls-Code-Modulation
http://de.wikipedia.org/wiki/ISDN

So könnte man das dann, statt als Wave-Sinus Welle als 8 Bit Code speichern und hätte das Sprachmuster als 1 und 0 Wert.
Damit lassen sie Fehler vermeiden und Toleranzen hinzufügen.

noch was zum Mikrofon und zur Frequenzbestimmung:
http://www.activevb.de/tipps/vb6tipps/tipp0406.html


Grüße Eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 17.11.2006, 11:03    Titel: Antworten mit Zitat

Ich wüsste sofort, wie ich das anpacke: Über neuronale Netze.
http://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz
http://www.neuronalesnetz.de/
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=36178&lngWId=1

Das heisst, man schickt die Amplituden-Sequenzen vieler Sprachsamples "Öffne Mozilla" von verschiedenen Sprechern in den Input eines NN und lässt es auf Treffer trainieren. Das wird nicht viel Training brauchen, weil die Aufgabe für NN gut geschnitten und recht einfach ist.

Viele Grüsse!

Croco
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Elvis



Anmeldungsdatum: 01.06.2006
Beiträge: 818
Wohnort: Deutschland, BW

BeitragVerfasst am: 17.11.2006, 15:02    Titel: Antworten mit Zitat

croco97 hat Folgendes geschrieben:
Ich wüsste sofort, wie ich das anpacke: Über neuronale Netze.
http://de.wikipedia.org/wiki/K%C3%BCnstliches_neuronales_Netz
http://www.neuronalesnetz.de/
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=36178&lngWId=1

Das heisst, man schickt die Amplituden-Sequenzen vieler Sprachsamples "Öffne Mozilla" von verschiedenen Sprechern in den Input eines NN und lässt es auf Treffer trainieren. Das wird nicht viel Training brauchen, weil die Aufgabe für NN gut geschnitten und recht einfach ist.

Du stellst dir also vor, dass du irgendwie, á la Quick&Dirty, ein Neuronales
Netz zusammenbastelst und das dann auch noch funktioniert? lachen Kopf schütteln


Grüße, Elvis
_________________
Geforce 7300GT (256MB GDDR3, Gainward) -- 2x 512MB (DDR2 800, MDT) -- AMD Athlon64 X2 EE 3800+ -- Asrock ALiveNF5-eSATA2+
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 17.11.2006, 23:34    Titel: Antworten mit Zitat

Hallo Leudde,
eure Meinungen find ich sehr interessant, hätte nicht gedacht, dass es so eine Resonanz gibt. zwinkern

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.
durchgeknallt

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
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 17.11.2006, 23:38    Titel: Antworten mit Zitat

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? durchgeknallt
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 18.11.2006, 11:56    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 18.11.2006, 14:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 18.11.2006, 14:35    Titel: Antworten mit Zitat

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... mit dem Kopf durch die Mauer wollen

@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 ugly!

MfG Type
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 18.11.2006, 14:43    Titel: Antworten mit Zitat

Type hat Folgendes geschrieben:
@dreael:
Irgendwie kann ich mit dieser Fourier-Analyse nix anfangen, ich versteh das irgendwie nich ugly!

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 18.11.2006, 21:53    Titel: Antworten mit Zitat

type: guckst du hier... zwinkern
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eisbaer



Anmeldungsdatum: 16.10.2004
Beiträge: 354
Wohnort: Deutschland,Bayern

BeitragVerfasst am: 19.11.2006, 13:17    Titel: IBM - Spracherkennung Antworten mit Zitat

Oder du wartest einfach auf IBM... lächeln

http://www.golem.de/0409/33525.html

Grüße Eisbaer
_________________
Eigene Webseite:
http://www.eisbaer-studios.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Flo
aka kleiner_hacker


Anmeldungsdatum: 23.06.2006
Beiträge: 1210

BeitragVerfasst am: 20.11.2006, 17:36    Titel: Antworten mit Zitat

Jojo hat Folgendes geschrieben:
type: guckst du hier... zwinkern

bäh... Zunge rausstrecken
ihr seid fies... weinen
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 20.11.2006, 17:57    Titel: Antworten mit Zitat

Du hast wirklich noch viel zu lernen. Zunge rausstrecken
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. zwinkern)
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
croco97



Anmeldungsdatum: 04.11.2005
Beiträge: 260

BeitragVerfasst am: 21.11.2006, 11:12    Titel: Antworten mit Zitat

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? lachen Kopf schütteln


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
Benutzer-Profile anzeigen Private Nachricht senden
helium



Anmeldungsdatum: 10.09.2004
Beiträge: 397
Wohnort: Leverkusen

BeitragVerfasst am: 21.11.2006, 14:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 21.11.2006, 15:08    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Type



Anmeldungsdatum: 24.02.2006
Beiträge: 187
Wohnort: Dresden

BeitragVerfasst am: 21.11.2006, 15:39    Titel: Antworten mit Zitat

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... verwundert
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
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.

 Impressum :: Datenschutz