전체 글
-
음원 duration 구하는 방법Librosa 2021. 12. 6. 15:58
librosa를 이용해서 음원을 작업하다보면 종종 duration을 구해야 할 때가 있습니다. librosa에서는 기본적으로 함수를 제공하기 때문에 별도의 계산없이 바로 구할 수 있습니다. import librosa audio_path = "test.wav" sample_rate = 44100 mono = True (audio, sample_rate) = librosa.load(audio_path, sr=sample_rate, mono=mono) duration = librosa.get_duration(audio, sr=sample_rate) print(f"Audio Duration: {duration}") #### Audio Duration: 6.873106575963718 위의 계산은 복잡한 계산이 ..
-
Librosa, Soundfile를 이용해서 음원 읽어오기, 저장하기Librosa 2021. 12. 6. 15:36
import librosa, soundfile sample_rate = 44100 src_audio_path = "test.wav" trg_audio_path = "processed_test.wav" mono = True """ load """ (audio, sample_rate) = librosa.load(src_audio_path, sr=sample_rate, mono=mono) """ save """ soundfile.write(trg_audio_path, audio, sample_rate, format='WAV')
-
Pandas에서 원하는 행, 열 추출하기Pandas 2021. 12. 6. 15:24
import natsort, pandas N = 20 path_range = [f"P_{i}" for i in range(N+1)] value_range = [f"V_{j}" for j in range(N+1)] (paths, values) = (natsort.natsorted(path_range), natsort.natsorted(value_range)) df = pandas.DataFrame({"P": paths, "V": values}) # 열 추출, column """ series """ path_column_series = df.P value_column_series = df.V """ list """ path_column_list = df.P.tolist() value_column_list =..
-
Natsort를 이용한 숫자 리스트 정렬Natsort 2021. 12. 6. 15:08
숫자가 포함된 list를 정렬하다보면 sorted() 함수를 이용할 때가 자주 있습니다. 매우 유용한 함수지만, zfill() 함수를 이용하여 자릿수를 맞추지 않은 경우엔 아래처럼 매우 불편한 상황이 나오기도 합니다. N = 20 paths = [f"path_{i}" for i in range(N+1)] sorted_paths = sorted(paths) print(sorted_paths) #### ['path_0', 'path_1', 'path_10', 'path_11', 'path_12', 'path_13', 'path_14', 'path_15', 'path_16', 'path_17', 'path_18', 'path_19', 'path_2', 'path_20', 'path_3', 'path_4', '..
-
Tacotron 무지성 구현 - 8/NTacotron 1 2021. 11. 5. 00:29
오랜만에 포스팅하네요. tacotron1과 끝장을 보고 왔습니다. 이런저런 수정을 많이 거치면서 그동안 포스팅했던 코드를 다시 살펴봤습니다. 정말 가관이더라고요 천천히 수정할 예정이지만 그래도 나름 완성해본 코드를 github에 올려두었습니다. https://github.com/choiHkk/Tacotron/ GitHub - choiHkk/Tacotron Contribute to choiHkk/Tacotron development by creating an account on GitHub. github.com 제가 아직 git 사용을 잘 못해서 pre-trained 모델 업로드를 못 했는데 나중에 올릴 수 있으면 올려두겠습니다. 일단 spectrogram 생성은 아래와 같습니다. 원래 teacher fo..
-
-
Tacotron 무지성 구현 - 6/NTacotron 1 2021. 8. 2. 13:24
저번 포스팅에서 간단한 Tacotron 모델 구성을 끝냈습니다. 이번 포스팅에서는 학습과 관련된 코드를 구현해서 하나의 클래스로 관리할 수 있게끔 하는 것이 목표입니다. 필수적인 코드만 먼저 업로드하고, 부분적으로 설명한 뒤에 다음 포스팅에서 로깅과 관련된 코드도 추가해보도록 하겠습니다. Hyper Parameters import os, torch class Hparams(): # speaker name speaker = 'KSS' # Audio Pre-processing origin_sample_rate = 44100 sample_rate = 22050 n_fft = 1024 hop_length = 256 win_length = 1024 n_mels = 80 reduction = 5 n_specs = ..
-
Tacotron 무지성 구현 - 5/NTacotron 1 2021. 7. 30. 13:41
Decoder와 Post CBHG를 구현하다가 골머리 썩히고 왔습니다. 논문에서 Teacher Forcing을 사용하지 않은 줄 알았는데, 알고보니 사용했더라구요 :( Teacher Forcing을 사용하려면 Reduction Factor의 배수에 맞게 Pre-processing 부분에서 알맞게 패딩을 해줘야하는데 저는 이 부분에 대해서 진행하지 않았기 때문에 많은 에러를 접하고 왔습니다. 따라서 앞서 작성한 포스팅에는 일부 수정해두었으니, 참고 바랍니다. Hyper Parameters Encoder 포스팅에서 다뤘던 Hyper Parameters와 차이점은 decoder_rnn_dim 하나밖에 없습니다. 각 모듈마다 많은 인자를 다루면 그만큼 복잡해질뿐더러, 하나의 인자를 변경했을 때 많은 부분을 수정..