בעיה בשימוש עם text to speech בשפת PHP
-
-
-
-
@ששא
אני משתמש עם זה כך:tts("/wav/www/html/, "text", "filename"); function tts($dir, $text, $filename){ // API key for the Google Cloud project $apiKey = 'AIzaSyBOJXXXXXXXXXXXXXXXX'; // URL of the Google TTS API $url = 'https://texttospeech.googleapis.com/v1/text:synthesize?key=' . $apiKey; $language = 'he-IL'; // Request payload $payload = json_encode([ 'input' => [ 'text' => $text ], 'voice' => [ 'languageCode' => $language, 'ssmlGender' => 'MALE', 'name' => 'he-IL-Standard-D' ], 'audioConfig' => [ //wav = LINEAR16 //mp3 = MP3 //ogg = OGG_OPUS //u-law = MULAW //A-law = ALAW 'audioEncoding' => 'MP3', ] ]); // Set up CURL $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $payload, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Content-Length: ' . strlen($payload) ] ]); // Send the request and get the response $response = curl_exec($curl); // Check for CURL errors if (curl_errno($curl)) { $error = curl_error($curl); curl_close($curl); die('CURL Error: ' . $error); } // Check the response code $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($httpCode != 200) { curl_close($curl); die('HTTP Error: ' . $httpCode); } // Close CURL curl_close($curl); // Decode the response JSON $data = json_decode($response, true); // Get the audio content $audioContent = $data['audioContent']; $fp = fopen($dir.$filename.'.mp3', 'w'); fwrite($fp, base64_decode($audioContent)); fclose($fp); }
עובד לי תקין.
לא הצלחתי לשחק עם עוצמת הקול וכדו'.
אם אתה מצליח, תעדכן. -
@איש-ימיני לא חסר לי הקוד, יש לי בעיה בכלל בעבודה
אני מקבלFatal error: Uncaught Google\ApiCore\ApiException: { "reason": "SERVICE_DISABLED", "domain": "googleapis.com", "errorInfoMetadata": { "service": "texttospeech.googleapis.com", "consumer": "projects\/*****" }, "message": "Cloud Text-to-Speech API has not been used in project **** before or it is disabled. Enable it by visiting https:\/\/console.developers.google.com\/apis\/api\/texttospeech.googleapis.com\/overview?project=***** then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.", "code": 7, "status": "PERMISSION_DENIED", "details": [ { "@type": "type.googleapis.com\/google.rpc.Help", "links": [ { "description": "Google developers console API activation", "url": "https:\/\/console.developers.google.com\/apis\/api\/texttospeech.googleapis.com\/overview?project=*****" } ] }, { "@type": "type.googleapis.com\/google.rpc.ErrorInfo", "reason": "SERVICE_DISABLED", "domain": "googleapis.com", "metadata": { "service": "texttospeech.googleapis.com", "consumer": "projects\/*****" } } ] } in /var/**/***/vendor/google/gax/src/ApiException.php:267 Stack trace: #0 /var/**/***/vendor/google/gax/src/ApiException.php(193): Google\ApiCore\ApiException::create() #1 /var/**/***/vendor/google/gax/src/ApiException.php(315): Google\ApiCore\ApiException::createFromRestApiResponse() #2 /var/**/***/vendor/google/gax/src/Transport/RestTransport.php(165): Google\ApiCore\ApiException::createFromRequestException() #3 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(209): Google\ApiCore\Transport\RestTransport->Google\ApiCore\Transport\{closure}() #4 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(158): GuzzleHttp\Promise\Promise::callHandler() #5 /var/**/***/vendor/guzzlehttp/promises/src/TaskQueue.php(52): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #6 /var/**/***/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(163): GuzzleHttp\Promise\TaskQueue->run() #7 /var/**/***/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(189): GuzzleHttp\Handler\CurlMultiHandler->tick() #8 /var/**/****/vendor/guzzlehttp/promises/src/Promise.php(251): GuzzleHttp\Handler\CurlMultiHandler->execute() #9 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(227): GuzzleHttp\Promise\Promise->invokeWaitFn() #10 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(272): GuzzleHttp\Promise\Promise->waitIfPending() #11 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(229): GuzzleHttp\Promise\Promise->invokeWaitList() #12 /var/**/***/vendor/guzzlehttp/promises/src/Promise.php(69): GuzzleHttp\Promise\Promise->waitIfPending() #13 /var/**/***/vendor/google/cloud-text-to-speech/src/V1/Gapic/TextToSpeechGapicClient.php(366): GuzzleHttp\Promise\Promise->wait() #14 /var/**/***/toSpeech.php(36): Google\Cloud\TextToSpeech\V1\Gapic\TextToSpeechGapicClient->synthesizeSpeech() #15 {main} thrown in /var/**/***/vendor/google/gax/src/ApiException.php on line 267
כשאני פותח את הקובץ שעליו מופיע השגיאה אני מקבל שגיאה על השורה הבאה
public function __toString() { return __CLASS__ . ": $this->message\n"; }
תוכן השגיאה
Declaration of ApiException::__toString() must be compatible with Exception::__toString():מה זה?
-
@yossiz הבנתי את זה, אבל אני הפעלתי את זה כמה פעמים, עד שתפסתי שהפעלתי בפרוייקט אחר שלא קשור לזה.....
@yossiz כתב בבעיה בשימוש עם text to speech בשפת PHP:
תוכל להבין את התסכול של דוד
הוא התכווין לזה שלא כתבתי את נוסח השגיאה? כי הוא לא כתב מה לא מצא חן בעיניו
-
@ששא כתב בבעיה בשימוש עם text to speech בשפת PHP:
עד שתפסתי שהפעלתי בפרוייקט אחר שלא קשור לזה.....
אז למעשה פתרת את הבעיה?
לא כתבתי את נוסח השגיאה
לא הבאת שום פרטים. במקרה הזה היה צריך לפחות להביא את נוסח השגיאה, בד"כ צריך גם להביא את הקוד, (פה במקרה הקוד לא רלוונטי).
עד כמה שידוע לנו אין בפורום בעלי רוח הקודש. תהליך פתירת בעיות דורש עיון בכל פיסת מידע שרלוונטי לבעיה, בלי זה זה רק משחק ניחושים.
האם היית מתקשר לרופא ואומר "רופא רופא, משהו לא בסדר" ומצפה לפתרון בלי למסור שום מידע נוסף מעבר לזה? -
@yossiz כתב בבעיה בשימוש עם text to speech בשפת PHP:
אז למעשה פתרת את הבעיה?
כן
@yossiz כתב בבעיה בשימוש עם text to speech בשפת PHP:
לא הבאת שום פרטים. במקרה הזה היה צריך לפחות להביא את נוסח השגיאה, בד"כ צריך גם להביא את הקוד, (פה במקרה הקוד לא רלוונטי).
צודק
מתנצל!