콘텐츠로 이동

추론

보코더 모델이 변경되어 이전보다 더 많은 VRAM이 필요하며, 원활한 추론을 위해 12GB를 권장합니다.

추론을 위해 명령줄, HTTP API, WebUI를 지원하며, 원하는 방법을 선택할 수 있습니다.

가중치 다운로드

먼저 모델 가중치를 다운로드해야 합니다:

huggingface-cli download fishaudio/openaudio-s1-mini --local-dir checkpoints/openaudio-s1-mini

명령줄 추론

Note

모델이 임의로 음색을 선택하도록 하려면 이 단계를 건너뛸 수 있습니다.

1. 참조 오디오에서 VQ 토큰 얻기

python fish_speech/models/dac/inference.py \
    -i "ref_audio_name.wav" \
    --checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth"

fake.npyfake.wav를 얻을 수 있습니다.

2. 텍스트에서 의미 토큰 생성:

python fish_speech/models/text2semantic/inference.py \
    --text "변환하고 싶은 텍스트" \
    --prompt-text "참조 텍스트" \
    --prompt-tokens "fake.npy" \
    --compile

이 명령은 작업 디렉토리에 codes_N 파일을 생성합니다. 여기서 N은 0부터 시작하는 정수입니다.

Note

더 빠른 추론을 위해 --compile을 사용하여 CUDA 커널을 융합할 수 있습니다(약 15 토큰/초 -> 약 150 토큰/초, RTX 4090 GPU). 이에 따라 가속을 사용하지 않으려면 --compile 매개변수를 주석 처리할 수 있습니다.

Info

bf16을 지원하지 않는 GPU의 경우 --half 매개변수를 사용해야 할 수 있습니다.

3. 의미 토큰에서 음성 생성:

향후 경고

원래 경로(tools/vqgan/inference.py)에서 액세스 가능한 인터페이스를 유지하고 있지만, 이 인터페이스는 향후 릴리스에서 제거될 수 있으므로 가능한 한 빨리 코드를 변경해 주세요.

python fish_speech/models/dac/inference.py \
    -i "codes_0.npy"

HTTP API 추론

추론을 위한 HTTP API를 제공합니다. 다음 명령으로 서버를 시작할 수 있습니다:

python -m tools.api_server \
    --listen 0.0.0.0:8080 \
    --llama-checkpoint-path "checkpoints/openaudio-s1-mini" \
    --decoder-checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth" \
    --decoder-config-name modded_dac_vq

추론을 가속화하려면 --compile 매개변수를 추가할 수 있습니다.

그 후 http://127.0.0.1:8080/ 에서 API를 보고 테스트할 수 있습니다.

GUI 추론

클라이언트 다운로드

WebUI 추론

다음 명령으로 WebUI를 시작할 수 있습니다:

python -m tools.run_webui \
    --llama-checkpoint-path "checkpoints/openaudio-s1-mini" \
    --decoder-checkpoint-path "checkpoints/openaudio-s1-mini/codec.pth" \
    --decoder-config-name modded_dac_vq

또는 간단히

python -m tools.run_webui

추론을 가속화하려면 --compile 매개변수를 추가할 수 있습니다.

Note

라벨 파일과 참조 오디오 파일을 메인 디렉토리의 references 폴더에 미리 저장할 수 있습니다(직접 생성해야 함). 이렇게 하면 WebUI에서 직접 호출할 수 있습니다.

Note

GRADIO_SHARE, GRADIO_SERVER_PORT, GRADIO_SERVER_NAME과 같은 Gradio 환경 변수를 사용하여 WebUI를 구성할 수 있습니다.