{"id":3640,"date":"2020-09-25T16:52:31","date_gmt":"2020-09-25T14:52:31","guid":{"rendered":"https:\/\/www.mathweb.fr\/euclide\/?p=3640"},"modified":"2021-10-26T16:23:08","modified_gmt":"2021-10-26T14:23:08","slug":"reconnaissance-vocale-google-windows","status":"publish","type":"post","link":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/","title":{"rendered":"Reconnaissance vocale Google Windows avec Python"},"content":{"rendered":"\n<p>La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j&#8217;ai test\u00e9 Cortana: ce truc, c&#8217;est vraiment tout pourri&#8230; En effet, d&#8217;abord, on est redirig\u00e9 sur le navigateur Microsoft (\u00e7a, d\u00e9j\u00e0, \u00e7a le fait moyen) et en plus, sous Bing (donc les r\u00e9sultats sont pas terribles).<\/p>\n\n\n\n<p>J&#8217;ai donc souhait\u00e9 \u00e9crire un programme Python me permettant d&#8217;effectuer des recherches par reconnaissance vocale en utilisant le moteur de recherche Google.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"626\" height=\"444\" src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale-google-windows.jpg\" alt=\"reconnaissance vocale Google Windows Python\" class=\"wp-image-3641\" srcset=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale-google-windows.jpg 626w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale-google-windows-300x213.jpg 300w, https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale-google-windows-600x426.jpg 600w\" sizes=\"auto, (max-width: 626px) 100vw, 626px\" \/><\/figure><\/div>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Au menu sur cette page...<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#Reconnaissance_vocale_Google_sous_Windows_en_Python_premices\" >Reconnaissance vocale Google sous Windows en Python: pr\u00e9mices<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#Reconnaissance_vocale_Google_sous_Windows_en_Python_lobjet\" >Reconnaissance vocale Google sous Windows en Python: l&#8217;objet<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#Le_constructeur\" >Le constructeur<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#La_methode_main\" >La m\u00e9thode main()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#La_methode_search\" >La m\u00e9thode search()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#La_methode_not_recognize\" >La m\u00e9thode not_recognize()<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#La_methode_parametres\" >La m\u00e9thode parametres()<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#Reconnaissance_vocale_Google_sous_Windows_en_Python_le_resultat\" >Reconnaissance vocale Google sous Windows en Python: le r\u00e9sultat<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#Script_complet\" >Script complet<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Reconnaissance_vocale_Google_sous_Windows_en_Python_premices\"><\/span>Reconnaissance vocale Google sous Windows en Python: pr\u00e9mices<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Avant tout projet, aussi petit soit-il, il est important de fixer les id\u00e9es sur ce que l&#8217;on veut: c&#8217;est le <em>cahier des charges<\/em>. <\/p>\n\n\n\n<p>Ce que j&#8217;aimerais, c&#8217;est:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>un objet (on va donc se diriger vers la <a href=\"https:\/\/fr.wikipedia.org\/wiki\/Programmation_orient%C3%A9e_objet\" target=\"_blank\" rel=\"noreferrer noopener\">POO<\/a>);<\/li><li>une simple fen\u00eatre contenant une image de micro;<\/li><li>quand on clique sur le micro, la reconnaissance vocale est d\u00e9clench\u00e9e;<\/li><li>une fois la phrase termin\u00e9e, la page de recherche Google s&#8217;affiche dans mon navigateur pr\u00e9f\u00e9r\u00e9;<\/li><li>accessoirement, j&#8217;aimerais r\u00e9gler la langue.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Reconnaissance_vocale_Google_sous_Windows_en_Python_lobjet\"><\/span>Reconnaissance vocale Google sous Windows en Python: l&#8217;objet<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>L&#8217;objet va \u00eatre d\u00e9fini par une classe, que je vais appeler <em>VocalSearch<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Le_constructeur\"><\/span>Le constructeur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Le constructeur doit d\u00e9finir avant tout la fen\u00eatre. Je vais utiliser <em>tkinter<\/em> pour ce qui est de la solution graphique. De toutes fa\u00e7ons, je ne ma\u00eetrise rien d&#8217;autre donc je n&#8217;ai pas le choix !<\/p>\n\n\n\n<p>Ma classe d\u00e9bute donc par:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class VocalSearch:\n    def __init__(self, window):\n        self.window = window\n        self.window.geometry('145x135')\n        self.window.iconbitmap(\"micro.ico\")\n        self.window.resizable(0,0)\n        with open('lang.txt') as f:\n            for line in f:\n                self.lang= line\n        self.main()\n\nroot = Tk()\napp = VocalSearch(root)\nroot.mainloop()<\/pre>\n\n\n\n<p>Bien entendu, cela n\u00e9cessite d&#8217;avoir d\u00e9fini un ic\u00f4ne.<\/p>\n\n\n\n<p>J&#8217;ai ici choisi de ne pas rendre redimensionnable la fen\u00eatre.<\/p>\n\n\n\n<p>J&#8217;anticipe et charge la langue par d\u00e9faut: elle est enregistr\u00e9e dans le fichier <em>lang.txt<\/em> comme \u00e9tant &#8220;fr-FR&#8221;. Ainsi, \u00e0 ce stade, la variable <em>self.lang<\/em> vaut &#8220;fr-FR&#8221;.<\/p>\n\n\n\n<p>Ensuite, j&#8217;appelle la m\u00e9thode <em>main()<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_methode_main\"><\/span>La m\u00e9thode main()<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Le contenu de cette m\u00e9thode pourrait tr\u00e8s bien \u00eatre dans le constructeur, mais j&#8217;ai une id\u00e9e en t\u00eate&#8230; J&#8217;aimerais que l&#8217;image de fond change quand on clique dessus le micro. Et j&#8217;aimerais aussi qu&#8217;elle redevienne un micro quand la reconnaissance vocale s&#8217;arr\u00eate. Par cons\u00e9quent, j&#8217;ai d\u00e9cid\u00e9 de mettre les commandes d&#8217;affichage des images dans une m\u00e9thode \u00e0 part du constructeur.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def main(self):\n        self.back = PhotoImage(file = 'micro.png')\n        self.background = self.back.subsample(1, '1')\n        self.info = ttk.Button(self.window, image=self.background , compound = LEFT, width=1 , command=self.search)\n        self.info.image = self.background\n        self.info.place(x=0,y=0)\n        infoBulle(parent = self.info , texte=\"Click here &amp; speak\")\n        #\n        self.backParam = PhotoImage(file = 'param.png')\n        self.backgroundParam = self.backParam.subsample(1, '1')\n        self.infoParam = ttk.Button(self.window, image=self.backgroundParam , compound = LEFT, width=1 , command=self.parametres)\n        self.infoParam.image = self.backgroundParam\n        self.infoParam.place(x=0,y=0)\n        infoBulle(parent = self.infoParam , texte=\"Param\u00e8tres\")<\/pre>\n\n\n\n<p>L&#8217;image que j&#8217;affiche en fond est nomm\u00e9e &#8220;micro.png&#8221;. C&#8217;est un carr\u00e9 de c\u00f4t\u00e9 128px.<\/p>\n\n\n\n<p>J&#8217;ai aussi d\u00e9cid\u00e9 d&#8217;afficher une info-bulle, qui est un objet \u00e0 part, et donc d\u00e9finie par une autre classe. \u00c7a, c&#8217;est pour le fun&#8230; <\/p>\n\n\n\n<p>J&#8217;affiche aussi une petite ic\u00f4ne en haut \u00e0 gauche pour les param\u00e8tres (si on souhaite les changer). Lors du clic sur cette ic\u00f4ne, une autre m\u00e9thode est appel\u00e9e (nomm\u00e9e <em>parametres<\/em>) qui ouvrira une autre fen\u00eatre.<\/p>\n\n\n\n<p>Donc l\u00e0, rien de grandiose&#8230;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_methode_search\"><\/span>La m\u00e9thode search()<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>C&#8217;est ma m\u00e9thode la plus importante bien s\u00fbr.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def search(self):\n        self.back = PhotoImage(file = 'speak.png')\n        self.background = self.back.subsample(1, '1')\n        self.info = ttk.Button(self.window, image=self.background , compound = LEFT, width=1)\n        self.info.image = self.background\n        self.info.place(x=0,y=0)\n        infoBulle(parent = self.info , texte=\"wait 1 second and speak\")\n        self.recognizer = Recognizer()\n        with Microphone() as source:\n            self.audio = self.recognizer.listen(source)\n        try:\n            self.text = self.recognizer.recognize_google(self.audio , language = self.lang)\n            self.link = \"https:\/\/www.google.com\/search?q=\"+self.text.replace(' ','+')\n            open_new(self.link)\n            self.main()\n        except Exception as ex:\n            self.not_recognize()<\/pre>\n\n\n\n<p>Ici, je change l&#8217;image de fond (pour une image nomm\u00e9e <em>speak.png<\/em>).<\/p>\n\n\n\n<p>Beaucoup de lignes pour pas grand chose car au final, j&#8217;utilise le module <em>speech_recognition<\/em> (voir <a href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/22\/reconnaissance-voix-python\/\" target=\"_blank\" rel=\"noreferrer noopener\">cet article<\/a> pour plus de d\u00e9tails) avec Recognizer() et Microphone().<\/p>\n\n\n\n<p>Ensuite, je convertis en texte les mots prononc\u00e9s et j&#8217;appelle la page de recherche Google avec la requ\u00eate ainsi form\u00e9e, tout \u00e7a dans mon navigateur pr\u00e9f\u00e9r\u00e9 gr\u00e2ce au module <em>webbrowser<\/em> et sa fonction <em>open_new<\/em>.<\/p>\n\n\n\n<p>Tout de suite apr\u00e8s, j&#8217;appelle la m\u00e9thode <em>main()<\/em> pour afficher le micro en fond et revenir donc au point de d\u00e9part.<\/p>\n\n\n\n<p>Notez ici le cas de l&#8217;exception : quand ce qui est dit n&#8217;est pas compr\u00e9hensible, j&#8217;appelle la m\u00e9thode <em>not_recognize()<\/em>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_methode_not_recognize\"><\/span>La m\u00e9thode not_recognize()<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def not_recognize(self):\n        self.back = PhotoImage(file = 'interrogation.png')\n        self.background = self.back.subsample(1, '1')\n        self.info = ttk.Button(self.window, image=self.background , compound = LEFT, width=1 , command=self.search)\n        self.info.image = self.background\n        self.info.place(x=0,y=0)\n        infoBulle(parent = self.info , texte=\"I don't understand...\")\n        self.window.after(2000,self.search)<\/pre>\n\n\n\n<p>Cette m\u00e9thode affiche juste un point d&#8217;interrogation (au format image) pendant 2 secondes pour signifier que la reconnaissance vocale Google a \u00e9chou\u00e9. Ensuite, la m\u00e9thode <em>search<\/em>() est appel\u00e9e.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"La_methode_parametres\"><\/span>La m\u00e9thode parametres()<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\" data-enlighter-theme=\"dracula\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"false\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">def parametres(self):\n        appParam = Parametres()<\/pre>\n\n\n\n<p>Ici, j&#8217;ai d\u00e9cid\u00e9 que la fen\u00eatre qui allait s&#8217;ouvrir pour modifier les param\u00e8tres de langue \u00e9tait un autre objet. J&#8217;ai donc d\u00e9fini cet objet dans une autre classe nomm\u00e9e <em>Parametres<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Reconnaissance_vocale_Google_sous_Windows_en_Python_le_resultat\"><\/span>Reconnaissance vocale Google sous Windows en Python: le r\u00e9sultat<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"900\" style=\"aspect-ratio: 1600 \/ 900;\" width=\"1600\" controls src=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/GSV.mp4\"><\/video><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Script_complet\"><\/span>Script complet<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-file aligncenter um_article\"><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/Google-Vocal-Search.zip\">Google Vocal Search<\/a><a href=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/Google-Vocal-Search.zip\" class=\"wp-block-file__button\" download>T\u00e9l\u00e9charger<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j&#8217;ai test\u00e9 Cortana: ce truc, c&#8217;est vraiment tout pourri&#8230; En effet, d&#8217;abord, on est redirig\u00e9 sur le navigateur Microsoft (\u00e7a, d\u00e9j\u00e0, \u00e7a le fait moyen) et en plus, sous Bing (donc les r\u00e9sultats [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3714,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[238,207],"class_list":["post-3640","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-google","tag-tkinter"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Reconnaissance vocale Google Windows avec Python - Mathweb.fr<\/title>\n<meta name=\"description\" content=\"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j&#039;ai test\u00e9 Cortana...\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Reconnaissance vocale Google Windows avec Python - Mathweb.fr\" \/>\n<meta property=\"og:description\" content=\"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j&#039;ai test\u00e9 Cortana...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/\" \/>\n<meta property=\"og:site_name\" content=\"Mathweb.fr\" \/>\n<meta property=\"article:published_time\" content=\"2020-09-25T14:52:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-10-26T14:23:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"740\" \/>\n\t<meta property=\"og:image:height\" content=\"198\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"St\u00e9phane Pasquet\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"St\u00e9phane Pasquet\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/\"},\"author\":{\"name\":\"St\u00e9phane Pasquet\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"headline\":\"Reconnaissance vocale Google Windows avec Python\",\"datePublished\":\"2020-09-25T14:52:31+00:00\",\"dateModified\":\"2021-10-26T14:23:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/\"},\"wordCount\":737,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/reconnaissance-vocale.jpg\",\"keywords\":[\"Google\",\"tkinter\"],\"articleSection\":[\"Python\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/\",\"name\":\"Reconnaissance vocale Google Windows avec Python - Mathweb.fr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/reconnaissance-vocale.jpg\",\"datePublished\":\"2020-09-25T14:52:31+00:00\",\"dateModified\":\"2021-10-26T14:23:08+00:00\",\"description\":\"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j'ai test\u00e9 Cortana...\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/reconnaissance-vocale.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/reconnaissance-vocale.jpg\",\"width\":740,\"height\":198,\"caption\":\"reconnaissance vocale Google Windows Python\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/2020\\\/09\\\/25\\\/reconnaissance-vocale-google-windows\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Reconnaissance vocale Google Windows avec Python\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#website\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/\",\"name\":\"Mathweb.fr\",\"description\":\"Math\u00e9matiques, LaTeX et Python\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/#\\\/schema\\\/person\\\/e4d3bb07968238378f0d5052a70dcd69\",\"name\":\"St\u00e9phane Pasquet\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"url\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"contentUrl\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\",\"width\":74,\"height\":77,\"caption\":\"St\u00e9phane Pasquet\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.mathweb.fr\\\/euclide\\\/wp-content\\\/uploads\\\/2025\\\/06\\\/cropped-logo-mathweb.webp\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Reconnaissance vocale Google Windows avec Python - Mathweb.fr","description":"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j'ai test\u00e9 Cortana...","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/","og_locale":"fr_FR","og_type":"article","og_title":"Reconnaissance vocale Google Windows avec Python - Mathweb.fr","og_description":"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j'ai test\u00e9 Cortana...","og_url":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/","og_site_name":"Mathweb.fr","article_published_time":"2020-09-25T14:52:31+00:00","article_modified_time":"2021-10-26T14:23:08+00:00","og_image":[{"width":740,"height":198,"url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg","type":"image\/jpeg"}],"author":"St\u00e9phane Pasquet","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"St\u00e9phane Pasquet","Dur\u00e9e de lecture estim\u00e9e":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#article","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/"},"author":{"name":"St\u00e9phane Pasquet","@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"headline":"Reconnaissance vocale Google Windows avec Python","datePublished":"2020-09-25T14:52:31+00:00","dateModified":"2021-10-26T14:23:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/"},"wordCount":737,"commentCount":0,"publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg","keywords":["Google","tkinter"],"articleSection":["Python"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/","url":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/","name":"Reconnaissance vocale Google Windows avec Python - Mathweb.fr","isPartOf":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#primaryimage"},"image":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#primaryimage"},"thumbnailUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg","datePublished":"2020-09-25T14:52:31+00:00","dateModified":"2021-10-26T14:23:08+00:00","description":"La reconnaissance vocale Google sous Windows avec Python est apparue comme une n\u00e9cessit\u00e9 \u00e0 mes yeux quand j'ai test\u00e9 Cortana...","breadcrumb":{"@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#primaryimage","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2020\/09\/reconnaissance-vocale.jpg","width":740,"height":198,"caption":"reconnaissance vocale Google Windows Python"},{"@type":"BreadcrumbList","@id":"https:\/\/www.mathweb.fr\/euclide\/2020\/09\/25\/reconnaissance-vocale-google-windows\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.mathweb.fr\/euclide\/"},{"@type":"ListItem","position":2,"name":"Reconnaissance vocale Google Windows avec Python"}]},{"@type":"WebSite","@id":"https:\/\/www.mathweb.fr\/euclide\/#website","url":"https:\/\/www.mathweb.fr\/euclide\/","name":"Mathweb.fr","description":"Math\u00e9matiques, LaTeX et Python","publisher":{"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mathweb.fr\/euclide\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.mathweb.fr\/euclide\/#\/schema\/person\/e4d3bb07968238378f0d5052a70dcd69","name":"St\u00e9phane Pasquet","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","url":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","contentUrl":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp","width":74,"height":77,"caption":"St\u00e9phane Pasquet"},"logo":{"@id":"https:\/\/www.mathweb.fr\/euclide\/wp-content\/uploads\/2025\/06\/cropped-logo-mathweb.webp"}}]}},"_links":{"self":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/3640","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/comments?post=3640"}],"version-history":[{"count":0,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/posts\/3640\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media\/3714"}],"wp:attachment":[{"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/media?parent=3640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/categories?post=3640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mathweb.fr\/euclide\/wp-json\/wp\/v2\/tags?post=3640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}