Unity

[ML-Agents] Audio Sensor – 소리를 듣는 에이전트 만들기

빈형임 2025. 5. 14. 02:24

Audio Sensor는 Unity ML-Agents에서 에이전트가 소리를 관찰할 수 있도록 해주는 센서입니다.
아직 실험적 기능으로 분류되며, 고급 시나리오나 특수 목적 학습에 적합합니다.

말하는 걸 이해하거나, 특정 소리를 감지해서 반응하는 AI를 만들고 싶다면?

 


언제 사용하나요?

  • 음성 명령 인식이 필요한 에이전트
  • 주변 소리를 듣고 반응하는 행동 훈련
  • 소리 위치 추정(음향 위치 파악)
예: “청소 시작해!” 음성에 반응하는 로봇 청소기

 

주요 설정 항목

설정 항목 설명
Buffer Length 관찰할 오디오 데이터의 시간 길이
Compression Type PNG 압축 여부 (성능 최적화 가능)
Signal Type 모노 / 스테레오 채널 선택
Sample Type 진폭(raw amplitude) vs 스펙트럼(FFT)
FFT Resolution 주파수 해상도 설정 (스펙트럼 사용 시)
FFT Window 푸리에 변환용 윈도우 함수 설정
Tip: 스펙트럼(주파수 기반) → 소리 종류 구분에 유리  
     진폭(시간 기반) → 단순한 이벤트 감지에 적합

 

구성 방법

  1. AudioSensorComponent를 Agent에 추가
  2. 오디오 소스와 연동해 데이터 수집
  3. 환경 내 오디오 리스너는 1개만 존재 가능 (주의!)

주의: 실시간 처리 기반이기 때문에 학습은 거의 항상 실시간으로 실행되어야 함

 


실전 예시: 청소기 음성 명령 감지

목표 Audio Sensor 활용 방법
“청소 시작” 명령 반응 특정 주파수 대역에서의 스펙트럼 피크 감지
유출 소리 감지 지속적인 진폭 감시 → 보상 트리거
작업 중단 명령 신호가 일정 패턴에 도달하면 EndEpisode() 호출
 

제한 사항 및 주의사항

  • 실시간 훈련 필수: Unity 에디터 기반 학습이 필요
  • 멀티 에이전트 비적합: 오디오 리스너는 1개만 허용됨
  • 환경 잡음 처리 필요: 필터링 또는 정규화 전략 필요
  • 연산 비용: 오디오 분석은 CNN보다 덜하지만 지속적이므로 성능 고려 필요

 

훈련 최적화를 위한 전략

전략 목적
스펙트럼 기반 학습 말/음악/경보 구분 등 명확한 소리 구별
진폭 기반 학습 충돌 소리 감지, 음성 존재 여부 판단
정규화 데시벨 범위 축소 → 학습 안정성 증가
FFT Resolution 튜닝 적절한 주파수 해상도로 과적합 방지

 

요약

  • Audio Sensor는 실험적이지만 가능성이 큰 센서입니다.
  • 음성/소리 기반 이벤트 인식, 위치 추정, 명령 응답에 활용 가능
  • 실시간 훈련 환경에서만 안정적으로 작동하며, 단일 에이전트 상황에 적합합니다.