בעיה בphp|כשאני קורא למשתנה הוא לא מגיב, כשאני רושם אותו פיזית הוא כן עובד תקין.
-
יש לי קוד PHP ששולח טקסט לשירות tts ומקבל חזרה את קידוד של השמע, ואז אני שומר את הקידוד בקובץ mp3 וככה נוצר לי קובץ עם שמע שאני צריך.
הנתונים שאותם אני שולח בPOST לשירות של הtts הם:
$post_data = '{"voiceService": "servicebin", "voiceID": "he-IL", "voiceSpeed": "0", "text": "'.$body_phone.'"}';
כאשר הכל זה הגדרות ו body_phone זה הטקסט בפועל , הנקודה היא שכשאני שם את זה ככה זה לא עובד ומחזיר לי קובץ ריק,
ואילו כשאני שם את המילים ממש, למשל "שלום עולם" הוא כן עובד.
גם אם אני מכריז על המשתנה שורה לפני הוא לא קורא אותו , רק כשאני שם טקסט אמיתי.
אני משתגע כבר מה זה יכול להיות.
ניסתי המון דרכים ושום דבר לא עבד.
מישהו יכול אולי לנסות לעזור?זה הקוד המלא (צונזרו הפרטים הרגישים)
$post_data = '{"voiceService": "servicebin", "voiceID": "he-IL", "voiceSpeed": "0", "text": "'.$body_phone.'"}'; $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://ttsfree.com/api/v1/tts", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => $post_data, CURLOPT_HTTPHEADER => array( "apikey: jfnjhfjlhsfucihlsidfv56542654894", "content-type: application/json" ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { // echo $response; $data = json_decode($response,true); $wave_mp3 = base64_decode($data['audioData']); #echo $wave_mp3; file_put_contents("data/$counter.mp3",$wave_mp3); }