도로시J
도로시J
🐶 AI 찐친
🎖️ 마스터 파트너

API없이 깐깐한 면접 음성 분석기 제작

소개

깐깐한 박프로 면접관을 스터디원들이 면접 준비를 돕는 챗봇
Colab과 Google Ai Studio로 작성한 깐깐한 음성 면접관

진행 방법

Colab, GPT, manus, Google AI studio

기업 전문 면접관으로서 면접자의 목소리 음성 파일 mp3 파일 업로드하여 목소리를 듣고 깐깐하게, 구체적으로 분석하여 피드백을 주는 챗봇을 만들고 싶어. 여러 영역에서 전문적으로 분석, 판단, 피드백을 줘야해.

1단계: 챗봇의 역할과 분석 기준 정의 (가장 중요!)

챗봇에게 어떤 역할을 부여하고, 어떤 기준으로 목소리를 분석할지 명확히 정의하는 것이 프로젝트의 성패를 좌우합니다. 이 부분이 바로 챗봇의 지침(Instruction)이 됩니다.

챗봇의 정체성 (Persona)

  • 이름: 보이스 프로파일러, 커리어 보이스 등

  • 역할: 다년간의 경험을 가진 HR 전문가 또는 스피치 컨설턴트. 단순히 지적하는 것이 아니라, 사용자의 성장을 돕는다는 따뜻하지만 날카로운 톤앤매너를 유지합니다.

목표: 사용자가 자신의 목소리 습관을 객관적으로 인지하고, 면접 상황에서 신뢰감을 줄 수 있도록 구체적인 개선 방안을 제시합니다.

2단계: 기술적인 구현 계획 수립

  • 이러한 분석을 실제로 구현하기 위해 필요한 기술들입니다.

    1. 음성-텍스트 변환 (Speech-to-Text, STT):

      • 역할: 사용자가 올린 mp3 파일을 텍스트로 변환합니다.

      • 필요 기술: Google Cloud Speech-to-Text, Naver CLOVA Speech 등 검증된 STT API를 사용하는 것이 좋습니다.

      • 분석 활용: 변환된 텍스트를 통해 필러 사용 빈도, 문장 구조, 어휘 등을 분석할 수 있습니다.

    2. 음성 자체 분석 (Audio Analysis):

      • 역할: 텍스트로 변환되지 않는 목소리의 물리적 특성을 분석합니다.

      • 필요 기술: Librosa (파이썬 라이브러리) 같은 오디오 처리 도구를 사용합니다.

3단계: 사용자 경험(UX) 설계

사용자가 챗봇을 편리하고 효과적으로 사용할 수 있도록 만드는 과정입니다.

  • 인터페이스:

  1. 사용자가 쉽게 mp3 파일을 업로드할 수 있는 버튼

  2. 분석이 진행 중임을 알려주는 로딩 화면

  3. 분석 결과를 위에서 제시한 분석 영역별로 명확하게 구분하여 보여주는 결과 창

종합적인 평가와 함께, 가장 먼저 개선하면 좋을 핵심 개선점(Action Item)을 1~2가지 제안


API 없이 최소화한 과정으로 진행하고자 했습니다.
프로젝트 전체 설계 (No-API 버전)

  1. API를 사용하지 않기 때문에, 우리는 각 기능을 수행하는 오픈소스 라이브러리를 직접 조합하여 시스템을 구축해야 합니다.

    1. 음성 → 텍스트 변환 (STT): 오프라인에서 동작하는 음성 인식 모델을 사용합니다.

    2. 음성 특징 분석: 음성 파일에서 직접 목소리의 물리적 특성(크기, 높낮이, 속도 등)을 추출합니다.

    3. 텍스트 분석: 변환된 텍스트에서 언어적 습관(군말, 문장 구조 등)을 분석합니다.

    4. 피드백 생성: 위에서 추출한 모든 데이터를 종합하여, 사전에 정의된 규칙(Rule-based)과 템플릿에 따라 최종 피드백을 생성합니다.

      과정을 최소화하여 진행하고자 결국 파이썬 코드와 챗봇으로 분석을 진행하였습니다.

      # -------------------------------------------------------------------------
      # 1. 필요한 라이브러리 설치 (GPU 환경에 최적화)
      # -------------------------------------------------------------------------
      # %%capture는 설치 과정의 긴 메시지를 숨겨 깔끔하게 보여줍니다.
      %%capture
      !pip install faster-whisper
      !pip install librosa pydub
      
      # -------------------------------------------------------------------------
      # 2. 필요한 기능들 불러오기
      # -------------------------------------------------------------------------
      import os
      import numpy as np
      import librosa
      from faster_whisper import WhisperModel
      import torch
      from google.colab import files
      from IPython.display import display, HTML
      import base64
      from google.colab import output
      
      # -------------------------------------------------------------------------
      # 3. 음성 분석을 위한 핵심 클래스 정의
      # -------------------------------------------------------------------------
      class VoiceFeatureExtractor:
          def __init__(self, model_size="medium"):
              """
              분석기 초기화. 오프라인 음성 인식 모델을 로드합니다.
              GPU를 사용하므로 'medium' 모델을 사용하여 정확도를 높입니다.
              """
              print("="*50)
              print("1. 음성 인식 모델을 로드하는 중입니다...")
              # GPU 사용 설정: device="cuda", compute_type="float16"
              self.model = WhisperModel(model_size, device="cuda", compute_type="float16")
              print("   모델 로드 완료. (모델: {}, 장치: GPU)".format(model_size))
              print("="*50)
      
          def analyze(self, audio_file_path):
              """
              오디오 파일을 받아 전체 분석을 수행하고 결과를 텍스트로 반환합니다.
              """
              print(f"\n2. '{os.path.basename(audio_file_path)}' 파일 분석을 시작합니다...")
      
      

Google AI studio의 시스템 프롬프트
# MISSION

너는 20년차 대기업 HR팀장이자 압박 면접 전문가인 '박 프로'다. 너의 목표는 사용자가 제공한 [음성 분석 데이터]를 바탕으로, 면접 상황을 가정하여 목소리와 말투를 극도로 깐깐하고 상세하게 분석하고, 구체적인 개선점을 제시하는 것이다. 단순히 칭찬하는 것이 아니라, 사용자의 성장을 위해 아플 수 있는 부분까지도 날카롭게 지적해야 한다.

면접 스크립트는 클로드에게 요청

목소리 상태가 안좋긴 했지만, 분석 결과


결과와 배운 점

과정 중에 어떤 시행착오를 겪었나요?

GPT-4o는 Whisper 기반 음성 STT가 내장되어 있어, mp3, m4a 파일을 업로드하면 자동으로 텍스트 변환까지 해준다고 하여 계속 지침내에도 추가하였지만, 여전히 변환에서 에러가 발생하였습니다.

❗현재 업로드된 음성 파일에 대해 자동 음성 → 텍스트(STT) 변환이 지원되지 않습니다.
다음 중 하나의 도구에서 텍스트로 변환하신 뒤, 이 창에 붙여넣어 주세요:

텍스트를 입력해 주시면 면접 피드백을 바로 시작하겠습니다.

위의 사이트를 한 번 더 경유하는 것도 번거로워 결국, 파이썬으로 회귀했습니다.


앞으로의 계획은?

시간이 부족하여, 에이전트에게 전적으로 의지했는데, 러버블과 연동하여, UI, UX를 좀 더 구체화하여 편한 면접 준비를 도울 수 있는 웹빌더를 제작하고 싶습니다.

도움 받은 글 (옵션)

그냥 에이전트에게 막 물어봄^^

1

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요