안 쓰던 블로그
유니티 TTS(Text-To-Speech)간단하게 구현하기(google web tts api/WWW 클래스 사용) 본문
빠른 결론은 좀 내리면 중간부터 있음
퀴즈 게임의 꽃은 소리!! 문제 텍스트를 소리로 읽어주고 싶었다
처음에는 구글 tts api와 이것저것 시도해봤는데 아무리 해도 안 되고 삽질의 한계가 와서 그냥 mp3를 뽑아내고 출력하는 식으로 했었다(아래 글 참고)
https://foxtrotin.tistory.com/124
근데!! 저 때는 49개밖에 없었어서 노가다할 수 있었는데
새로운 컨텐츠를 추가하면서 이미지가 419개가 추가되었고 이걸 하나씩 mp3를 뽑고 있을 수는 당연히 없다..
나한테 있는 선택지들
1. google tts api
너무 좋지만 저번에 열심히 삽질하고 결국 못했던 경험이 있음
가장 큰 단점은 유료라는 문제였음 지금은 첫 가입 크레딧으로 쓰고 있지만 계속 쓸 수는 없었다
그리고 내 앱은 유동적인 텍스트도 아니고 매번 같은 단어를 읽기만 하면 되니까 더 간단하게 할 수 있지 않을까 생각을 했다
2. 무료tts홈페이지
괜찮은 곳을 못찾음
일정 수준 이상은 유료인 서비스도 많았고
무엇보다 홈페이지가 닫기라도 한다면 앱은 어떻게 되는 건지 불완전한 느낌
3. 크롤링
극단적으로 이런 생각까지 했다
위에 mp3파일 불러오는 글에서 49개 텍스트를 파파고 홈페이지에서 뜯어냈음
그럼 자동으로.. 419개도 뜯을 수 있지 않을까..
근데 광고도 안 붙이고 교육목적 비영리 앱이라고 해도 뭔가 이건 양심에 찔렸기도 하고
수많은 프로그램/앱에서 기계음이 나오는데 모든 사람이 유료를 쓰고 있지는 않을 것 아님?
엄청 쉬운 방법이나 내장되어 있는 기능이 무조건 있을 것 같음
4. 안드로이드 스튜디오 플러그인 사용
안드로이드에는 기본적으로 tts기능이 있다 (이런 느낌: https://sharp57dev.tistory.com/27)
안드로이드 스튜디오에서 플러그인으로 만들고 유니티에서 가져오고 뭐 그러면 그쪽 기능을 쓸 수 있다고 함
문제는.. 안드로이드 스튜디오도 안 깔려 있고 자바도 잘 모르고.. 과정이 많이 복잡해짐
굳이 이렇게까지 해야하나? 유니티에서 간단하게 할 수 있는 방법은 없을까?
5. google translate에다가 WWW로 접근해서 음성만 출력
이건 사실 전의 글(https://foxtrotin.tistory.com/124)에서 1차 시도로 했던 방법
tts구현을 검색하면 가장 많이 나오는 방법인데.. 내가 하면 자꾸 주소가 잘못되었다 그래서 이제는 안 되나 하고 패스했음
근데 이거 되는 것 같아서 다시 잡아봤다
[tts구현 방법]
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class tts : MonoBehaviour
{
public AudioSource audioSource;
// Start is called before the first frame update
void Start()
{
audioSource = gameObject.GetComponent<AudioSource>();
StartCoroutine(DownloadTheAudio());
}
IEnumerator DownloadTheAudio()
{
string url = "https://translate.google.com/translate_tts?ie=UTF-8&total=1&idx=0&textlen=32&client=tw-ob&q=SampleText&tl=En-gb";
WWW www = new WWW(url);
yield return www;
audioSource.clip = www.GetAudioClip(false,true, AudioType.MPEG);
audioSource.Play();
}
}
ㅠㅠㅠㅠ드디어했다ㅠㅠㅠ
ㅠㅠㅠ
'유니티 > 개발' 카테고리의 다른 글
유니티에서 logcat 로그 보기(유니티에서 디버깅하기) (0) | 2020.03.25 |
---|---|
유니티 버튼이 부분적으로만 눌리는 문제, 한 쪽만 눌림 해결방법 (4) | 2020.03.13 |
유니티 출시 오류-이 출시 버전은 Google Play 64비트 요구 사항을 준수하지 않습니다 해결방법 (0) | 2020.03.02 |
unity 스테이지 Lock 구현하기 (0) | 2020.03.02 |
unity 씬이 바뀌어도 배경음악 반복 재생/정지/일시정지 (2) | 2020.03.02 |