BARK(바크)는 Sono에 의해 만들어진 트랜스포머 기반의 텍스트-투-오디오 모델입니다.
바크는 매우 현실적이고 다언어 음성 뿐만 아니라 음악, 배경 소음, 그리고 간단한 사운드 이펙트까지 생성할 수 있습니다.
이 글에서는 바로 한 번 사용해보겠습니다.
목차
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
BARK란?
바크는 Suno사에 의해 창조된 트랜스포머 아키텍처를 기반으로 한 텍스트-투-오디오 모델입니다. 이 모델은 현실적인 다국어 음성뿐만 아니라 음악, 배경 소음 및 간단한 사운드 이펙트까지 생성할 수 있는 능력을 갖추었습니다.
해당 모델은 비언어적 커뮤니케이션인 웃음, 한숨, 울음과 같은 요소 또한 생성할 수 있습니다. 연구 공동체를 지원하기 위해, 추론에 활용할 수 있는 사전 훈련된 모델 체크포인트에 접근할 수 있는 경로가 마련되어 있으며, 상업적 용도로도 사용 가능합니다.
바트는 주로 연구 목적으로 개발되었습니다. 이 모델은 전통적인 텍스트-투-스피치(TTS) 모델과는 다른 접근을 취하며, 완전히 생성적인 텍스트-투-오디오(TTA) 모델로서, 주어진 입력 프롬프트에서 예상치 못한 창의적인 결과를 도출할 수 있습니다. 생성된 결과물에 대한 책임은 OpenAI가 부담하지 않습니다. 이 모델을 사용하실 때에는 스스로의 판단과 책임 하에 사용하시기를 권장합니다.
‘바크’로 생성된 Audio 예시
이제 예시로 생성된 음성 오디오를 한 번 들어보겠습니다.
‘바크’로 생성된 Audio 예시: 영어
“My name is namdoil… I’m a detectiv”
‘바크’로 생성된 Audio 예시: 한국어
“내이름은 남도일… 탐정이죠!”
‘바크’로 생성된 Audio 예시: 일본어
“ボクワ ナムドイル… 探偵です。”
‘바크’로 생성 가능한 언어
BART로 생성 가능한 언어로는 다음과 같습니다.
- 영어
- 독일어
- 스페인어
- 프랑스어
- 힌두어
- 이탈리아어
- 일본어
- 한국어
- 폴란드어
- 포루투갈어
- 러시아어
- 터키어
- 중국어(간체)
‘바크’ 설치및 사용하기
바로 GPU를 이용하여 사용하시기를 원하신다면 이 부분을 넘겨 “GPU로 빠른 생성 해보기” 파트로 넘어가셔도 무방합니다.
VS Code 기준으로 설치를 해보았습니다.
ctrl + shift + p를 눌러 환경을 검색해서 우선 파이썬 환경을 만들어 줍니다.
함께 참고하면 좋은 글 인공지능 을 위한 아나콘다 와 VS code 설치법
터미널을 다시 시작하여 현재 환경을 자동으로 선택합니다.
새로 만든 환경에 들어가 주세요.
pip install git+https://github.com/suno-ai/bark.git를 입력하여 자동으로 설치합니다. (GIT이라는 프로그램이 필요합니다.)
pip install git+https://github.com/huggingface/transformers.git 를 입력하여 transformers를 받아줍니다.
그 후, 파이썬 파일을 만들어 주고 아래와 같이 입력한 후 실행을 시켜 주면 필요한 모델들이 설치된 후에 음성 파일이 만들어집니다.
from transformers import AutoProcessor, BarkModel
import scipy
processor = AutoProcessor.from_pretrained("suno/bark")
model = BarkModel.from_pretrained("suno/bark")
voice_preset = "v2/en_speaker_6"
inputs = processor("Hello, my dog is cute", voice_preset=voice_preset)
audio_array = model.generate(**inputs)
audio_array = audio_array.cpu().numpy().squeeze()
sample_rate = model.generation_config.sample_rate
scipy.io.wavfile.write("bark_out.wav", rate=sample_rate, data=audio_array)
여기서 CPU를 사용하면 속도가 꾀 느리지만 생성이 됩니다.
이렇게 음성 파일이 만들어 졌습니다.
‘바크’: GPU로 빠른 생성 해보기
이 파트는 좀더 빠른 생성을 하기위해 GPU로 pytorch를 하기위한 과정입니다. 필요 없으면 생략해도 되겠습니다.
꼬임을 방지하기위해 새로운 폴더에서 새로운 환경을 만들어줍니다.
우선 CMD에 nvcc –version 을 입력해 cuda 버전을 알아봅시다. ( 뜨지않는다면 cuda를 설치해야합니다. )
쿠다 11.8 툴 킷을 받아 설치해 주었습니다.
그후에 pytorch 홈페이지로 들어가서 파이토치 버전을 확인해 봅니다.
파이토치의 호환버전과 쿠다 버전이 동일하게 맞춰줘야합니다. cuda 버전을 11.8로 설치해야 합니다.
쿠다 버전에 맞게 파이토치를 설치해 봅니다.
pip3 install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118 를 입력해 줍니다. 이러면 설치가 완료됩니다.
파이썬파일을 만들어 아래와 같이 입력해 봅니다.
import torch
print(torch.version.cuda)
여기서 아래와 같이 버전이 뜨게 되면 잘 설치가 된 것입니다.
그리고 다시 git 명령어로 bark와 transformer를 설치해줍니다.
pip install git+https://github.com/suno-ai/bark.git
pip install git+https://github.com/huggingface/transformers.git
그리고 IPython 을 인스톨 해 줍니다.
pip install ipython
그후에 아래의 코드의 파이썬 파일을 만들어 실행시켜 줍니다.
from transformers import BarkModel
import torch
from transformers import AutoProcessor
from IPython.display import Audio
import scipy
model = BarkModel.from_pretrained("suno/bark")
device = "cuda:0"
model = model.to(device)
processor = AutoProcessor.from_pretrained("suno/bark")
# prepare the inputs
text_prompt = "체다치즈를 최고 많이 먹은 최다은이 체다치즈 먹기 대회 최다 우승자이다"
inputs = processor(text_prompt,"v2/ko_speaker_0")
# generate speech
speech_output = model.generate(**inputs.to(device))
sampling_rate = model.generation_config.sample_rate
Audio(speech_output[0].cpu().numpy(), rate=sampling_rate)
scipy.io.wavfile.write("bark_out.wav", rate=sampling_rate, data=speech_output[0].cpu().numpy())
그러면 다음과 같이 음성 파일이 생성되고, CPU에 비해 빠른 생성이 가능합니다.
또한 아래와 같이 추가하면 좀더 다채로운 음성파일을 생성할수 있습니다. (한국어에서는 어색한 면이 크긴합니다)
[laughter] 웃음
[laughs] 웃음
[sighs] 한숨
[music] 노래
[gasps] 헐떡임
[clears throat] 목을 가다듬기
— 또는 ... 주저하기
♪ 노래하기
단어의 첫글자가 대문자인경우 강조
[MAN] 이나 [WOMAN] 남성 또는 여성 화자로 편향
ex)
"♪ In the jungle, the mighty jungle, the lion barks tonight ♪"
생성된 음성은 아래와 같습니다.
‘바크’ 사용 가능한 목소리 프리셋
사용가능 한 voice preset들은 링크를타면 볼 수 있습니다.
한국어 프리셋은 아래와 같습니다.
여성:
"v2/ko_speaker_0"
남성:
"v2/ko_speaker_1"
"v2/ko_speaker_2"
"v2/ko_speaker_3"
"v2/ko_speaker_4"
"v2/ko_speaker_5"
"v2/ko_speaker_6"
"v2/ko_speaker_7"
"v2/ko_speaker_8"
"v2/ko_speaker_9"
결론
“이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”
이 글에서는 Suno사의 트랜스포머 기반 텍스트-투-오디오 모델인 ‘바크’에 대해 자세히 알아보았습니다. ‘바크’는 다양한 언어와 다양한 사운드 이펙트를 지원하며, CPU와 GPU 환경에서 모두 사용 가능합니다. 설치와 사용 방법, 예시 음성, 그리고 가능한 언어와 목소리 프리셋 등을 소개하였습니다. ‘바크’는 연구 목적 뿐만 아니라 상업적 용도로도 적합하며, 사용자 스스로의 판단과 책임 하에 다양한 오디오 생성 작업을 수행할 수 있습니다. 이 모델은 텍스트를 오디오로 변환하는 전통적인 방식을 넘어서, 창의적이고 현실적인 오디오를 생성할 수 있는 강력한 도구입니다.
함께 참고하면 좋은 글
ComfyUI 설치 및 실행시키기(스테이블 디퓨전XL SDXL)
2 thoughts on “BARK: 인공지능 TTS(정확히는 TTA) 사용 해보기.”