How to implement the PHP voice to account api interface

angryTom
Release: 2023-02-27 19:40:01
Original
2677 people have browsed it

How to implement the PHP voice to account api interface

How to implement the php voice to account api interface

1. Preparation work
Apply for iFlytek account http ://www.xfyun.cn/

How to implement the PHP voice to account api interface

Add IP whitelist (effective in 5-10 minutes) Prepare an audio file (wav or pcm format) to obtain APPID and APPKEY ( APPKEY is different for each service)

const APP_ID = ‘xxxx’;
const APP_KEY_IAT = ‘xxxx’; //语音听写APPKEY
const APP_KEY_ISE = ‘xxxx’; //语音评测APPKEY
const APP_KEY_TTS = ‘xxxx’; //语音合成APPKEY
Copy after login

Voice Dictation

public function voiceIat($file_path)
{
$param = [
‘engine_type’ => ‘sms16k’,
‘aue’ => ‘raw’
];
$cur_time = (string)time();
$x_param = base64_encode(json_encode($param));
$header_data = [
‘X-Appid:’.self::APP_ID,
‘X-CurTime:’.$cur_time,
‘X-Param:’.$x_param,
‘X-CheckSum:’.md5(self::APP_KEY_IAT.$cur_time.$x_param),
‘Content-Type:application/x-www-form-urlencoded; charset=utf-8’
];
//Body
$file_path = $file_path;
$file_content = file_get_contents($file_path);
$body_data = ‘audio=’.urlencode(base64_encode($file_content));
//Request
$url = “http://api.xfyun.cn/v1/service/v1/iat”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
Copy after login

Voice Dictation Example:

voiceIat('a.wav');
Copy after login

Voice Review

public function voiceIse($file_path, $content)
{
$param = [
‘language’ => ‘cn’,
‘aue’ => ‘raw’,
‘category’ => ‘read_sentence’
];
$cur_time = (string)time();
$x_param = base64_encode(json_encode($param));
$header_data = [
‘X-Appid:’.self::APP_ID,
‘X-CurTime:’.$cur_time,
‘X-Param:’.$x_param,
‘X-CheckSum:’.md5(self::APP_KEY_ISE.$cur_time.$x_param),
‘Content-Type:application/x-www-form-urlencoded; charset=utf-8’
];
//Body
$file_path = $file_path;
$file_content = file_get_contents($file_path);
$body_data = ‘audio=’.urlencode(base64_encode($file_content)).’&text=’.urlencode($content);
$url = “http://api.xfyun.cn/v1/service/v1/ise”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
Copy after login

Voice evaluation example:

echo voiceIse(‘a.wav’, ‘科大讯飞真给力’);
Copy after login

Speech synthesis:

public function voiceTts($content, $output_path)
{
$param = [
‘engine_type’ => ‘intp65’,
‘auf’ => ‘audio/L16;rate=16000’,
‘aue’ => ‘raw’,
‘voice_name’ => ‘xiaoyan’,
‘speed’ => ‘0’
];
$cur_time = (string)time();
$x_param = base64_encode(json_encode($param));
$header_data = [
‘X-Appid:’.self::APP_ID,
‘X-CurTime:’.$cur_time,
‘X-Param:’.$x_param,
‘X-CheckSum:’.md5(self::APP_KEY_TTS.$cur_time.$x_param),
‘Content-Type:application/x-www-form-urlencoded; charset=utf-8’
];
//Body
$body_data = ‘text=’.urlencode($content);
//Request
$url = “http://api.xfyun.cn/v1/service/v1/tts”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $body_data);
$result = curl_exec($ch);
$res_header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$res_header = substr($result, 0, $res_header_size);
curl_close($ch);
if(stripos($res_header, ‘Content-Type: audio/mpeg’) === FALSE){ //合成错误
return substr($result, $res_header_size);
}else{
file_put_contents($output_path, substr($result, $res_header_size));
return ‘语音合成成功,请查看文件!’;
}
}
Copy after login

Speech synthesis example:

echo voiceTts(‘科大讯飞真给力’, ‘a.wav’);
Copy after login

For more PHP related knowledge, please Visit PHP Chinese website!

The above is the detailed content of How to implement the PHP voice to account api interface. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template