2017-11-29 2 views
1

나는 그룹 프로젝트를 진행 중이다. 우리는 오디오를 받아서 저장된 오디오 파일과 비교하고 입력 및 저장된 파일이 일치하면 오디오 메시지를 출력 할 수있는 프로그램을 개발하려고합니다.음성 인식 및 비교

오디오 파일을 일종의 파이썬 방법과 비교하고 싶습니다. 그러나이를 수행 할 방법을 찾지 못했습니다. 우리는 각 파일에서 데이터를 가져 와서 그들이 유사한 지 알 수있는 일종의 라이브러리를 찾고 있습니다.

시작하는 방법을 알 수 없습니다. 누군가가 우리가 시작하거나 올바른 방향으로 우리를 가리킬 수 있다면, 나는 우리가 거기에서 그것을 가져갈 수 있다고 생각합니다.

우리는 수십 개의 자습서를 보았고 웹을 검색했지만 여전히 큰 도움이 필요합니다. 누군가가 우리에게 어떻게 시작하는지 설명 할 수 있습니까?

+0

아마존은 말하기를 얻는 장치 Alexa를 판매하고 아마존 서버로 보내어 텍스트로 다시 가져옵니다. 아마존 서버를 사용하여 파이썬 프로그램에서 만든 누군가가 음성을 인식합니다 (그리고 라즈베리 파이에서 실행될 수 있습니다) – furas

답변

0

파이썬에는이 작업을 수행하는 데 많은 방법이 있습니다. 광대 한 오디오 라이브러리 없이도 파일을 비교할 수 있다고 생각합니다. 내가 틀렸을 수도있다. 그렇지 않으면 struct 모듈을 살펴보고 웨이브 파일을 읽을 수있는 정수로 변환하십시오. 이것을 사용해보십시오.

import wave 
w_one = wave.open('file_one', 'r') 
w_two = wave.open('file_two', 'r') 

if w_one.readframes() == w_two.readframes(): 
    print('exactly the same') 
else: 
    print('not a match') 

오디오 메시지 출력은 일반적인 것이 아니며 TTS 라이브러리를 사용하므로 인쇄하기 만하면됩니다. 큰 소리로 결과를 읽을 수 있습니다. 작동하는지 말해봐. 지금은 모바일에 있기 때문에 테스트 할 수는 없지만 제대로 작동합니다. 당신은 단지 뭔가를 말하면서 저장하고 다음을 사용하여 파이썬으로 실행시킬 수 있습니다.

import os 
os.system('prerecorded message.wav') 

오디오가 웨이브 파일인지 확인하십시오. 도움이 되었기를 바랍니다. 과학 박람회를 즐겁게 보내십시오!

오디오 파일이 비슷한 경우 원하는 경우 각 프레임을 가져 와서 분리 할 수있는 빈도 범위를 설정 한 다음 파일의 모든 지점에서 비교를 시작해야합니다. 그런 다음 범위에 있지 않고 파일의 다음 지점에서 시작할 때 반복되는 반복 루프를 만들어야합니다. 그것은 프로젝트, 행운을 빌어 먹을 것입니다! 배경 잡음에 대한 잡음 감소 알고리즘을 만들 수도 있습니다. 이는 복잡한 수학입니다.

정확도가인지 확인하려면 위 코드를 사용하십시오. 오디오를 스트리밍하는 경우에는 배경 잡음을 제거 할 수있는 방법이 없으므로 일부 모듈을 살펴보고 싶을 수도 있습니다. 또한 저장된 오디오 파일과 녹음 된 오디오 파일은 1/44000^s (s는 오디오의 시간 (초)입니다.) 정확하게 동일 할 확률. Alexa 서버를 사용해야 만 할 수도 있습니다.

파이썬으로 롤링하기가 어려울 수도 있지만 일단 이해의 장벽을 넘기 만하면 멋진 멋진 일을 할 수 있습니다. 나는 최근 파이썬의 거북이 용 그래픽 래퍼를 만들었는데, 나는 3D로 비행하는 로켓 우주선을 표시하도록 프로그래밍했다! 그것은 당신에게 그리스어처럼 들릴지도 모르거나별로 좋아하지 않을 수도 있습니다. 그러나 당신이 일을 그렇게 잘하는 것을 보는 것은 매우 멋집니다.

#Comparing them may be easier than I thought 
from scipy.io.wavfile import read as wavread 
[samplerate, y] = wavread('Comparison.wav') 
[samplerate, z] = wavread('Recording.wav') 
for x in range(0,samplerate,4): #Slight compression for the program to run faster. 
    y1,y2 = [y[x][0], y[x][1]] #y1,y2 are numbers for your in Comparison.wav. Use these to compare to file 2. 
    z1,z2 = [z[x][0], z[x][1]] #z1,z2 are numbers for you to compare. 

#Install scipy by holding down the window's Button & R. Then type in 
    #pip install scipy 
#You may have to press enter a few times to get it to work, but overall, be patient. You should be able to figure out how to compare the files from here. 
+0

휴대 전화에서 음악 파일을 랩톱에 연결된 마이크로 재생하고 있습니다. 아이디어는 프로그램이 휴대 전화에서 음악을 가져 와서 저장된 음악 파일과 비교하고 두 음악이 동일한 경우 구를 출력하는 것입니다.통제 된 환경에서이 작업을 수행하므로 배경 소음에 대해 걱정하지 않아도됩니다. –

+0

그리고 3D 비행 로켓은 굉장한 소리를냅니다 !!! –

+0

@ 토니 배경 잡음은 중요하지 않더라도 항상 중요한 요소입니다. 내가 전에 말한 것을 시도해보십시오. 범위 내에서 언제든지 일할 수 있도록 내 대답을 편집합니다. 너는 나에게 몇 가지를 주어야 할 것이다. – CoderBoy