- Create Google Cloud account https://cloud.google.com/
- You can create account using existing mail id.
- Obtain api key for Text to Speech.
- Create Rest Api to convert text to speech.
- We are using cUrl method to send a request.
Create Api.php and extend REST_Controller
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require APPPATH . '/libraries/REST_Controller.php';
class Api extends REST_Controller{
public function __construct(){
parent::__construct();
}
public function index_get() {
$text = "Hi, how are you doing? Very well thank you. How about you? Not so well. But thank you for asking. How is the weather there? Oh, its very warm out here.";
$audioContent = $this->generateSpeech($text);
$this->response(array(
"status" => 1,
"message" => "question 1",
"data" => $audioContent
), REST_Controller::HTTP_OK);
}
private function generateSpeech($text) {
$api_url = "https://texttospeech.googleapis.com/v1/text:synthesize?key=API_Key";
$post_data = [
'input' => [
'text' => $text
],
'voice' => [
'languageCode' => 'en-IN',
'name' => 'en-IN-Wavenet-C' // You can choose other voices too
],
'audioConfig' => [
'audioEncoding' => 'MP3'
]
];
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('content-Type: application/json'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post_data));
$response = curl_exec($ch);
curl_close($ch);
return json_decode($response, true);
}
}
?>
Comments
Post a Comment