Window Speech Recognition을 활용한 아두이노 컨트롤

by 강종구 | 2017-07-21 16:19
마이크 아두이노 음성 음성인식

이번에는 Windows의 기본 내장 프로그램인 Windows Speech Recognition을 활용하여 아두이노를 음성으로 컨트롤 해볼 예정입니다.


프로젝트는 window7을 기반으로 기술되지만 window10에서도 사용하실 수 있습니다.


1. 준비물

마이크, window 버전에 맞는 데스크톱이나 노트북, 아두이노 Mega, Visual Studio 2016


2. Windows Speech Recognition

음성 인식에 사용될 문장을 만들기 위해 windows Speech Recognition Macro 설치가 필요합니다. 또한 마이크로 입력되는 음성을 인식하기 위해 기본 설치된 Windwos Speech Recognition 또한 사용합니다.



3. C# 소스 코드

window Speech Recognition을 아두이노와 연결해서 사용하기 위해서는 별도의 소스코드를 컴파일 해서 사용해야 합니다. visual c#이나 Visual Studio를 통해서 아래의 c# 코드를 설정해주면 됩니다.


1) Visual Studio를 열고 새로운 프로젝트를 만든다

2) Console Application으로 빈프로젝트를 생성한다

3) .cpp 파일을 만들고 아래의 코드를 첨부한다

4) 디버깅을 한 뒤 .exe 파일을 통해 음성인식에 사용한다



          usingSystem;

  1. usingSystem.Collections.Generic;
  2. usingSystem.Linq;
  3. usingSystem.Text;
  4. usingSystem.IO.Ports;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         staticvoid Main(string[] args)
  11.         {
  12.             SerialPort port =new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);//Change COM5 to your com.
  13.             port.Open();
  14.             port.Write("1");//the data that will be sent to the arduino, change if it is needed.
  15.             port.Close();
  16.  
  17.         }
  18.     }
  19. }




4. 아두이노 소스코드



          int led = 3; // Pin 3

  1. void setup()
  2. {
  3.        pinMode(led, OUTPUT); // Set pin 13 as digital out
  4.       // Start up serial connection
  5.       Serial.begin(9600); // baud rate
  6.       Serial.flush();
  7. }
  8. void loop()
  9. {
  10.        String input = "";
  11.        // Read any serial input
  12.        while (Serial.available() > 0)
  13.        {
  14.               input += (char) Serial.read(); // Read in one char at a time
  15.               delay(5); // Delay for 5 ms so the next char has time to be received
  16.        }
  17.        if (input == "1") //if the arduino got "1" from the serial communication
  18.        {
  19.               digitalWrite(led, HIGH); // on
  20.        }
  21.        else if (input == "0") //if the arduino got "0" from the serial communication
  22.        {
  23.               digitalWrite(led, LOW); // off
  24.        }
  25. }




5. 실행하기



1) 마이크를 컴퓨터에 연결하기

2) Windows Speech Recognition 설치하기

3) 제어판의 Speech Recognition을 실행하기

4) Windows Speech Recognition Macros 실행해서 새로운 매크로 생성하기

5) 프로그램 실행 클릭

6) LED를 켜기 위한 문장을 생성하기

7) c# 코드로 만들어진 exe 파일을 찾아서 연결시켜주기

8) 생성하기


6. 실제 테스트 모습




이를 더 자세하기 알고 싶으시면 원문을 참조하세요.


댓글 0

아두이노를 활용한 음성인식

Window Speech Recognition을 활용한 아두이노 컨트롤

by 강종구