[PHP] 카카오 음성 합성
2021. 10. 18. 13:43ㆍPHP
홈페이지에 뉴스 읽어주기 기능을 사용하기 위하여 찾아보니 TTS 음성 합성 API 를 활용하여 만들수 있어서 진행 하였습니다.
우선 구글과 네이버에서도 존재 하고있지만 유료여서 우선 무료베타중인 카카오를 활용하여 작성 하였습니다.
https://developers.kakao.com/docs/latest/ko/voice/rest-api#text-to-speech
REST 방식으로 진행을 하였고 PHP 의 CURL 을 사용하였습니다.
$tts_text = "음성인식 테스트 중입니다.";
$headers = [
'Accept: ' . $_SERVER['HTTP_ACCEPT'],
'Accept-Encoding: gzip, deflate',
'Accept-Language: ' . $_SERVER['HTTP_ACCEPT_LANGUAGE'],
'Cache-Control: no-cache',
'User-Agent: ' . $_SERVER['HTTP_USER_AGENT'],
'Authorization: KakaoAK XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX(키값)',
'Content-Type: application/xml'
];
$url = 'https://kakaoi-newtone-openapi.kakao.com/v1/synthesize';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
curl_setopt($ch, CURLOPT_SSLVERSION , 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER , false);
curl_setopt($ch, CURLOPT_VERBOSE , true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST , 'POST');
curl_setopt($ch, CURLOPT_POSTFIELDS , '<speak>'.$tts_text.'</speak>');
$return = curl_exec($ch);
$folder_name = $_SERVER['DOCUMENT_ROOT']."/data/tts/";
$file_name = "tts_".date("YmdHis").".mp3";
$up_name = $folder_name.$file_name;
$myfile = fopen($up_name, "w");
fwrite($myfile, $return);
fclose($myfile);
위와같이 적용을 하게 되면 해당 텍스트가 mp3 파일 형태로 추출 되어서 쌓이게 되고 이를 html 에서 불러서 활용 하도록 작업을 진행 하였습니다.
물론 용량등 제한이 있을경우 파일 생성과 동시에 실행을 하고 파일을 삭제 하는방법으로 진행을 하여도 될것 같습니다.
'PHP' 카테고리의 다른 글
PHP 익스플로러 구분 (0) | 2021.10.08 |
---|---|
[PHP] 소셜로그인 - Facebook (0) | 2020.10.26 |
[PHP] PC , Mobile 접속시 체크 하는 방법 (1) | 2020.10.19 |