핵심 요약
- 가상 성도 시뮬레이터인 핑크 트롬본을 이식성 높은 ANSI C 기반의 물리 모델링으로 재구현한 프로젝트 'Voc'가 공개되었습니다.
- 도널드 커누스의 문예적 프로그래밍(CWEB)을 적용해 C 언어 DSP 코드와 수학 이론 설명을 하나의 문서처럼 엮어 이해도를 높였습니다.
- 현재 프로젝트 자체는 중단되었으나 성대 및 성도 합성 알고리즘은 후속 오디오 툴킷(sndkit)으로 계승되어 활용되고 있습니다.
요약 인간의 성대와 성도(음성관)를 물리적 모델링 방식으로 합성하는 오픈소스 프로젝트 'Voc'가 기술 커뮤니티에서 관심을 모았습니다. 이 프로젝트는 웹 기반 가상 성도 악기로 화제를 모았던 닐 테이픈(Neil Thapen)의 '핑크 트롬본(Pink Trombone)'을 기반으로 하되, 시스템 이식성이 뛰어난 ANSI C 언어로 다시 작성된 것이 특징입니다.
Voc는 디지털 물리 모델링의 초기 기법 중 하나인 '켈리-록바움(Kelly-Lochbaum)' 보컬 합성 방식을 채택했습니다. 이는 성도를 지름이 각기 다른 여러 원통형 관들이 연결된 튜브 모델로 근사하는 원리입니다. 여기에 성대 진동의 음원을 모사하기 위해 성대 파형을 정밀하게 수학적으로 구현한 '릴리엔크란츠-판트(Liljencrants-Fant)' 성대 펄스 모델을 결합했습니다.
특히 Voc의 독특한 점은 컴퓨터 과학의 거장 도널드 커누스가 제안한 '문예적 프로그래밍(Literate Programming)' 기법을 도입했다는 점입니다. 개발자는 CWEB 시스템을 이용해 자연어 설명과 C 언어 코드를 결합하여 작성했습니다. 이는 C 언어가 오디오 디지털 신호 처리(DSP) 알고리즘을 구현하기에는 매우 뛰어나지만 코드만 보고 작동 원리를 직관적으로 이해하기 어렵다는 한계를 보완하기 위한 시도였습니다. 그 결과 Voc는 컴파일러가 읽는 C 코드뿐만 아니라 사람이 수학 수식과 영어 설명을 통해 원리를 파악할 수 있는 TeX 문서(PDF) 형태로도 빌드됩니다.
공개된 데모에서는 사운드파이프(Soundpipe)와 스포스(Sporth)를 결합하여 다양한 음향을 구현했습니다. 무작위 변수와 지터를 주어 사람이 웅얼거리는 듯한 소리를 내는 'Babble', 낮은 기본 주파수와 공명 조절로 수도승의 독경 소리를 흉내 낸 'Chant', 혀의 위치와 성도 지름을 주기적으로 변조해 의미 없는 음절인 '우냐(unya)'를 반복 발음하는 실험적 프리셋 등이 함께 소개되었습니다. 현재 원본 프로젝트는 중단되었으나, 핵심 알고리즘은 sndkit 프로젝트의 glottis 및 tract 모듈로 계승되어 명맥을 이어가고 있습니다.
Sponsored · 광고