728x90
SMALL
처리 과정
api이용하여 날씨정보를 불러와 텍스트를 음성리 변환 mp3 인코딩되어 보이스 액세스 음성처리 합니다
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<?php
//*Copyright © HoneyMusic*
//*Yu-sung heon *
//*density2002@naver.com *
$url = "http://api.wunderground.com/api/e9e0b719ce8b9e95/geolookup/conditions/lang:KR/q/Korea/Cheongju.json.json";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$return = curl_exec($ch);
curl_close($ch);
$json_string = $return;
$parsed_json = json_decode($json_string);
$location = $parsed_json->{'location'}->{'city'};
$temp_f = $parsed_json->{'current_observation'}->{'temp_f'};
$temp_c = $parsed_json->{'current_observation'}->{'temp_c'};
$uv = $parsed_json->{'current_observation'}->{'UV'};
$wind_kph = $parsed_json->{'current_observation'}->{'wind_kph'};
$weather = $parsed_json->{'current_observation'}->{'weather'};
$icon_url = $parsed_json->{'current_observation'}->{'icon_url'};
$api = "현재 날씨를 알려 드리겠습니다 $location 에는 섭씨$temp_f 도씨이며 온도 $temp_c 도씨입니다.현재날씨는 $weather 입니다. 풍속은 $wind_kph 입니다. 좋은 하루되십시요\n";
$apidata = "$location 온도: $temp_c 섭씨: $temp_f 날씨: $weather \n";
class TextToSpeech {
public $mp3data;
function __construct($text="") {
$text = trim($text);
if(!empty($text)) {
$text = urlencode($text);
$url = "http://translate.google.com/translate_tts?ie=utf-8&tl=ko&q=".$text;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$return = curl_exec($ch);
curl_close($ch);
$this->mp3data = $return;
}
}
function setText($text) {
$text = trim($text);
if(!empty($text)) {
$text = urlencode($text);
$url = "http://translate.google.com/translate_tts?ie=utf-8&tl=ko&q=".$text;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)");
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$return = curl_exec($ch);
curl_close($ch);
$this->mp3data = $return;
return $mp3data;
} else { return false; }
}
function saveToFile($filename) {
$filename = trim($filename);
if(!empty($filename)) {
return file_put_contents($filename,$this->mp3data);
} else { return false; }
}
}
$data=$api;
$tts = new TextToSpeech();
$tts->setText($data);
$tts->saveToFile("masnun.mp3");
?>
<audio controls="controls" autoplay="autoplay">
<source src="masnun.mp3" type="audio/mpeg"/>
</audio><br>
<img src="<?=$icon_url;?>" height="30" ><? echo $apidata; ?>
728x90
LIST
'IT정보' 카테고리의 다른 글
컴퓨터 구매 전 꼭 알아둬야 할 사항 (31) | 2023.04.08 |
---|---|
최신 컴퓨터 추천 - 2023년 노트북 순위 (3) | 2023.04.08 |
인스타그램 마케팅의 핵심, 해시태그 활용법 (2) | 2023.04.07 |
워터마크를 QR코드로 My페이지를 명시하라? (6) | 2023.04.05 |
블로그&사이트 방문자수 늘리기 (6) | 2023.03.31 |
댓글