Skip to content

hmmhmmhm/rspeaker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rSpeaker

이 프로젝트는 macOS에서 동작하는 음성 인식 비서 애플리케이션입니다. Python을 사용하여 SFSpeechRecognizer 프레임워크와 연동하여 음성을 인식하고, 사용자의 명령어에 따라 다양한 작업을 수행합니다.

주요 기능

  • 음성 인식 기반 제어: "여보게"라는 호출 명령어를 통해 활성화됩니다.
  • 듀얼 TTS 엔진 지원: Edge TTSTypecast TTS 두 가지 음성 합성 엔진을 선택하여 사용할 수 있습니다.
    • Edge TTS: Microsoft Edge의 무료 TTS (기본값, ko-KR-SunHiNeural)
    • Typecast TTS: Typecast AI의 고품질 AI 음성 (API 키 필요, 무료 사용량 제공)
  • 뉴스 제공: "오늘 뉴스"라고 말하면 Google 뉴스의 주요 기사를 Gemini AI로 요약하고, 서울의 현재 날씨 정보와 함께 음성으로 읽어줍니다.
  • 시간 및 날짜 안내: "몇 시야" 또는 "몇일이야"와 같은 명령어로 현재 시간과 날짜를 음성으로 안내합니다.

요구 사항

  • 운영체제: macOS 10.15 Catalina 이상
  • Python: 3.13 이상
  • uv: 프로젝트 의존성 관리를 위해 uv가 필요합니다.
    curl -LsSf https://astral.sh/uv/install.sh | sh
  • Gemini API 키: 뉴스 요약 기능을 사용하려면 Google Gemini API 키가 필요합니다. 프로그램 첫 실행 시 API 키를 입력하라는 메시지가 표시되며, 여기에서 발급받을 수 있습니다.
  • Typecast API 키 (선택): Typecast TTS를 사용하려면 Typecast Developer에서 API 키를 발급받아야 합니다.

설치

프로젝트에 필요한 의존성을 설치하려면 아래 명령어를 실행하세요.

make sync

실행

기본 실행 (이전 설정 유지)

make run

Edge TTS로 실행

make run-edge

Typecast TTS로 실행

make run-typecast

최초 Typecast TTS 실행 시 API 키와 Voice ID를 입력하는 과정이 진행됩니다. 한번 입력하면 ~/.listener.json에 저장되어 다음부터 자동으로 사용됩니다.

Typecast 보이스 목록 조회

make list-voices

CLI 옵션

# Edge TTS로 실행
uv run python listener.py --tts edge

# Typecast TTS로 실행
uv run python listener.py --tts typecast

# 특정 Typecast 보이스 및 모델 지정
uv run python listener.py --tts typecast --typecast-voice tc_672c5f5ce59fac2a48faeaee --typecast-model ssfm-v30

# 보이스 목록 보기
uv run python listener.py --list-voices

TTS 엔진 설정

TTS 엔진 설정은 아래 우선순위로 적용됩니다:

  1. CLI 인자: --tts edge 또는 --tts typecast
  2. 환경변수: TTS_ENGINE=edge 또는 TTS_ENGINE=typecast
  3. 설정 파일: ~/.listener.jsontts_engine 필드
  4. 기본값: edge

환경변수

변수 설명 기본값
TTS_ENGINE TTS 엔진 선택 (edge 또는 typecast) edge
TYPECAST_API_KEY Typecast API 키 -
TYPECAST_VOICE_ID Typecast Voice ID -
TYPECAST_MODEL Typecast 모델 (ssfm-v21 또는 ssfm-v30) ssfm-v30
GEMINI_API_KEY Gemini API 키 (뉴스 요약용) -

설정 파일 (~/.listener.json)

{
  "gemini_api_key": "your-gemini-api-key",
  "tts_engine": "typecast",
  "typecast_api_key": "your-typecast-api-key",
  "typecast_voice_id": "tc_672c5f5ce59fac2a48faeaee",
  "typecast_model": "ssfm-v30"
}

명령어 목록

명령어 설명
"여보게" 기본 12초인 듣기 시간을 30초로 연장합니다.
"오늘 뉴스" 최신 뉴스를 요약하고 날씨를 알려줍니다.
"몇 시야" 현재 시간을 알려줍니다.
"몇일이야" 오늘 날짜를 알려줍니다.
"오늘 날씨" / "몇 도야" 서울의 현재 날씨와 6시간 후 예보를 알려줍니다.
"...해줘" (예: "종료해줘") 프로그램 실행을 종료합니다.
Ctrl + C 터미널에서 직접 프로그램을 종료합니다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 97.5%
  • Shell 1.7%
  • Makefile 0.8%