Skip to content

v1.6.0 — 주변 소리를 듣는 외부 사운드 모드, 튜토리얼, 더 정확해진 AI 분류

Choose a tag to compare

@github-actions github-actions released this 06 Oct 01:47
· 83 commits to develop since this release
0ff34c3

새로 생긴 것

외부 사운드 모드. 홈에서 켜고 실행하면 폰 안의 소리 대신 마이크로 주변 소리를 듣습니다. 초인종, 화재경보, 누가 부르는 소리 같은 폰 밖의 소리를 같은 그래픽과 진동으로 알려 줍니다.

  • 화면 녹화 동의 없이 바로 켜집니다. 안드로이드 12 이상에서는 듣는 동안 상태 표시줄에 마이크 표시가 뜨고, 실행 중 알림과 홈에도 주변 소리라고 나옵니다.
  • 들은 소리는 크기를 재고 종류를 구분하는 데만 씁니다. 소리 자체는 파일로 남기거나 밖으로 보내지 않습니다.
  • 폰을 내려놓아도 알 수 있도록 화면이 꺼져도 계속 듣습니다. 그만큼 배터리를 더 씁니다.
  • 마이크 감도(50~800%)를 고를 수 있습니다.
  • 통화 중이거나 다른 앱이 마이크를 쓰고 있어 소리가 들어오지 않으면 홈과 알림에 알려 줍니다.
  • 방향은 아직 가운데로만 그립니다.

처음 여는 사람을 위한 튜토리얼. 앱이 무엇을 하는지, 소리 종류와 색, 켜고 끄는 순서를 몇 쪽으로 보여 줍니다. 홈에서 다시 볼 수 있습니다.

진동을 단순하게 바꿨습니다. 소리 종류마다 꺼짐·느림·중간·빠름·연속 가운데 하나를 고르고, 세기는 슬라이더(10~100%)로 정합니다. 그 종류의 소리가 이어지는 동안 울리고, 소리가 멈추면 함께 멈춥니다. 종류마다 방식을 다르게 해 두면 화면을 보지 않고도 어떤 소리인지 구분할 수 있습니다.

  • ‘연속’이 2초마다 살짝 끊겨 느껴지던 것을 고쳤습니다. 화면을 끌 때 안드로이드가 끊은 진동도 바로 다시 울립니다.

AI 분류가 더 정확해졌습니다(팀원 기여). 소리를 AI 에 넣기 전의 처리를 바꾸고, 어떤 소리를 어느 종류로 볼지 규칙을 정리했습니다.

  • 사이렌·경보음은 AI 가 1순위로 꼽지 않더라도 상위 후보에 뚜렷하게 있으면 위협음으로 봅니다.
  • 경적, 전기톱, 천둥도 위협음으로 봅니다. 발소리는 환경음으로 옮겼습니다.
  • 팀이 모은 평가용 소리 812개에서 v1.0.0 과 비교하면 정확도가 46%에서 **75%**로, 위협음이라고 했을 때 맞는 비율이 62%에서 **95%**로 올랐습니다.

AI 가 없어도 큰 소리에는 진동합니다. 드물게 AI 모델을 불러오지 못하면 지금까지는 진동이 아예 꺼졌습니다. 이제는 종류와 상관없이 큰 소리에 위협음 진동 설정으로 울리고, 그렇다고 홈과 설정, 알림에 알려 줍니다.

고친 것

  • 사용자가 켜지 않았는데 예전 알림 버튼 같은 경로로 소리 받기가 시작될 수 있던 것을 막았습니다.
  • 앱을 켤 때 시작 화면의 로고 모서리가 잘려 보였습니다.
  • 튜토리얼을 닫는 동안의 누름이 홈 버튼에 닿을 수 있었습니다. 가로 화면에서는 실행 버튼을 카드 위에 둡니다.
  • 같은 폰에 다시 깔면 백업이 예전의 타일 추가 여부와 꺼짐 안내를 되살렸습니다.
  • 진동이 소리 종류가 바뀌는 순간 따라 바뀌지 않았고, 실행 중에 설정을 만지면 미리보기 진동이 실제 진동과 섞였습니다.
  • 튜토리얼의 위협음 예시에서 발소리를 빼고 사이렌을 넣었습니다.

그 밖에

  • 빠른 설정 타일 추가 버튼을 홈에서 설정 탭으로 옮겼습니다.
  • 도움말을 보강했습니다. 미디어 볼륨과 폰 안의 소리, 마이크 감도가 바꾸는 것, 외부 사운드 모드일 때의 설명이 들어갔습니다.
  • 팀용(개발자 모드에서만 보임): 소리마다 종류를 고르는 분류 탭의 미리보기를 넣었습니다. 아직 AI 판정에는 쓰이지 않습니다. AI 기록 CSV 에는 소리를 어디서 받았는지가 남습니다.

확인한 것

배포한 커밋(0ff34c3)에서 그대로 돌렸습니다.

  • 유닛 테스트 471개 통과, Lint 오류 0(경고는 의존성 새 버전 알림 1건)
  • 에뮬레이터 계측 테스트와 AI 전처리 대조(TensorFlow·torchaudio 기준) 통과
  • 올라온 APK 확인: 버전 1.6.0(코드 10), arm64-v8a, minSdk 29, targetSdk 37, 서명 지문 f6a88fab…(예전과 같은 팀 공용 디버그 키라 기존 설치 위에 그대로 깔립니다), R8 이 지켜야 할 13개 항목이 mapping-v1.6.0.txt 에 모두 남아 있고, 네이티브 라이브러리에 코드가 부르는 함수 6개가 모두 들어 있습니다.
  • 출시 전 점검을 두 번 했습니다(10/1, 10/6). 막는 결함은 없었고, 찾은 것은 이 배포 전에 고쳤습니다.
  • 외부 사운드 모드, 진동, AI 분류는 팀이 Galaxy S25+ 에서 이 배포 직전의 개발 빌드로 실제 소리(뉴스, 빗소리·주방 ASMR, 구급차, 총소리 영상, 영화)를 들려 확인했습니다.
  • 배포한 뒤 이 APK 를 Galaxy S25+(Android 16)에 깔아 외부 사운드 모드로 켜 봤습니다(앱 진동은 막고). AI 모델을 정상으로 불러와 판정이 실시간으로 나왔고(추론 약 23ms), 끄면 마이크가 바로 반납됐습니다.

확인하지 못한 것

  • 마지막에 들어간 분류 탭 번역(개발자 모드 전용)은 실기기에서 보지 못했습니다.
  • Android 12 기기(S22)에서는 외부 사운드 모드를 아직 확인하지 못했습니다.

알려진 제한

  • 외부 사운드 모드에서 폰이 자기 진동 소리를 마이크로 다시 들을 수 있습니다(#290).
  • 음악이 함께 깔린 총소리는 음악으로 잡히거나 깜박일 수 있습니다(#117).
  • ‘연속’ 진동이 다른 앱의 진동에 끊기면 다시 이어지기까지 최대 30초 걸릴 수 있습니다. 2초마다 끊겨 느껴지는 것을 없애려고 고른 절충입니다.
  • 외부 사운드 모드에서는 방향을 아직 가운데로만 그립니다(#248).