일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 후기
- JavaScript
- 알림
- 면접
- 리액트
- 레이아웃
- 자바스크립트
- 스코프
- 네비게이션
- scope
- graphql
- 배포
- 카카오
- Express
- Push
- NATIVE
- 디자인
- AWS
- Background
- Notification
- github
- Python
- navigation
- 변수
- EC2
- ubuntu
- MongoDB
- React
- 네이티브
- JS
- Today
- Total
어서와, 개발은 처음이지?
Nodejs로 AWS Polly(text to speech) 사용하기 본문
Text To Speech(TTS)는 텍스트를 음성으로 바꿔주는 음성 합성 기술입니다.
이번 글에서는 nodejs로 AWS에서 제공하는 TTS 서비스인 Polly를 사용하는 방법을 다뤄보겠습니다.
예제 코드에 대한 부분은 이 글을 참고했습니다.
1. AWS IAM 사용자 생성
Polly를 사용하기 위해 npm에서 aws-sdk 패키지를 설치할 것인데 aws-sdk를 이용하기 위해서는 인증 정보가 필요합니다.
이 인증 정보를 생성하기위해 AWS에서 IAM 콘솔로 이동합니다.
[사용자 추가]
메뉴에서 사용자 -> 사용자 추가를 선택하여 사용자를 생성하도록 합니다.
기본 정보를 입력할 수 있는 페이지가 나타납니다.
[기본정보 입력]
aws-sdk를 사용할 것이기 때문에 프로그래밍 방식 엑세스는 필수적으로 선택하고, Console 엑세스는 상황에 따라 선택하시면 됩니다.
비밀번호 재설정 필요 항목은 체크하지 않았습니다.
다음 버튼을 누르면 권한을 설정하는 페이지가 나타납니다.
[권한 설정]
기존 사용자나 그룹이 없기 때문에 기존 정책 직접 연결 탭에서 Polly를 검색합니다.
상단에 AmazonPollyFullAccess 항목을 선택하고 다음으로 넘어갑니다.
[태그 추가]
태그는 사용하지 않을 것이기 때문에 다음으로 넘어갑니다.
[검토]
이제 마지막으로, 작성한 정보를 확인하는 검토 단계가 나옵니다.
사용자 만들기를 눌러 사용자 추가를 완료합니다.
[액세스 키 ID / 비밀 액세스 키]
사용자 생성이 완료되면 위와 같은 화면을 볼 수 있습니다.
aws-sdk에서는 위 액세스 키 ID, 비밀 액세스 키 정보가 필요하기 때문에 csv로 다운받아두거나 공개되지 않은 곳에 복사해둡니다.
이 화면을 넘어가면 비밀 액세스 키를 볼 수 없으니 잘 저장해두시기 바랍니다.(비밀키를 잃어버리면 키를 새로 생성할 순 있습니다.)
2. 인증 정보 설정
IAM에서 생성한 액세스 키를 아래 경로에 생성합니다.
Windows - C:/Users/USER_NAME/.aws/credentials
OSX, Linux - ~/.aws/credentials
> mkdir ~/.aws > vi ~/.aws/credentials
이제 액세스 키 ID와 비밀 액세스 키를 아래와 같이 입력하고 저장합니다.
[default] aws_access_key_id = AKIAIVXRDURQEYWITHRQ aws_secret_access_key = xxx
3. 프로젝트 생성
이제 임의 경로에 프로젝트를 생성하고 aws-sdk와 TTS파일을 저장하기 위해 fs 패키지를 설치합니다.
> mkdir polly > cd polly > npm init > npm install --save aws-sdk fs
4. 코드 실행
프로젝트 경로로 들어가서 app.js를 생성하고 아래 코드를 붙여넣습니다.
> vi app.js
const AWS = require('aws-sdk'); const fs = require('fs'); const Polly = new AWS.Polly({ signatureVersion: 'v4', region: 'us-east-1', }); let params = { 'Text': '반가워 친구야~', 'OutputFormat': 'mp3', 'VoiceId': 'Seoyeon' }; Polly.synthesizeSpeech(params, (err, data) => { if (err) { console.log(err.code); } else if (data) { if (data.AudioStream instanceof Buffer) { fs.writeFile("./speech.mp3", data.AudioStream, function(err) { if (err) { return console.log(err); } console.log("The file was saved!"); }) } } });
그리고 app.js를 실행합니다.
> node app.js The file was saved!
에러 없이 실행됐다면 프로젝트 경로에 speech.mp3 파일이 생성된 것을 볼 수 있습니다.
이 파일을 실행하면 반가워 친구야 라는 음성을 들을 수 있습니다.
VoiceId에 따라 국적/목소리가 변경되는데, 상세한 파라미터 정보는 이 곳에서 확인할 수 있습니다.
또한 region의 end point는 이 곳에서 확인할 수 있습니다.
express.js와 함께 tts를 제공하는 서비스를 만들 수도 있겠습니다.
이상으로 nodejs에서 polly 사용하는 방법을 알아봤습니다.
'Node' 카테고리의 다른 글
브라우저 onfocus시에 react server component revalidate 하기 (1) | 2024.04.28 |
---|---|
카카오 오픈빌더와 외부 API 연동(feat.Nodejs) (12) | 2020.03.16 |
RESTful API에 Express Session 사용하기 (0) | 2018.09.04 |
카카오 플러스친구 API 연동 with Node.js (1) | 2018.07.29 |