오답노트
필요 함수 구현 - 음성 속도 조절(speed_change) 본문
전에는 음정을 조절하여 STT 에 대한 성능 향상을 도모해보았으나, 성능 개선에 영향에 끼치지 못했다는 결과를 알아냈다.
이번에는 속도를 조절하여 성능을 향상시키는 시도를 해보았다.
def speed_change(sound, speed = 1.0):
sound_with_altered_frame_rate = sound._spawn(
sound.raw_data,
overrides = {"frame_rate" : int(sound.frame_rate * speed)})
return sound_with_altered_frame_rate.set_frame_rate(sound.frame_rate)
속도 조절하는 함수 자체는 이미 누군가가 만들어놓은 것이 있어 사용을 했다.
(stackoverflow.com/questions/43408833/how-to-increase-decrease-playback-speed-on-wav-file)
how to increase/decrease playback speed on .wav file?
i'm trying to increase/decrease the pitch(or speed) on a few .wav files in pydub. I tried using sound.set_frame_rate (i multiplied the original frame rate, but nothing changed). Does anyone know ho...
stackoverflow.com
속도 조절 함수를 만들고 마찬가지로 디렉토리를 만들고 그 곳에 해당 파일들을 저장하기 위해 코드를 작성했다.
import speech_recognition as sr
import numpy as np
from hanspell import spell_checker
form pydub import AudioSegment
from librosa.core import audio
필요 라이브러리들을 임포트했다.
STT 는 api 를 사용하기로했는데, google 에서 제공하는 recognize_google 을 쓴다.
a = np.arrange(0.7, 1.3, 0.1) # 0.7 부터 1.3 까지
r = sr.Recognizer()
read = open('c:/...../test.txt', 'r', encoding='utf-8') #
txt_list = list()
f = open('c:/...../speed_change.txt', 'w') # 속도 조절 한 음성 파일로 돌린 STT 를 txt 파일로 저장
for i in range(1, 11): # 반복문 범위 지정, 여기선 파일 갯수가 11개이기 때문에 1, 11로 지정했다
stt_list = list()
f.write('[' + str(i) + ']' + '\n')
for j in a:
f.write('[' + str(np.round(j, 2)) + ']' + '\n') # 속도 조절의 정도를 정한다
sound = AudioSegment.from_file(
'c:/...../' + str(i) + '.wav')
change_speed = speed_change(sound, j)
chnage_speed.export(
'c:/...../' + str(i) + '.wav')
with audio as auido_file:
file = r.record(audio_file)
stt = r.recognize_google(file, language = 'ko-KR')
f.write('stt' + '\t' + ' : ' + stt)
f.close()
속도 조절을 한 뒤 STT 를 돌리고 해당 결과물을 txt 파일로 저장한 코드이다.
음정조절과 마찬가지로 성능향상에 큰 영향을 끼치지 못해 이후에는 사용하지 않기로 했다.
'프로젝트 > 화자 구분 음성 기록' 카테고리의 다른 글
필요 함수 구현 - 음정조절(pitch_change) (0) | 2021.05.12 |
---|---|
화자구분 (남녀) 모델 - CNN (0) | 2021.04.22 |
denoise (0) | 2021.04.22 |
푸리에 변환(fourier transfrom) (1) | 2021.04.08 |
librosa parameter 분석 : mfcc_to_audio (0) | 2021.04.03 |