Nexmo 文本转语音在回答时中断正确的方式

Nexmo text-to-speech break right a way when answers

我尝试使用 Nexmo composer 包在我的应用程序中将文本转为语音。 SMS 运行良好,但 T2S 服务有问题。当我发送请求时,它会给我打电话,但当我单击应答时,它会结束通话。 以下是 json 添加到 T2S 调用中的示例:

[ "{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }" ]

我也试试这个:

{ "action": "talk", 
"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam ut ligula nec quam pulvinar rn bibendum. Sed nisi ipsum, pretium tempor bibendum vel, condimentum ut erat. Vivamus sagittis, rn mi eget tincidunt laoreet, diam ligula euismod nisi, sit amet maximus ipsum arcu facilisis erat. rn Donec sed efficitur enim. Phasellus sagittis pulvinar semper. Pellentesque quis nibh sed neque rn maximus sodales. Morbi vel ornare elit. ", 
"voiceName": "Salli" }

但 none 有效。

这里是向我发送呼叫并将文件制作成 Nexmo 将读取的 S3 的示例:

$json_file = str_random(16).'.json';

        $data = [
            'action' => 'talk',
            'text' => $event->notification->content.' '.$event->arrived_in,
            'voiceName' => 'Salli'
        ];

        $newJsonString = json_encode($data, JSON_PRETTY_PRINT);

        $this->flysystem->connection('awss3');
        $this->flysystem->write('call_cleanup_notifications/'.$json_file, stripslashes($newJsonString));

        $basic  = new Basic(getenv('NEXMO_KEY'), getenv('NEXMO_SECRET'));

        $this->flysystem->connection('awss3');
        $key = $this->flysystem->read('application.key');

        $keypair = new Keypair($key, getenv('NEXMO_APPLICATION_ID'));

        $client = new Client(new Container($basic, $keypair));
$client->calls()->create([
            'to' => [[
                'type' => 'phone',
                'number' => $event->cleanupUserChanel->home_phone_number
            ]],
            'from' => [
                'type' => 'phone',
                'number' => getenv('NEXMO_SMS_FROM')
            ],
            'answer_url' => [getenv('GATEWAY_API_URL').'/notification_call/'.$json_file],
        ]);

我认为您与第一个示例非常接近,但 NCCO 不是很有效 JSON。在开头,在 [ 之后,删除对象在 { 开始之前的引号 "。 (然后在最后做同样的事情,删除 ] 之前的最后一个引号。希望有帮助!

这里是使这个 json T2S 文件成为有效格式的解决方案:

            $json_file = str_random(16) . '.json';
            $data[] = (object) [
                'action' => 'talk',
                'text' => "Lorem ipsum dolor sit amet, consectetur adipiscing elit",
                'voiceName' => 'Salli'
            ];
//save file in file system using flysystem composer package
            $this->flysystem->write($json_file, json_encode($data,JSON_PRETTY_PRINT));