TTS, VC, Concat 음성 처리 웹 사이트 with AI Park
backend url : http://api.popomance.kr/ frontend url : http://dev.popomance.kr/
TTS, VC, Concat 음성 처리 웹 사이트를 개발하는 프로젝트입니다.
- TTS(Text To Speech): 사용자가 입력한 텍스트를 음성으로 변환합니다.
- VC(Voice Conversion): 사용자가 입력한 음성을 원하는 목소리로 변환합니다.
- Concat: 사용자가 입력한 여러개의 음성을 하나의 오디오 파일로 병합합니다.
- 언어: Java 17
- 프레임워크: Spring Boot 3.3.5
- RDBMS: MySQL
- Spring Data JPA
- Lombok
- MySQL Driver
- QueryDSL
- SpringAMQP (RabbitMQ)
- Spring Cloud AWS
- Server-Sent Events (SSE)
- AWS EC2: 서버 호스팅
- Docker: 컨테이너 환경 구성
- GitHub Actions: CI/CD 자동화
- AWS S3: 오디오 파일 저장
- AWS RDS: MySQL 데이터베이스 호스팅
- 텍스트 -> 음성 변환
- 사용자가 입력한 텍스트를 음성으로 변환합니다.
- 옵션 설정
- 목소리, 속도, 볼륨, 피치 등 옵션을 설정할 수 있습니다.
- 다양한 국가의 언어를 지원합니다.
- 음성 파일 다운로드
- 생성한 음성 파일을 다운로드할 수 있습니다.
- 프로젝트 저장
- 현재 프로젝트 상태를 저장해서 이후에 불러올 수 있습니다.
- 음성 -> 음성 변환
- 사용자가 입력한 음성을 원하는 목소리로 변환합니다.
- 텍스트 파일 업로드
- 오디오에 대한 스크립트 파일을 업로드할수 있습니다.
- 음성 파일 다운로드
- 생성한 음성 파일을 다운로드할 수 있습니다.
- 프로젝트 저장
- 현재 프로젝트 상태를 저장해서 이후에 불러올 수 있습니다.
- 음성 파일 병합
- 사용자가 입력한 여러개의 음성을 하나의 오디오 파일로 병합합니다.
- 병합 순서를 설정할 수 있습니다.
- 텍스트 파일 업로드
- 오디오에 대한 스크립트 파일을 업로드할수 있습니다.
- 음성 파일 다운로드
- 생성한 음성 파일을 다운로드할 수 있습니다.
- 프로젝트 저장
- 현재 프로젝트 상태를 저장해서 이후에 불러올 수 있습니다.
- HOME
- 서비스에 대한 간단한 소개를 제공합니다.
- 사용장의 최근 프로젝트와 생성한 오디오 목록을 제공합니다.
- PROJECT
- 사용자의 프로젝트를 관리합니다.
- 프로젝트 이름, 프로젝트 상태, 프롲게트 유형, 프로젝트 내용으로 검색 가능합니다.
- 선택한 프로젝트를 삭제할 수 있습니다.
- 페이지 기능을 제공합니다.
- EXPORTS
- 사용자가 생성한 오디오 파일을 관리합니다.
- 오디오 파일 이름, 오디오 상태, 프로젝트 유형, 오디오 내용으로 검색 가능합니다.
- 선택한 오디오 파일을 삭제할 수 있습니다.
- 페이지 기능을 제공합니다.
- 오디오 파일 버킷에 업로드
- 서비스에서 다루는 모든 오디오를 S3 버킷에 업로드합니다.
- 오디오 파일 버킷에서 삭제
- 프로젝트 삭제시 해당 프로젝트에서 사용한 오디오 파일을 S3 버킷에서 즉시 삭제합니다.
- 개별 오디오 파일 삭제시 S3 버킷에서 즉시 삭제합니다.
- 오디오 파일 스케줄링 관리
- 화면상에서 삭제할 수 없는 오디오에 대해 스케줄링을 통해 삭제합니다.
- 오래된 소스 오디오 파일에 대해 스케줄링을 통해 삭제합니다.
- 매일 자정에 삭제할 오디오가 있는지 확인하고 삭제합니다.
- 회원가입
- 회원 이메일(ID)에 대해 중복 검사를 수행합니다.
- 로그인
- 회원 이메일 찾기 기능을 제공합니다.
- 회원 비밀번호 찾기 기능을 제공합니다.
- 로그아웃
- 회원정보 수정
- 다음과 같은 회원 정보에 대해 수정이 가능합니다.
- 회원 전화번호
- 회원 이름
- 회원 비밀번호
- 다음과 같은 회원 정보에 대해 수정이 가능합니다.
- 작업 큐
- TTS/VC/Concat 오디오 생성 작업이 큐에 담겨 비동기로 처리됩니다.
- 실패 작업 재실행
- 실패된 작업을 별도의 큐에 관리하며, '실패 작업 재실행' 버튼 클릭 시 작업을 재개 할 수 있습니다.
- 작업 초기화
- 대기 중인 모든 작업을 초기화(삭제) 합니다.
- 실시간 통신
- 작업 상태(대기/진행/실패/완료)가 변경될 때마다 실시간으로 작업 상태를 확인합니다.
-
오승민 (백엔드 팀장) // https://github.com/HiSeungmin : 팀 운영 및 관리, 프로젝트 구조 설계/환경 설정, 버전 관리 체계 구축(Git 브랜치 전략 및 협업 워크플로우 설정), DB 모델링(요구사항분석, ERD설계), TTS 음성 데이터 크롤링, 다중 작업 큐 처리(RabbitMQ 설정, 작업큐 관리, 에러 핸들링), 실시 작업 조회/초기화, TTS/VC/Concat 프로젝트 불러오기&삭제 API 개발
-
남유람 // https://github.com/yr0202 : DB모델링, SSE 통신 연결, JPA 엔티티 설계&수정, 비동기 작업 Producer 개발, 프로젝트(TTS, VC, Concat) 상태 저장,비동기 작업처리 실패작업 재실행, 스웨거 api 명세 작성
-
안재홍 // https://github.com/Jayhong0731 : DB 모델링, 회원 기능 (회원가입, 이메일 중복 체크, 회원 ID 찾기, 비밀번호 찾기), VC 생성 기능 (기존 기능 통합 및 확장: S3 오디오 파일 업/다운로드, 로컬 및 S3 오디오 결합 처리, 프로젝트 생성 및 상태 관리, 멀티 파일 처리 지원), Swagger API 문서화 기여, 주요 비즈니스 로직 테스트 및 예외 처리 검증
-
이의준 // https://github.com/LeeEuyJoon : CI/CD & 배포 등 인프라, 프로젝트 초기 세팅, DB 모델링, 초기 JPA 엔티티 설계, S3 버킷 오디오 업/다운로드, 오디오 파일 스케줄링 관리, Concat - ( 오디오 삭제 & 프로젝트 삭제 & 상태 저장 ), 워크스페이스 - (최근 프로젝트 내역 조회 & 최근 생성한 오디오 내역 조회 & 프로젝트 검색 및 페이징 & 생성한 오디오 검색 및 페이징), 구글 TTS 보이스 스타일 데이터 전처리
-
정원우 // https://github.com/Jeongwonwoo1996 : TTS 생성 기능 (텍스트 입력 기반 음성 합성 로직 개발 및 Google TTS API 연동), CONCAT 생성 기능 (FFMPEG를 활용한 오디오 파일 병합, 간격 삽입 및 품질 최적화), 회원 기능 (데이터 저장 및 인증/유효성 검사 로직 개발), DB 모델링, 로깅 및 오류 처리 구조 개선, Swagger API 문서화 기여, 주요 비즈니스 로직 테스트 및 예외 처리 검증
-
조소정 // https://github.com/sojungCho : 프로젝트 설계 참여, S3 버킷 오디오 업/다운로드, 오디오 삭제, 오디오 파일 스케줄링 관리, 워크스페이스 - (최근 프로젝트 내역 조회 & 최근 생성한 오디오 내역 조회 & 생성한 오디오 검색 및 페이징) , 테스트, Swagger Api 작성