Autonoma / röst kontrollerat - 3D Scanning rigg för 3D utskrift (29 / 31 steg)
Steg 29: Taligenkänning - programvara (för windows)
Tanken är att programmera datorn att känna igen några nyckelord som aktiverar skanningsprocessen automatiskt, detta görs genom att styra musen automatiskt, som en mus bot.
Windows Taligenkänning SDK möjliggör erkännande talprogram utvecklas.
Instruktioner:
-Installera skanect
-Installera Microsoft speech tool-kit
-Installera visual studio
-Öppna voicerecognition projektet (attachment)
Koden identifierar sökord och skickar kommandon till COM-porten ansluten till Arduino via Bluetooth.
Ändra COM-porten för att matcha den Bluetooth porten, ändra sökvägen till programmet skanect och slutligen köra programmet.
Nu behöver du bara placera dig själv på denna ställning och säga "starta skanect" att börja skanna. Musen kommer att flytta den själv, göra nödvändiga anpassningar till koordinaterna för musen vid behov. Skanningen tar 60 sekunder, göra nödvändiga justeringar om det behövs.
Du kan också ändra hastigheten på skivspelaren med hjälp av följande röstkommandon:
-snurra motorn snabbare
-snurra motorn långsammare
Av säkerhetsskäl kan du också stänga motorn av och på med hjälp av följande nyckelord:
-vända motor off
Du har också möjlighet att ändra spin riktning med hjälp av följande nyckelord:
-sväng höger motor
-sväng höger motor
med hjälp av systemet.
använder System.Collections.Generic;
använder System.Linq;
använder System.Text;
använder System.Windows;
använder System.Windows.Controls;
använder System.Windows.Data;
använder System.Windows.Documents;
använder System.Windows.Input;
använder System.Windows.Media;
använder System.Windows.Media.Imaging;
använder System.Windows.Navigation;
använder System.Windows.Shapes;
använder System.Windows.Media.Animation;
använder System.Speech.Recognition;
använder System.Speech.Synthesis;
användande System.Runtime.InteropServices;
använder System.IO.Ports;
använder System.Threading;
namnområdet VoiceRecognitionGame
{
offentliga partiell klass MainWindow: fönster
{
privat SpeechSynthesizer _synthesizer = ny SpeechSynthesizer();
[DllImport ("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
offentliga statisk extern void mouse_event (uint dwFlags, int dx, int dy, int dwData, int dwExtraInfo);
CONST int MOUSEEVENTF_MOVE = 0x0001; flytta musen
CONST int MOUSEEVENTF_LEFTDOWN = 0x0002; analoga vänster musknapp är nedtryckt
CONST int MOUSEEVENTF_LEFTUP = 0x0004; analoga vänster musknapp knappen hissen
CONST int MOUSEEVENTF_RIGHTDOWN = 0x0008; simulera en höger musknapp press
CONST int MOUSEEVENTF_RIGHTUP = 0x0010; simulera en höger musknapp hiss
CONST int MOUSEEVENTF_MIDDLEDOWN = 0x0020; simulera en mitten musknappen trycks
CONST int MOUSEEVENTF_MIDDLEUP = 0x0040; simulera en mellersta mus knapp lift
CONST int MOUSEEVENTF_ABSOLUTE = 0x8000; märkt den absoluta koordinaten
offentliga SerialPort serialPort = nya SerialPort();
offentliga flyta hastighet = 0;
offentliga flyta riktning = 1;
privat SpeechRecognitionEngine _recognizer;
offentliga MainWindow() {
InitializeComponent();
_recognizer = ny SpeechRecognitionEngine();
_recognizer. SetInputToDefaultAudioDevice();
Val val = nya val ("spin motor långsammare", "vända motor off", "snurra motorn snabbare", "sväng höger motor", "sväng vänster motor", "starta skanect");
GrammarBuilder grBuilder = ny GrammarBuilder(choices);
Grammatik grammatik = nya Grammar(grBuilder);
_recognizer. LoadGrammar(grammar);
_recognizer. SpeechRecognized += nya EventHandler < SpeechRecognizedEventArgs > (_recognizer_SpeechRecognized);
_recognizer. RecognizeAsync(RecognizeMode.Multiple);
serialPort.BaudRate = 9600;
serialPort.PortName = "COM12"; In i Windows
serialPort.Open();
SKRIV INKOMMANDE BUFFERTEN TILL KONSOLEN
samtidigt (serialPort.BytesToRead > 0)
// {
Console.Write(Convert.ToChar(serialPort.ReadChar()));
// }
SKICKA
Thread.Sleep(500);
}
void arduino_write(float spd) {
om (spd == 0)
serialPort.Write("s00");
om (spd == 1)
serialPort.Write("s01");
om (spd == 2)
serialPort.Write("s02");
om (spd == 3)
serialPort.Write("s03");
om (spd == 4)
serialPort.Write("s04");
om (spd == 5)
serialPort.Write("s05");
om (spd == 6)
serialPort.Write("s06");
om (spd == 7)
serialPort.Write("s07");
om (spd == 8)
serialPort.Write("s08");
om (spd == 9)
serialPort.Write("s09");
om (spd == 10)
serialPort.Write("s10");
om (spd == 0)
serialPort.Write("s00");
om (spd == 1)
serialPort.Write("s01");
om (spd == 2)
serialPort.Write("s02");
om (spd == 3)
serialPort.Write("s03");
om (spd == 4)
serialPort.Write("s04");
om (spd == 5)
serialPort.Write("s05");
om (spd == 6)
serialPort.Write("s06");
om (spd == 7)
serialPort.Write("s07");
om (spd == 8)
serialPort.Write("s08");
om (spd == 9)
serialPort.Write("s09");
om (spd == 10)
serialPort.Write("s10");
}
void _recognizer_SpeechRecognized (objekt avsändare, SpeechRecognizedEventArgs e) {
RESULTAT1. Förloppsindikatorförekomstens;
RESULTAT1. AppendText(e.Result.Text);
output2. Förloppsindikatorförekomstens;
output2. AppendText(e.Result.Confidence.ToString());
om (e.Result.Confidence < 0,40)
hemkomst.
SpeechSynthesizer s = nya SpeechSynthesizer();
växel (e.Result.Text)
{
fallet "starta skanect":
s.Speak ("ja Herre, programmet kommer att starta i några sekunder");
System.Diagnostics.Process.Start ("C:\\Program Files\\Skanect 1.5\\bin\\skanect");
Thread.Sleep(10000);
mouse_event (MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Thread.Sleep(5000);
hastighet = 10;
arduino_write(Speed);
Thread.Sleep(25000);
hastighet = 0;
arduino_write(Speed);
mouse_event (MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
mouse_event (MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
Thread.Sleep(1000);
hastighet = 0;
arduino_write(Speed);
bryta;
fallet "spin motor långsammare":
om (hastighet > 1)
{
Speed--;
Speed--;
}
arduino_write(Speed);
bryta;
fallet "vända motor off":
serialPort.Write("s00");
s.Speak ("motor off");
hastighet = 0;
arduino_write(Speed);
bryta;
fallet "snurra motorn snabbare":
om (hastighet < 9)
{
Speed ++;
Speed ++;
}
bryta;
fallet "vända motor vänster":
s.Speak ("ha en trevlig dag sir");
arduino_write(Speed);
riktning = 0;
bryta;
fallet "sväng höger":
s.Speak ("ha en trevlig dag sir");
arduino_write(Speed);
riktning = 1;
bryta;
standard:
bryta;
}
}
}
}