본문 바로가기

RPA

[UiPath] 음성인식으로 reCaptcha 풀어보기 - 1

로그인할 때 종종 보이는 reCaptcha..
친구가 reCaptcha가 있을 때 UiPath로 로그인하는 방법을 아냐고 물어봐서 호기심에 시작해봤슴다.

체크 박스를 누르면 위의 화면이 표시되는데요
저 상태로는 풀기 힘들 것 같아 오디오로 푸는 방법을 선택했습니다.
아주 간편하게....... Chrome Extension으로 푸는 방법이 있습니다.!

헤드셋 버튼을 누르면 나오는 화면입니다.
다운로드 버튼을 눌러서 오디오 파일(mp3)을 다운로드 받을 수 있습니다.

처음은 .NET으로 시도해봤습니다.

우선 준비할 것이있는데..
1. 영어 언어팩 설치
2. UiPath에서 System.Speech 패키지 설치

 

1. 영어 언어팩 설치
reCaptcha의 음성이 영어로 나오기 때문에 인식을 위해선 깔아주어야 합니다.

별 다른 설정을 하지 않았다면 한국어만 있을텐데요
언어 추가 선택하셔서 영어(미국) 설치해주시면 됩니다~

 

2. System.Speech 설치

패키지 관리에서 System.Speech를 찾아서 설치해주시면 됩니다.
현재 제일 최신 버전인 7.0.0  설치했습니다.

Invoke Code 사용해서 구현했습니다.

// en-US speech recognizer 생성
Dim recognizer = New System.Speech.Recognition.SpeechRecognitionEngine(New System.Globalization.CultureInfo("en-US"))

// 오디오 파일 할당
recognizer.SetInputToWaveFile("Data\audio.wav")
// DictationGrammar 생성 및 로드
Dim gr = New System.Speech.Recognition.DictationGrammar()
recognizer.LoadGrammar(gr)

// StringBuilder 생성 및 결과 값 출력
Dim sb = New System.Text.StringBuilder()
Dim recText = recognizer.Recognize()
sb.Append(recText.Text)

Console.WriteLine(sb)

결과가 잘 나오는 모습을 볼 수 있습니다.
사실 여기까지는 작년 11월.. 12월쯤에 구현 완료했었는데 문제점이 있었습니다.
1. 정확도가 떨어짐 - 앞의 잡음까지 음성으로 인식하여서 값이 정확할 때도 있었지만 아닐 때도 있었습니다. 
2. wav 파일만 Input으로 받을 수 있음 - 다운로드 받아지는 파일은 mp3 파일인데 사용하는 method는 wav 파일만 받습니다.

1번 문제의 경우는 옵션을 줘서 해결할 수 있을 것 같은데, 앞의 잡음이 일정한 시간동안 재생될 것이란 확신이 없어서 다른 방법을 찾았습니다.
Python으로 해결 방법을 찾다가.. 포스팅이 좀 늦었슴니다.. 1편부터 써버리면... 평생 2편을 안 쓸 것 같아서요....
2편에서는 Python으로 음성인식하는 방법을 포스팅하겠슴니다.

아래 링크 참조하여 구현했습니다.! 

https://learn.microsoft.com/en-us/dotnet/api/system.speech.recognition.speechrecognitionengine?view=netframework-4.8.1 

 

SpeechRecognitionEngine Class (System.Speech.Recognition)

Provides the means to access and manage an in-process speech recognition engine.

learn.microsoft.com

https://learn.microsoft.com/en-us/dotnet/api/system.text.stringbuilder?view=netframework-4.8.1 

 

StringBuilder Class (System.Text)

Represents a mutable string of characters. This class cannot be inherited.

learn.microsoft.com