[PHP] 카카오 음성 합성

2021. 10. 18. 13:43PHP

홈페이지에 뉴스 읽어주기 기능을 사용하기 위하여 찾아보니 TTS 음성 합성 API 를 활용하여 만들수 있어서 진행 하였습니다.

 

우선 구글과 네이버에서도 존재 하고있지만 유료여서 우선 무료베타중인 카카오를 활용하여 작성 하였습니다. 

 

https://developers.kakao.com/docs/latest/ko/voice/rest-api#text-to-speech

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

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