여정의 기록
wav 음성파일 silence 제거함수 librosa.effects.split 본문
728x90
trim으로는 시작지점을 찾을 수가 없다.
trim만으로 음성파일의 silence를 가려내는데 한계가 있어서 다른 함수를 찾아보았다.
구하고자 하는 값은 음성파일 wav 속에서 말이 시작되고 끝나는 지점의 시간을 측정하는 것이었다.
librosa.effts.trim을 사용하게 되면 앞 뒤로 silence를 제거해주지만,
y의 값에 주파수 값이 담기게된다.
예) [0.00001 , 0.02300 , .... ] 이런식으로 ...
해당 값을 이용해서 y 배열의 인덱스값을 구한다음 시간을 구할 수 있었는데,
해당 값이 하나의 인덱스에만 나온다는 보장이 없었다.
그래서 인덱스값을 바로 리턴해주는 effects.split을 사용했다.
librosa.effects.split 사용법
1. audio.wav 파일을 불러온다
2. audio.wav 주파수 정보가 담긴 x를 이용한다.
import librosa
import soundfile as sf
x, sr=librosa.load('audio.wav')
clips = librosa.effects.split(x, top_db=20)
clips 값 : [[ 0 2560] [ 8704 14336] [15872 26624] [28160 34816] [41984 53248]]
이와 같이 배열의 형태로 인덱스값을 가지게된다.
처음에는 가장 앞에있는 값을 말의 시작값 가장 끝에있는 값을 말의 끝값으로 사용하려고 했으나
아무리봐도 0은 말의 시작부분이 아니였다.
그래서 희안한 방법을 사용하게 되는데....^^
728x90
'공부 > 프로젝트 진행' 카테고리의 다른 글
DICOM 파일에 대한 이해, Nii 파일 불러오기 (0) | 2022.10.06 |
---|---|
캐글에서 .csv 파일 로컬에 다운로드하고 싶을 때 (0) | 2022.10.02 |
librosa.effects.trim. wav 음성파일에서 공백제거 (0) | 2022.08.12 |
Deep Residual Learning for Image Recognition 공부 (0) | 2022.07.29 |
DistilBERT란? (0) | 2022.07.22 |