Un problème avec ctypes

Soirée de m***e !

Le problème exposé dans ce sujet a été résolu.

Bon. ('soir à tous !)

Ça fait maintenant quelques heures que j'essaye de faire du TTS en Python, parce que j'ai que ça à fiche de ma soirée ; j'ai commencé par tenter de porter une lib Python2 vers Python3, armé du script de circonstance et de beaucoup de bonne volonté, pour un échec complet (pour l'instant !… Je n'abandonne pas). Et puis j'ai découvert qu'eSpeak proposait une DLL réutilisable. J'ai donc dû, pour la première fois de ma vie, utiliser ctypes. Or :

1
2
3
4
5
6
7
8
>>> lib = cdll.LoadLibrary("C:\\Program Files (x86)\\eSpeak\\espeak_sapi.dll")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python34\lib\ctypes\__init__.py", line 429, in LoadLibrary
    return self._dlltype(name)
  File "C:\Python34\lib\ctypes\__init__.py", line 351, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 n\u2019est pas une application Win32 valide

Je suppose que ça veut dire que ma DLL est x64 et donc pas compatible ?… Si c'est bien ça, y'a pas moyen de charger et d'utiliser une DLL x64 en Python ? Ou est-ce que ça peut être autre chose ?

Merci pour votre aide ! :)

Edit : et oui, bravo, je cherchais à charger une DLL 32bits avec un Python 64bits. 'Marche mieux maintenant, andouille que je suis ! ^^

+0 -0

Pour ceux que ça pourrait un jour intéresser, après des heures de recherches j'en suis arrivé à la conclusion qu'il n'y a pas de moyen simple de faire du TTS avec Python 3.x… En 2.x, speech (installable avec pip) et steeltts (trouvable sur le net facilement) offrent de bons résultats ; pyttsx pose des problèmes que je n'ai toujours pas réussi à résoudre.

;)

+0 -0

Tiens, je l'avais pas trouvé celui-là, je vais le tester… Mais j'en avais trouvé d'autres qui ne marchaient pas.

Edit : en fait c'est juste la page SF d'eSpeak que tu as linkée. :D Comme binding d'eSpeak, j'ai trouvé que ça et… ça marche pas. En tout cas chez moi, l'installation ne fonctionne pas, il refuse de se build.

+0 -0

Justement non, pyttsx n'est pas portable (ou du moins j'ai pas réussi à l'utiliser sous Windows, ce qui me semble logique puisqu'il se base sur le .so de la version Linux d'eSpeak, alors que sous Windows on a un .dll). Mais le problème est résolu, j'utilise SteelTTS qui est portable, et qui fonctionne sous Python 3.2. :)

+0 -0

S'il était pas portable je te l'aurais pas proposé :)

ce qui me semble logique puisqu'il se base sur le .so de la version Linux d'eSpeak

Pas seulement, fait l'effort de lire la page principale au moins ;)

Mais le problème est résolu, j'utilise SteelTTS qui est portable, et qui fonctionne sous Python 3.2

Ok, donc tout va bien, bonne continuation…

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte