Praat 프로그램의 Python Wrapper 패키지 사용법을 찾아보다가,
공식 docs에도 예시코드가 거의 없고 사용법 포스팅도 거의 없길래 직접 남기는 포스트.
2020.04 ~ 2020.07 글로벌경영학과 김영한 교수님 Research Assistant 작업.
교수님의 연구 어시스턴스로 'CEO의 음성 데이터와 해당 기업 주가와의 상관관계'를 조사하는 일이 필요했다.
800여 개의 CEO 인터뷰 음성파일 (확장자 wav)에서 Formant 0 ~ Formant 5까지의 값을 추출하는 작업을 맡았다.
0.1초 단위로 Formant값을 추출해서 각 음성별로 csv 파일을 생성한 뒤, 얻은 결과를 토대로 분석을 진행해야 했다.
음성 파일에서 Pitch나 Formant를 추출하는 프로그램으로는 Praat이 있다.
C++ 기반 프로그램으로, 자동화 작업을 위한 스크립트도 지원하는 프로그램이다.
하지만 praat 프로그램을 로컬에서 활용하려면
프로그램을 로컬에 설치하고,
구글 드라이브로 공유받은 음원파일을 전부 다운받은 뒤,
각 파일의 0.1초별로 Formant 0 ~ 5까지의 값이 있는 row를 생성해 csv 파일로 저장하고
다시 드라이브에 업로드하는 작업을 거쳐야 했다.
나는 작업에 필요한 파일을 전부 구글 드라이브로 공유받았으니,
Colab + Python으로 작업하면 다운로드 / 업로드 시간을 단축할 수 있겠다 싶었다.
그래서 Python으로 Praat 작업을 할 수 있는 패키지가 있는지 찾아봤는데, parselmouth라는 패키지가 있었다.
Google Colab 환경에서 드라이브를 마운트한 뒤, 아래처럼 작업했다.
드라이브 마운트 / 디렉토리 설정과 같은 코드는 삭제했으며,
음원 인식에 실패한 파일은 파일명을 따로 failed_file.json에 저장했다.
공식 Docs
https://parselmouth.readthedocs.io/en/stable/
Github
'프로그래밍 > 이것저것_개발일지' 카테고리의 다른 글
Ubuntu 인스턴스에 MySQL 올리기 (0) | 2020.11.04 |
---|---|
Tomcat 서버 구동시 Creation of SecureRandom instance for session ID generation Warning 해결 (0) | 2020.11.03 |
2019 SEF2019 'SW공부 2년, 경제학과 학부생이 겪은 변화' 발표자료 (0) | 2020.03.06 |
2018 IBM Developer Day - 문과생의 한 달만에 Composer로 해커톤 입상까지 일대기 (18.11.14) (0) | 2020.02.28 |
Django + nginx + Gunicorn으로 AWS EC2에 Deploy하기 (Anaconda) (0) | 2019.11.10 |