새소식

반응형
AI/models

Bark : 트랜스포머 기반 text-to-audio 모델

  • -
728x90
반응형

Bark 란?

  • 트랜스포머 기반 text-to-audio 모델  (Model Card)
  • 대화 뿐 아니라 음악, 배경 소음, 간단한 사운드 효과와 웃음 소리, 한숨, 울음 소리 등 non-verbal 한 부분까지 생성할 수 있다.
  • 프롬프트 형식으로 생성할 수 있다.
  • 다양한 언어를 제공한다.
  • 라이센스 : NonCommercial 4.0 International
    • 영리 목적으로는 사용할 수 없다.

 

다양한 non-verbal 효과

더보기
  • [laughter]  : 웃음
  • [laughs]     : 웃음
  • [sighs]       : 한숨
  • [music]      : 음악
  • [gasps] 
  • [clears throat] : 목 가다듬기
  •  or ...       : 머뭇거림 
  •  
    • 텍스트 앞에 ♪ (음악 표시)를 추가하면 노래를 부르듯이 음성을 생성한다.
    • 배경음악도 어느정도 생성해서 추가해준다. 
  • 대문자 사용 : 단어 강조

 

text_prompt = """
     Hello, my name is Suno. And, uh — and I like pizza. [laughs] 
     But I also have other interests such as playing tic tac toe.
"""

 

 

text_prompt = """
    ♪ In the jungle, the mighty jungle, the lion barks tonight ♪
"""

 

 

프롬프트 형식

  • 남자, 여자 등을 지정해줬을 때 각각에 해당하는 목소리 톤으로 음성을 생성한다.
text_prompt = """
    WOMAN: I would like an oatmilk latte please.
    MAN: Wow, that's expensive!
"""

 

 

 

언어 제공 (13개국)

  • 현재 위에 해당하는 13개의 언어를 제공 중이고, 한국어도 있다!
  • 텍스트에서 언어를 자동으로 인식하기 때문에 따로 지정해줄 필요는 없다.
  • 현재까지는 영어 음성의 퀄리티가 제일 좋다고 한다.
  • example 사이트에서 각 언어별 샘플을 확인할 수 있다.

 

한국어 음성 생성 비교

  • 비교해봤는데, 영어 발화자로 한국어를 읽는게 한국 발화자보다 깔끔하다고 느껴진다. 물론 발음은 한국 발화자가 더 좋다.

 

 

음성 프리셋 + 합성

text_prompt = """
    I have a silky smooth voice, and today I will tell you about 
    the exercise regimen of the common sloth.
"""
audio_array = generate_audio(text_prompt, history_prompt="en_speaker_1")

 

  • 특정 음성을 선택할 수 있다. 
    • { lang_code }_speaker_{0-9} 패턴을 갖는다.
    • 각 언어별로 10개의 발화자가 제공 중
  • tone, pitch, emotion, prosody 를 포함해서 음성 합성이 가능하다.

 

 

Usage (Demos)

 

bark_demo.ipynb

Colaboratory notebook

colab.research.google.com

 

Bark - a Hugging Face Space by suno

 

huggingface.co

 

  • colab 과 huggingface 에서 demo를 제공해주고 있다.
  • 혹은 설치 가능

 

Installation 설치

# install bark as well as pytorch nightly to get blazing fast flash-attention
!pip install git+https://github.com/suno-ai/bark.git && \
  pip uninstall -y torch torchvision torchaudio && \
  pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu118
from bark import SAMPLE_RATE, generate_audio, preload_models
from IPython.display import Audio

preload_models()
text_prompt = """
     Hello, my name is Suno. And, uh — and I like pizza. [laughs] 
     But I also have other interests such as playing tic tac toe.
"""
audio_array = generate_audio(text_prompt)
Audio(audio_array, rate=SAMPLE_RATE)

 

 

음성 파일 저장

from scipy.io.wavfile import write as write_wav

write_wav("/path/to/audio.wav", SAMPLE_RATE, audio_array)
  • wav 파일로 저장할 수 있다.

 

 

 

개인 생각 + 추가 정보

  • discord 에서 서로 음성 샘플들도 공유하고 버그 공유도 하고 있다.
    • 퀄리티가 아주 좋다고 보긴 어렵지만 랩이나 EDM 음악 생성한 것들 보면 신기하다.
  • 테스트 결과 퀄리티가 아주 좋다고 느껴지진 않는다.
  • 그러나 프롬프트 형식에 범용성을 가졌다는 점이 특징이라고 생각한다. chatGPT 세상에 맞는 모델이라 할 수 있다.
  • 트랜스포머 기반 모델이니까 곧 프리 라이센스인 모델이 등장하지 않을까 기대해본다.

 

 

References

반응형

'AI > models' 카테고리의 다른 글

Whisper  (0) 2023.06.10
Text-To-Speech models  (0) 2023.05.09
Vicuna : ChatGPT 90% 성능을 가진 오픈 소스 챗봇  (0) 2023.05.06
KeyBERT  (0) 2023.04.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.