서비스 설명
- AI Radio DJ를 통해 24시간 청취자와 상호작용하는 라디오 플랫폼
주요 기능
-
인증/인가
- 카카오 소셜 로그인 : OAuth 2.0 사용
- JWT를 사용한 인가 기능
- Spring Security를 활용한 사용자/관리자 권한에 따른 인증/인가 제어
-
음악 스트리밍 (YouTube API)
- 재생 중인 노래 제목 하이라이팅
- 신청곡 재생 목록 상위 10개 표시
- 신청곡이 없을 경우 : 서버 DB에 저장된 노래 재생
- 신청곡이 있을 경우 : 신청곡 목록 DB에 저장된 노래 재생
-
신청곡 (Spotify API, YouTube API)
- 검색창에서 KeyUp Event 시에 Spotify 검색 결과 상의 20개 리턴
- 검색 결과 클릭시 Spotify 음악 상세정보(노래제목, 아티스트, 앨범커버이미지 등) 조회, YouTube 음악 검색 결과 리턴
- 검색 결과를 Spring Server 에 전송 (노래 신청) -> DB 반영
-
사연 (Chat GPT API, Naver Clova API, TTS)
- (화자, 내용) 형식의 key-value 형태로 사연 데이터 작성
- 사연 데이터가 Spring Server로 넘어온 후 적절한 사연인지 검증 로직 수행 (아파치 카프카, 파이썬 서버, Chat GPT API 사용)
- 적절한 사연일 경우 TTS 작업 (Naver Clova API, Google TTS 사용) -> MP3 파일 생성
-
채팅창 상호 작용 (Chat GPT API, STOMP, Perspective API, TTS)
- 채팅 공격성 검사 (Bad Word API 사용) -> 공격적인 채팅일 경우: 채팅 필터링("클린 채팅을 사용해 주세요"), 회원에게 경고 메시지 전송 (누적 3회시 Ban)
- 청취자들끼리 채팅 상호작용
- AI Radio DJ와 상호작용 : 적절한 채팅일 경우 TTS 작업 (아파치 카프카, Chat GPT API, Naver Clova API 사용) -> MP3 파일 생성
-
마이페이지
- 포인트를 사용하여 배경 테마, 채팅시 사용하는 뱃지 구매 -> 사용자 기호에 맞는 커스텀 테마 가능
- 다크모드/라이트모드 지원
- 닉네임 중복검사 및 수정 기능 제공
-
ChatGPT를 활용한 라디오 진행 (사연 반응 생성, 음악 소개, 채팅 반응 생성, 검증 등등)
-
RestAPI와 Socket을 위한 Springboot 서버와
실시간 음성 데이터 생성을 위해 구축된 FastAPI 서버 구축.
-
Kafka를 사용해서 두 서버 컨테이너간 데이터 공유
-
Naver Clova를 이용한 다양한 사연 목소리 제공
-
사용자 어트랙션을 위한 포인트, 개인 아이템 기능 제공
-
Spotify API를 이용해 검증된 노래를 검색하고, Youtube Embed를 활용하여 무료 음원 재생.
Frontend : React, Typescript, React Query
Backend : Spring Boot, Spring Data JPA, STOMP Spring Security
Infra : Docker, Jenkins, Docker-Compose, mariadb, Apachi kafka
API: OpenAI chatGPT(사연 응답 생성), Naver Clova(사연 음성 생성),
Perspective API(비속어 필터링), Youtube Data API V3(유튜브 검색)
Spotify API(스포티파이 음원 검색)