C'est l'exemple texto de IBM. J'y rajoute juste --insecure parce que j'avais des bugs ssl ds l'exercice précédent (le speech to text).
Je récupère alors cette réponse:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 290 0 268 100 22 372 30 --:--:-- --:--:-- --:--:-- 403
et un fichier.wav dans mon dossier de destination. En revanche, ce fichier ne fait qu'1 ko. Et il contient le message d'erreur suivant:
Edit: Pour ceux qui galèrent pour la même erreur, il faut enlever les brackets et les quotations autour de username et password... donc pour un username abcd et un password efgh, il faut écrire:
Effectivement vous pouvez aussi faire la requête via Postman en faisant un import.
Dans Postman en haut à gauche vous avez le bouton Import, ensuite sélectionnez Paste Raw Text et collez votre requête cURL.
La requête est créée dans Postman cependant il faut vous authentifier dans ce cas en dessous de la ligne qui contient la méthode et l’URL vous avez l’onglet Authorization.
Dans Type sélectionnez Basic Auth et maintenant vous pouvez renseigner vos id et mdp dans le form de droite (vous pouvez voir aussi que l’onglet Headers un champ supplémentaire est renseigné).
Comment est il possible de créer un cours exclusivement réservé aux utilisateurs de MAC ? ce cours n'a aucune entrée pour l'utilisateur de Windows, c'est pas le premier [...] je me dis qu'un cours qui ne s'adresse pas à moi (utilisateur de windows), n'est donc pas fait pour moi.
Je trouve ça vraiment dommage. Ca ne remets absolument pas en cause la qualité de votre travail, j'ai suivi plusieurs de vos cours sans aucun problème.
PS :J’espère que c'est une chose qui ne va pas se généraliser mais malheureusement je crois que ça en prends le chemin.
Bien à vous.
Salutation.
Je pense qu'il y a un enseignement sous-jacent dans cette méthodologie. Qui consiste à ne se focaliser que sur le travail à effectuer et non pas sur la façon de mettre en œuvre l'exercice (DL cURL, 401 credential supplies, etc...).
C'est un peu comme si tu regardais un tuto pour démonter ton pot d'échappement, que je gars te dis "dévisse le collecteur avec une clé de 14" et que toi tu souhaites qu'il t’explique où trouver une clé de 14 et comment l'utiliser. Le problème avec l'informatique c'est que c'est ultra évolutif. Un cURL.exe ne sera pas le même en 1995 , en 2000 ou en 2018. Android Oréo arrive, et pleins de bugs avec certain samsung J sont a craindre, qui a la solution? Personne, il faut suivre l'info, te renseigner et trouver les solutions à tes problèmes, ceux qui correspondent au niveau de MAJ de ton terminal. Quand t'as besoin d'un logiciel pour lire des fichiers flac/ogg tu vas sur clubic et tu cherches? Au début t'as chercher un truc comme clubic et maintenant t'y vas directement pour trouver. Bah être développeur c'est pareil, t'as un souci: tu cherches, tu trouves et te fais "ton réseau" pour solutionner ton problème. Quand y a des conflit de MAJ avec windows et que tu démarres en mode sans echec, je suis sûr que te débrouilles de trouver la solution. Le travail en autonomie est extrêmement mis en exergue dans le métier de développeur dû aux methodes AGILE entre autre. Pour conclure, par ce que ça devient chiant: je pense qu'il faille que fasse la différence entre être laisser "dans la merde et démerde toi" et être mis en face de tes responsabilités de future dev de savoir maîtriser tes outils (ordi sous windows, personne n'est parfait ;p ) et donc de savoir ou chercher lorsque tu ne sais pas. Quand penses tu? Moi c'est mon point de vue et je me le partage. Allez, bonne continuation, bonne journée.
Même problème que ces monsieurs... des réponses? indices? Ca marche toujours? Je récupère une erreur de'authentification alors qu'avec exactement les même, ben ça marche pour reconize, et ça me renvoie le texte... Help please! =)
J'ai également essayé en MP3 et OGG mais sans succès
- Edité par KlaarKy 3 mai 2018 à 15:58:31
- Edité par Sébastien Camberou 6 juillet 2018 à 19:21:01
Est ce que vous êtes bien dans text to speech? Et non pas speech to text? Il y a plusieurs onglets dans Winston, c'est assez mal foutu et je sais que beaucoup se trompe d'onglets ou ne pense pas à en changer.
J'ai réalisé le mooc il y a un peu plus d'un mois et tout s'est bien déroulé. Le service est toujours fonctionnel.
Est-ce que quelqu'un peut nous mettre la commande du chapitre 4 qui marche réellement ?
J'ai obtenu 30 certificats sur openclassrooms, ce cours de 6 heures est vraiment décevant, une perte de temps énorme sans nous apporter une connaissance et une utilité conséquente.
Pour l'activité avec bluemix, lors de l'inscription le formulaire nous demande de saisir notre nom, adresse email, mot de passe, puis de nous rendre dans notre messagerie pour confirmer notre inscription via l'email qu'ils nous on envoyé. Une fois fais ils nous proposent de nous connecter en saisissant notre IBMid et notre mot de pass. j'ai tenté de saisir mon nom dans ce champ évidemment cela ne fonctionne pas. Quelqu'un pourrait m'indiquer ou je suis sensé trouver ce fameux ID pour réussir a me connecter et compléter l'exercice ?
Pour l'activité avec bluemix, lors de l'inscription le formulaire nous demande de saisir notre nom, adresse email, mot de passe, puis de nous rendre dans notre messagerie pour confirmer notre inscription via l'email qu'ils nous on envoyé.
L'IBM identifier c'est celui que tu as renseigné à l'inscription a savoir donc ton mail.
Pour l'activité avec le Text To Speech, auriez-vous une idée sur comment faire pour lire un texte contenant des caractères accentués avec la méthode POST (avec bien sûr la voix française) ?
En effet, avec la commande cURL suivante, le fichier audio généré fait 1ko, Si je ne mets pas d'accents je ne rencontre aucun soucis mais cela ne résout pas mon problème.
curl -X POST -u "apikey:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
--header "Content-Type: application/json"
--header "Accept: audio/wav"
--data "{\"text\":\"Je lis ce texte mais je n'arrive pas a envoyer en POST un texte comprenant des caractères accentués\"}"
--output Downloads\activite_oc.wav
"https://gateway-syd.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=fr-FR_ReneeVoice"
L'exemple officiel (ici) permet de constater que la lecture des caractères accentués, avec voix française, se fait correctement. Cependant, dans la console de Chrome, je constate que l'exemple présenté est fait via une méthode GET, le texte est donc passé dans l'URL de la request.
Bonjour, après avoir passé des heures de frustration sur le TD et ayant désespérément cherché des solutions à droite à gauche et finalement ici, j'ai fini par réussir ce TD (sisi).
Comme beaucoup d'entre vous, j'ai eu le soucis d'avoir un fichier audio qui ne pouvais pas être lu (avec cette erreur 401 quand je l'ouvrais dans un éditeur de texte).
Le problème venais de l'URL à la fin de la requête, il ne faut pas prendre celle qui est dans la documentation, mais celui qui vous a été donnée avec votre "apikey". Vous la trouverez dans votre tableau de bord.
J'espère que cela aidera certaines personnes. J'ai passé une journée entière a comprendre ce qui n'allait pas, et savoir si les erreurs venaient de windows mais en fait non. C'était plutôt la documentation officiel qui m'a induit en erreur en disant de remplacé seulement l'apikey comme indiqué dans les exemples avec le "hello world".
- Edité par VincentSignoret 8 décembre 2018 à 20:12:12
Bonjour, j'ai un soucis pour envoyer mon travail de la première activité de ce cours. Quand je valide l'envoi, je tombe à chaque fois sur une page où il est juste écrit ça : The file "" does not exist. Le problème vient du site ?
Après plusieurs essais, ça a fini par fonctionner ce soir.
- Edité par QuentinBogaert 21 décembre 2018 à 0:56:38
Chez moi, pas de soucis au niveau de cURL, installé de base et fonctionnel il me semble, je suis sous Windows 10 donc j'utilise cmd.exe.
Par contre, j'ai pu rencontrer la plus part des autres problèmes cités ci-dessus concernant la Première Partie (Activité 1) et j'aimerais faire le point, les aborder, et poser les bonnes questions pour ceux qui ont eu du mal car j'ai vraiment l'impression qu'aucune réel réponse n'à été apportée jusqu'à présent, cela au vu des nombreux Sujets qui on été créer la dessus :
(Ça risque donc d'être un peu long mais je préfère faire dans le détail avant d'apporter une quelconque réponse, libre à vous de tout lire ou non, cela peut peut-être aider, sinon j'en viens à l'essentiel à la fin)
1 - Concernant l'utilisation de Speech-to-Text via cUrl:
J'utilise donc mon apikey à la place de mes username:password, rien de bien méchant, mis cela à part mon audio est en mp3 et j'utilise le lien donné sur le tableau de bord de l'API d'IBM Cloud.
La dessus, ma console me renvois un objet, format JSON, qui intègre totalement l'audio et le retranscrit en écrit, donc priori c'est bon ->
{
"results": [
{
"alternatives": [
{
"confidence": 0.989,
"transcript": "the space shuttle enterprise was the first orbiter of the space shuttle system rolled out on September seventeenth nineteen seventy six it was built for NASA is part of the space shuttle program to perform atmospheric test flights after being launched from a modified Boeing seven forty seven "
}
],
"final": true
}
],
"result_index": 0
}
Très bien, on à une retranscription, un visuel mais.. (Et cela concerne directement la suite avec Text-To-Speech) à t-on moyen de récupérer la réponse ? Dans un fichier JSON par exemple ?
Ce n'est évidemment pas un cours sur l'invitée de commande ou encore sur cURL, j'entends bien, mais cela aurait pu peut-être intéressant à savoir, surtout que le cours commence d’emblée à nous faire utiliser l'invité de commande et cURl pour travailler, donc j'imagine que la suite en dépends (J'en suis à la première partie de ce cours) et que dans ce cas, il n'est peut-être pas préférable d'essayer de le faire avec Postman..
Et ce sont ces explications qui manque en Première Partie, y compris pour l'Activité 1.
J'ai donc pris mon mal en patience et ai checker la commande --help de cURL pour cela, et j'avoue ne rien avoir trouver de concluant, je m'imagine que la commande --output doit être faite pour ça, et là nous en venons directement au deuxième point.
2 - Concernant L'Activité Partie 1 et l'utilisation de Text-To-Speech via cURL:
Avec le texte suivant à la place de "Texte Exercice" :
"The IBM® Text to Speech service provides an Application Programming Interface (API) that uses IBM's speech-synthesis capabilities to convert text to an audio signal. The service provides a Representational State Transfer (REST) interface that lets you synthesize written text into natural-sounding speech in a variety of languages, accents, and voices. The service currently synthesizes text from English, French, German, Italian, Japanese, Spanish, or Brazilian Portuguese into audio spoken in a male or female voice (the service supports only a single gender for some languages)."
Dans un premier temps sur le principe du tutoriel de la documentation de l'API sur IBM Cloud : Apikey de cette API, --data au format JSON et URL de l'API issue du tableau de bord actuel, avec bien sûr la langue ajoutée pour les besoins de l'activité.
Et déja, là, quelque chose ne va pas ->
curl: (3) [globbing] unmatched close brace/bracket in column 12
{
"code_description": "Bad Request",
"code": 400,
"error": "No JSON object could be decoded"
}
À première vue, les brackets posent problèmes à la lecture de mon objet JSON, et c'est pourtant le schéma de l'exemple proposé dans la documentation de l'API elle même..
Soit, j'ai tout essayé : {} (normal pour un objet), [], "" seulement, '', bref tout.
J'ai donc essayer de modifier ma commande à l'aide de ce que j'ai pu lire ici, et j'ai eu un rendu égal à ça :
--data "{\"text\":\"Texte Exercice\"}"
En somme, c'est ce qu'a utilisé Vazaha_77 plus haut au final et qui passe plutôt inaperçu étant donné que ce n'était pas la nature de son problème, mais il y à tout de même deux choses à retenir de son message :
Vazaha_77 a écrit:
Bonjour,
Pour l'activité avec le Text To Speech, auriez-vous une idée sur comment faire pour lire un texte contenant des caractères accentués avec la méthode POST (avec bien sûr la voix française) ?
En effet, avec la commande cURL suivante, le fichier audio généré fait 1ko, Si je ne mets pas d'accents je ne rencontre aucun soucis mais cela ne résout pas mon problème.
curl -X POST -u "apikey:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
--header "Content-Type: application/json"
--header "Accept: audio/wav"
--data "{\"text\":\"Je lis ce texte mais je n'arrive pas a envoyer en POST un texte comprenant des caractères accentués\"}"
--output Downloads\activite_oc.wav
"https://gateway-syd.watsonplatform.net/text-to-speech/api/v1/synthesize?voice=fr-FR_ReneeVoice"
L'exemple officiel (ici) permet de constater que la lecture des caractères accentués, avec voix française, se fait correctement. Cependant, dans la console de Chrome, je constate que l'exemple présenté est fait via une méthode GET, le texte est donc passé dans l'URL de la request.
Merci !
Le problématique de cette première partie est là :
La syntaxe à utiliser (Les anti-slash pour les guillemets/double-guillemets) et surtout, surtout, les accents et les caractères spéciaux.
Anti-Slash :
Cela parait logique au final, notre objet entré dans la console est de type string, vu qu'il est entre guillemets, ce qui demande de signaler les guillemets à l’intérieur de celles-ci via les anti-slash :
--data "{\"text\":\"Hello world\"}"
Et ceci n'est ni représenter dans la documentation de l'API, ni dans le cours, et je veux bien croire que c'est intentionnel mais quelque peu déroutant quand même, surtout quand on nous demande de nous référer aux exemples et au documentations..
Caractères speciaux :
Voici mon premier essai non concluant du fichier.wav obtenu, ouvert sous Brackets :
{
"code_description": "Bad Request",
"code": 400,
"error": "'utf8' codec can't decode byte 0xae in position 7: invalid start byte"
}
Là, par contre c'est autre chose, et ce qui pose problème, c'est le texte que l'on nous demande de transcrire :
"The IBM® Text to Speech service provides an Application Programming Interface (API) that uses IBM's speech-synthesis capabilities to convert text to an audio signal. The service provides a Representational State Transfer (REST) interface that lets you synthesize written text into natural-sounding speech in a variety of languages, accents, and voices. The service currently synthesizes text from English, French, German, Italian, Japanese, Spanish, or Brazilian Portuguese into audio spoken in a male or female voice (the service supports only a single gender for some languages)."
Le symbole de marque déposé en rouge. Il ne peut simplement pas être transcrit avec le reste, et bloque l'upload.
D'ou les fichiers minuscules, illisibles ou corrompu.
Et ça, c'est liée à la consigne de Mlle Reese, et ça à fait perdre beaucoup de temps à tous, et c'est sûrement l'une des choses à corriger au plus vite dans ce cours, qui ne manque pas d'être intéressant, j'en suis sûr, mais à l'air d'en avoir déjà décourager plus d'un malheureusement.
Récupérer son fichier.wav /.ogg /.mp3 et également son fichier.json :
Là encore, rien n'est mentionné, comment le récupère t-on ? Quel est la syntaxe ?
Un exemple comme un autre, il sera télécharger dans mon dossier Téléchargement. Le fichier est à créer sans les parenthèses. Exemple : "C:\Users\XXXXXX\Téléchargements\ibm_api.wav".
Vous pouvez donc également récupérer votre fichier.json à l'aide de Speech-To-Text avec cette syntaxe, en mentionnant bien sûr le --header "Accept: application/json" adéquat.
J'espère avoir été clair, quoiqu'un peu long, mais j'ai passé beaucoup trop de temps sur cette partie, et je pense ne pas être le seul, pour des détails qui, eux, auraient pû avoir le mérite d'être clair.
curl: (3) [globbing] unmatched close brace/bracket in column 12
{
"code_description": "Bad Request",
"code": 400,
"error": "No JSON object could be decoded"
}
Solution:
la partie
--data '{"text": "hello world"}'
a changer en
--data "{\"text\":\"Hello world\"}"
comme expliqué par mon VDD!
Secondproblème, je fichier audio retourné est de 1Ko, pas de son!
Solution: on l'ouvre avec Notepad++ (ou autre) et on s'aperçoit qu'on a un message d'erreur!
Pour moi par exemple, ça a été d'utiliser des accentuations, j'ai palier a cela en les supprimant tout simplement, mon texte ressemble a du phonétique mais est compréhensible .
3ème problème, cette erreur:
"code": 401,
"error": "Not Authorized",
"description": "No credentials supplied."
Viens tout simplement de l'URL ou j'envoyais ma requête, qui n’étais pas celle de mon emplacement d'API (London)
Bonjour, j'apporte ma contribution sur cette activité.
Le problème des caractères accentués et des guillemets semble propre à l'environnement windows, des tests notamment sur mac ont été concluants sans même avoir à échapper les " !!!
Sur windows, je n'ai pas trouvé de solution si le texte est en français avec des caractères accentués.
Je suis actuellement sur ce cours et j'ai un gros soucie sur le Bluemix j'ai créée un compte mais l'interface proposée n'est pas la même que celle du cours, de plus je ne trouve pas Speech to text (du moins celui que je trouve n'a rien à voir avec celui du cours)
Pouvez vous m'aider s'il vous plait ou m'indiquer la marche à suivre ?
Je suis actuellement sur ce cours et j'ai un gros soucie sur le Bluemix j'ai créée un compte mais l'interface proposée n'est pas la même que celle du cours, de plus je ne trouve pas Speech to text (du moins celui que je trouve n'a rien à voir avec celui du cours)
Pouvez vous m'aider s'il vous plait ou m'indiquer la marche à suivre ?
Bonjour, je suis actuellement le cours et je suis au chapitre "pratiquez avec l'intelligence artificielle". J'utilise curl comme dans le cours via la commande : "https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true" -u 4c15db89-7bc1-4562-9b59-50e1d0900286:YQ-XXXXXXXXXXXX -X POST --header "Content-Type:audio/wav" --header "Transfer-Encoding:chunked" --data-binary @\Users\Geoff\Desktop\Enregistrement.wav
Cependant curl me renvoie une erreur :
curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Si quelqu'un sait comment résoudre ce problème, ça serait super sympa de me la communiquer merci !
Avant toutes choses, et à tous ceux qui lisent ceci, toutes les informations essentiels, comme la syntaxe, les méthodes à employer, sont sur chaque page d’initiation au service ou celle de référence de l'API en question, sur le site de BlueMix. Et si ça ne fonctionne pas, reportez-vous aux quelques messages ci-dessus, on y apporte quelques solutions, peut-être que la réponse que vous cherchez s'y trouve.
Bonjour, je suis actuellement le cours et je suis au chapitre "pratiquez avec l'intelligence artificielle". J'utilise curl comme dans le cours via la commande : "https://stream.watsonplatform.net/speech-to-text/api/v1/recognize?continuous=true" -u 4c15db89-7bc1-4562-9b59-50e1d0900286:YQ-XXXXXXXXXXXX -X POST --header "Content-Type:audio/wav" --header "Transfer-Encoding:chunked" --data-binary @\Users\Geoff\Desktop\Enregistrement.wav
[...]
@GeoffreyRemacle
Il me semble que tu n'utilise pas le bon URL pour l'API, que ce soit pour TextToSpeech ou SpeechToText, celle du cours est useless. Celle à laquelle il te faut l'envoyer est celle indiqué sur Bluemix, comme expliqué plus haut par @Aceman et moi, à savoir :
Il te manque aussi du coup tout le reste, la syntaxe et les éléments à préciser ne sont plus les mêmes, tout est sur le site de BlueMix, sur chaques page d'initiation de services :
J'ai après moulte essais obtenu un tableau vide sur ma console de commande
avec un message qui m'indique :
curl(35) schannel : next initializeSecurityContext failed : unknow error (xxxxxxx) : la fonction de révocation n'a pas pu vérifier la révocation du certificat
C'est un problème liée à ma requête ou chez l'Api ?
Le plus important c'est de savoir si la requête est correctement écrite avec les bonnes infos
Merci pour le cours. sur l'API Rest. Mais j’aimerais utiliser la fonction « include » dans le cas où le fichier appelant et le fichier appelé sont sur 2 serveurs différents ?
Par exemple : Le fichier test.php (hébergé sur le serveur #1), renferme le code suivant : <?php include("https://www.monsite.com/distant.php"); ?>
Et le fichier "distant.php" est hébergé sur le serveur #2
Peut-être que l’API Rest serait une alternative. Mais si je pouvais trouver les directives et codes spécifiques, cela me permettrait d’aller plus vite.
Je suis sur le premier TP celui de text to speech et je bute dessus depuis 2 jours.
Après avoir résolu la plus par de mes bugs il m'en reste un récurant que je n'arrive pas à endiguer, ma commande est la suivante:
curl: (6) Could not resolve host: gateway-lon.watsonplatform.net
J'ai installé curl avec le certificat SSL sans souci et j'ai épluché les forums pour trouver la solution (angalis et français dont celui d'openclassroom). A noté tout de même que je suis sur mon PC de travail sous Windows 10 et que la sécurité sur ce poste est très envahissante.
Je suis au stade du call POST dans Postman, et je n'ai pas la même erreur que trouve la professeure : une erreur 403 Forbidden au lieu de 400 Bad Request ... Voir image en pièce-jointe.
Cours "Utilisez des API REST dans vos projets web"
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Architecte logiciel - Software craftsmanship convaincu.
Emeric Hochart
Emeric Hochart
Un jour j'irai vivre en Théorie , car en Théorie tout se passe bien.
Ars longa, vita brevis