화자의 말하기 속도에 맞춰 영상 재생 속도를 자동 조절하는 크롬 확장 프로그램

'Speech Speed'는 화자의 말하기 속도를 실시간으로 분석해 영상 재생 속도를 동적으로 조절하는 크롬 확장 프로그램입니다. 300~3000 Hz 대역의 음절 에너지를 분석하여 초당 최대 14개 음절까지 감지하며, 4초 슬라이딩 윈도우를 통해 균일한 청취 속도를 유지합니다.

AI 요약

'Speech Speed'는 동영상 내 화자의 말하기 속도에 맞춰 재생 속도를 자동으로 최적화해 주는 혁신적인 크롬 확장 프로그램입니다. 말 속도가 느린 화자의 구간은 더 빠르게, 이미 빠른 화자의 구간은 덜 빠르게 조절하여 사용자가 전체 영상을 일정한 속도로 편안하게 소비할 수 있도록 돕습니다. 기술적으로는 Web Audio API를 활용해 영상의 오디오를 캡처하고, 300~3000 Hz 사이의 음절 에너지 집중 대역을 밴드패스 필터링하여 분석합니다. 개발 과정에서 단순 피크 카운팅 방식(v1)과 보안 정책에 가로막힌 AudioWorklet 방식(v2)을 거쳐, 현재는 에너지 포괄선(Energy Envelope)의 변조를 분석하는 v3 알고리즘이 적용되었습니다. 이 방식은 음절 사이의 미세한 에너지 변화를 고주파 필터링하여 제로 크로싱(zero-crossing)을 측정함으로써 빠르고 연속적인 발화도 정확하게 인식합니다. 결과적으로 사용자는 영상의 가독성을 해치지 않으면서도 콘텐츠 소비 시간을 획기적으로 단축할 수 있습니다.

핵심 인사이트

  • 동적 속도 조절: 화자의 음절 속도를 측정하여 느린 구간은 가속하고 빠른 구간은 유지하는 방식으로 전체적인 청취 환경을 노멀라이즈(Normalize)합니다.
  • 정밀한 주파수 필터링: 저주파 웅웅거림과 고주파 노이즈를 제거하기 위해 300 Hz 하이패스 및 3000 Hz 로우패스 필터를 적용해 음절 에너지를 고립시킵니다.
  • v3 제로 크로싱 알고리즘: 0.5 Hz 차단 주파수의 IIR 하이패스 필터를 사용하여 2~10 Hz 사이의 음절 변조 성분을 추출하고, 양방향 제로 크로싱 횟수로 음절 핵(vowel)을 감지합니다.
  • 성능 한계 설정: 음절 간 최소 간격을 70ms로 설정하여 초당 최대 14개 음절(syl/s)까지 감지할 수 있도록 기술적 상한선을 두었습니다.

주요 디테일

  • 데이터 샘플링: 96 kHz 오디오 기준, 2048 샘플 윈도우(약 21ms) 단위로 RMS 에너지를 계산하며 초당 약 33 Hz 주기로 폴링을 수행합니다.
  • 슬라이딩 윈도우 적용: 속도 계산의 안정성을 위해 4초 길이의 슬라이딩 윈도우를 사용하여 갑작스러운 재생 속도 변화로 인한 어색함을 방지합니다.
  • 보안 이슈 대응: v2 버전에서 AudioWorklet 사용 시 YouTube의 콘텐츠 보안 정책(CSP)으로 인해 'blob:' URL 로딩이 차단되는 문제를 확인하고 메인 스레드 분석 방식인 v3로 선회했습니다.
  • 오디오 캡처 방식: HTMLMediaElement.captureStream()을 사용하여 정상적인 오디오 재생을 방해하지 않고 별도의 분석용 MediaStreamSource를 생성합니다.
  • 필터 최적화: alpha=0.9인 1차 IIR 하이패스 필터를 통해 DC 오프셋과 느린 수준 변화를 제거하고 순수 음절 변조 데이터만 남깁니다.

향후 전망

  • 강의 및 튜토리얼 최적화: 말 속도가 제각각인 교육용 영상이나 인터뷰 콘텐츠를 시청할 때 학습 효율을 극대화하는 도구로 자리 잡을 것으로 보입니다.
  • 브라우저 기반 오디오 처리 발전: 복잡한 오디오 분석을 서버가 아닌 브라우저 사이드에서 실시간으로 처리하는 오픈 소스 사례로서의 가치가 높습니다.
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...