구글 API를 사용을 위한 프로젝트 생성하기
1. 프로젝트 생성하기
구글 API를 사용하려면 프로젝트를 생성해주어야 합니다. 만약 기존에 사용하는 프로젝트가 있다면 해당 프로젝트를 사용해도 괜찮습니다. 새 프로젝트를 생성하는 방법은 다음과 같습니다.
새 프로젝트 생성은 위와 같은 순서로 진행이 되는데, 하나의 프로젝트는 API들을 관리하는 하나의 카테고리로 생각할 수 있습니다.
2. API 설정 및 과금
위와 같이 프로젝트가 생성되면, 상단의 EABLE APIS AND SERVICES 라는 버튼을 클릭하여 프로젝트에 API를 추가할 수 있습니다.
사용할 API을 검색하여 선택한 후, API 사용 설정 버튼을 클릭하면 결제방법을 등록하라는 창이 나오는데, API를 처음 사용하는 경우라면 일정 기간동안 사용할 수 있는 무료 크레딧이 제공됩니다.
또 제공된 무료 크레딧을 모두 사용한 경우라도, 일정 사용량까지는 API를 무료로 사용할 수 있기 때문에, 실제 상용 제품에 적용하는 경우가 아니라면, 큰 비용을 결제하는 상황이 발생하지는 않습니다.
3. 사용자 인증정보 만들기
만약 다음과 같이 API 사용 중지라는 버튼이 활성화되어 있다면, API설정이 완료된 상태로 해당 버튼을 클릭하면 안됩니다. 말 그대로 API를 사용 중지 상태로 전환하는 버튼입니다.
위의 화면에서 우측에 있는 사용자 인증 정보 만들기 버튼을 클릭하면 다음과 같은 화면이 나옵니다.
이 화면에서 사용할 API를 선택한 후 사용자 인증 정보를 생성해줍니다.
사용자 인증정보를 생성하고 나면, 이제 해당 인증 key로 API를 사용할 수 있습니다.
** API 키는 구글 콘솔에서 특정 도메인에서만 사용할 수 있도록 설정하는 것이 좋습니다.
Google TTS 구현하기
Google API 사용 설정을 완료했다면, TTS를 구현하는 것은 간단합니다. 구글의 API 서버 https://texttospeech.googleapis.com/v1/text:synthesize
로 텍스트를 전달하면, 전달된 텍스트를 음성 데이터로 변환하여 반환해줍니다.
function textToSpeech(_text) { const url = "https://texttospeech.googleapis.com/v1/text:synthesize?key={YOUR_API_KEY}"; const data = { input: { text: _text, }, voice: { languageCode: 'ko-KR', name: 'ko-KR-Neural2-c', ssmlGender: 'MALE', }, audioConfig: { audioEncoding: "MP3", }, }; const otherparam = { headers: { "content-type": "application/json; charset=UTF-8", }, body: JSON.stringify(data), method: "POST", }; // 사운드 생성 fetch(url, otherparam) .then((data) => { return data.json(); }) .then((res) => { console.log(res.audioContent); // base64 }) .catch((error) => { console.log(error); }); }
구글 TTS로 사용 가능한 한국어 모델
언어 | 음성유형 | 언어코드 | 음성이름 | 성별 |
---|---|---|---|---|
한국어(대한민국)
|
Neural2
|
ko-KR
|
ko-KR-Neural2-A
|
여성
|
한국어(대한민국)
|
Neural2
|
ko-KR
|
ko-KR-Neural2-B
|
여성
|
한국어(대한민국)
|
Neural2
|
ko-KR
|
ko-KR-Neural2-C
|
남성
|
한국어(대한민국)
|
표준
|
ko-KR
|
ko-KR-Standard-A
|
여성
|
한국어(대한민국)
|
표준
|
ko-KR
|
ko-KR-Standard-B
|
여성
|
한국어(대한민국)
|
표준
|
ko-KR
|
ko-KR-Standard-C
|
남성
|
한국어(대한민국)
|
표준
|
ko-KR
|
ko-KR-Standard-D
|
남성
|
한국어(대한민국)
|
WaveNet
|
ko-KR
|
ko-KR-Wavenet-A
|
여성
|
한국어(대한민국)
|
WaveNet
|
ko-KR
|
ko-KR-Wavenet-B
|
여성
|
한국어(대한민국)
|
WaveNet
|
ko-KR
|
ko-KR-Wavenet-C
|
남성
|
한국어(대한민국)
|
WaveNet
|
ko-KR
|
ko-KR-Wavenet-D
|
남성
|
구글 TTS로 사용 가능한 일본어 모델
언어 | 음성유형 | 언어코드 | 음성이름 | 성별 |
---|---|---|---|---|
일본어(일본)
|
Neural2
|
ja-JP
|
ja-JP-Neural2-B
|
여성
|
일본어(일본)
|
Neural2
|
ja-JP
|
ja-JP-Neural2-C
|
남성
|
일본어(일본)
|
Neural2
|
ja-JP
|
ja-JP-Neural2-D
|
남성
|
일본어(일본)
|
표준
|
ja-JP
|
ja-JP-Standard-A
|
여성
|
일본어(일본)
|
표준
|
ja-JP
|
ja-JP-Standard-B
|
여성
|
일본어(일본)
|
표준
|
ja-JP
|
ja-JP-Standard-C
|
남성
|
일본어(일본)
|
표준
|
ja-JP
|
ja-JP-Standard-D
|
남성
|
일본어(일본)
|
WaveNet
|
ja-JP
|
ja-JP-Wavenet-A
|
여성
|
일본어(일본)
|
WaveNet
|
ja-JP
|
ja-JP-Wavenet-B
|
여성
|
일본어(일본)
|
WaveNet
|
ja-JP
|
ja-JP-Wavenet-C
|
남성
|
일본어(일본)
|
WaveNet
|
ja-JP
|
ja-JP-Wavenet-D
|
남성
|
구글 TTS로 사용 가능한 영어 모델
언어 | 음성유형 | 언어코드 | 음성이름 | 성별 |
---|---|---|---|---|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-A
|
남성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-C
|
여성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-D
|
남성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-E
|
여성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-F
|
여성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-G
|
여성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-H
|
여성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-I
|
남성
|
영어(미국)
|
Neural2
|
en-US
|
en-US-Neural2-J
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-News-K
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-News-L
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-News-M
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-News-N
|
남성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-A
|
남성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-B
|
남성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-C
|
여성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-D
|
남성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-E
|
여성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-F
|
여성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-G
|
여성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-H
|
여성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-I
|
남성
|
영어(미국)
|
표준
|
en-US
|
en-US-Standard-J
|
남성
|
영어(미국)
|
Studio
|
en-US
|
en-US-Studio-M
|
남성
|
영어(미국)
|
Studio
|
en-US
|
en-US-Studio-O
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-A
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-B
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-C
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-D
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-E
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-F
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-G
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-H
|
여성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-I
|
남성
|
영어(미국)
|
WaveNet
|
en-US
|
en-US-Wavenet-J
|
남성
|