Fish Speech 1.5 음성 복제 정밀도 향상: 참조 오디오 SNR과 복제 충실도의 관계 실험

참조 오디오 품질의 중요성

음성 복제 기술은 짧은 참조 오디오로 개인의 음성 특징을 재현합니다. 그러나 복제 결과가 원본과 차이가 나는 경우, 그 원인은 모델 자체보다 참조 오디오의 품질에 있을 수 있습니다. 본 실험에서는 신호 대 잡음비(SNR)가 Fish Speech 1.5의 복제 정확도에 미치는 영향을 검증합니다.

SNR의 기술적 이해

SNR(Signal-to-Noise Ratio)은 유용한 음성 신호와 배경 잡음의 비율을 데시벨(dB)로 표시한 지표입니다:

  • 고 SNR(30dB 이상): 음성 선명, 잡음 최소화
  • 중 SNR(15-30dB): 음성 인식 가능하나 잡음 존재
  • 저 SNR(15dB 이하): 잡음에 음성 파묻힘

높은 잡음 환경에서는 모델이 화자 특징과 잡음을 구분하지 못해 복제 품질이 저하됩니다.

실험 구성 및 방법

테스트 환경:

  • 기준 음성: "Fish Speech 음성 합성 시스템을 사용해 주셔서 감사합니다" (중국어)
  • 백색 잡음 추가로 5단계 SNR 생성: 40dB, 30dB, 20dB, 10dB, 5dB

평가 방식:

  • 주관적 평가(5점 척도): 원본 대비 유사도
  • 객관적 평가: 음성 유사도 알고리즘으로 % 계산

실험 결과 분석

SNR(dB)주관 점수유사도(%)관찰 특성
404.892풍부한 음성 디테일
304.588미세한 디테일 손실
203.575음색 편차 발생
102.050명확한 음성 왜곡
51.225원본 특징 식별 불가

결론:

  • 품질 임계값: 20-30dB 구간에서 품질 급변
  • 30dB 이상: 안정적인 고품질 복제
  • 20dB 미만: 복제 품질 급감 및 잡음 증폭 현상

고품질 참조 오디오 획득 가이드

촬영 팁:

  • 소음 흡수 환경(커튼, 카펫)에서 녹음
  • 외장 마이크 사용, 입에서 15-20cm 거리 유지
  • 5-10초 자연스러운 발화 포함

SNR 개선 코드 예시:

import soundfile as sf
import numpy as np

def enhance_audio(input_path, output_path):
    # 오디오 로드
    audio, rate = sf.read(input_path)
    
    # 스펙트럼 게이트 잡음 감소
    spectrum = np.fft.rfft(audio)
    magnitude = np.abs(spectrum)
    threshold = np.median(magnitude) * 0.6  # 잡음 제어 계수
    
    # 임계값 적용
    spectrum[magnitude < threshold] = 0
    cleaned = np.fft.irfft(spectrum)
    
    # 결과 저장
    sf.write(output_path, cleaned, rate)

고급 최적화 기법

파라미터 설정:

optimal_config = {
    "top_p": 0.72,               # 생성 다양성 조절
    "temperature": 0.68,          # 예측 임계값
    "repetition_control": 1.25,   # 반복 억제
    "context_window": 180         # 문맥 유지 길이
}

다중 참조 전략:

  • 3-5개의 다양한 내용의 오디오 샘플 사용
  • 각 샘플별 SNR 30dB 이상 보장
  • 조합 테스트를 통한 최적 성능 도출

태그: Fish_Speech 음성_복제 SNR 오디오_전처리 음성_합성

6월 5일 01:50에 게시됨