comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Haciendo hablar a php :P

  • 4 Respuestas
  • 2065 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« en: Noviembre 11, 2013, 03:20:24 pm »
El objetivo de este código es hacer "hablar a la computadora un texto", y que se escuche con un sintetizador.

Hoy estaba haciendo unas pruebas con Component Object Model Class de php, que te permite instanciar un ActiveX como lo podría llegar a hacer por ejemplo Visual Basic Script, para probar su correcto funcionamiento decidí probar algo más que el ejemplo de la documentación de php que manipula word.

Primero que nada para habilitar PHP COM, deben escribir al final del php.ini las siguientes dos lineas:

Código: No tienes permisos para ver links. Registrate o Entra con tu cuenta
[COM_DOT_NET]
extension=php_com_dotnet.dll

luego para probarlo usé el componente de microsoft speech (SpeechAPI o más conocido como SAPI).-

No tienes permisos para ver links. Registrate o Entra con tu cuenta

y ahora el código php para php_cli (command line interface, o para php ejecutado desde terminal o cmd)

Código: PHP
  1. <?php
  2.  
  3. interface iComponentLoader
  4. {
  5.     static public function get_instance($component, $id);
  6.     static public function get_old_instance($component);
  7. }
  8.  
  9. class ComponentLoader implements iComponentLoader
  10. {
  11.     static public $instances = No tienes permisos para ver links. Registrate o Entra con tu cuenta();  
  12.     static public $error = false;
  13.     static public $emessage = null;
  14.    
  15.     static public function get_instance($component, $id)
  16.     {
  17.       self::$instances[$component] = new COM($component.'.'.$id);
  18.       if(!self::$instances[$component])
  19.       {
  20.         self::$error = true;
  21.         self::$emessage = 'Unable to instantiate Component '.$component;
  22.         return false;
  23.       } else { return self::$instances[$component]; }
  24.     }
  25.    
  26.     static public function get_old_instance($component)
  27.     {
  28.       return self::$instances[$component];
  29.     }
  30.  
  31. }
  32.  
  33. try
  34. {
  35.     // starting SAPI
  36.     $speech = ComponentLoader::get_instance('sapi', 'SpVoice');
  37.     if(!$speech) throw new exception(ComponentLoader::$emessage);
  38.    
  39.     $speech->volume = 100;
  40.     $speech->speak('hello my name is p.h.p. speaker');
  41.    
  42.     //free the object
  43.     No tienes permisos para ver links. Registrate o Entra con tu cuenta($speech);
  44. } catch(Exception $e) {
  45.     echo $e->getMessage();
  46. }
  47.  

bueno espero que les parezca interesante escuchar hablar a php.

saludos!
« Última modificación: Noviembre 11, 2013, 03:40:08 pm por Harkonnen »

Desconectado s3cur1tyr00t

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #1 en: Noviembre 11, 2013, 05:23:39 pm »
Tiene una voz un poco maricona :P

Desconectado variux

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Noviembre 11, 2013, 06:25:17 pm »
Interesante, aquí es donde se nota la potencia que tiene PCM

Desconectado Cronos

  • *
  • Underc0der
  • Mensajes: 1000
  • Actividad:
    0%
  • Reputación 1
  • Mientras mas se, me doy cuenta de lo poco que se.
    • Ver Perfil
    • Email
  • Skype: cronos.labs
« Respuesta #3 en: Noviembre 12, 2013, 09:20:31 am »
Buenisimo! Esto me viene de pelo para un proyecto que tenia en mente :)
Saludos,, Cronos.-

Desconectado alexander1712

  • *
  • Underc0der
  • Mensajes: 850
  • Actividad:
    0%
  • Reputación -2
    • Ver Perfil
    • El blog del programador
    • Email
« Respuesta #4 en: Noviembre 12, 2013, 05:52:17 pm »
No tienes permisos para ver links. Registrate o Entra con tu cuenta
Tiene una voz un poco maricona :P

jajaja se puede cambiar llamando a la función de la librería para selección de voz, el problema es que lo tiene que tener instalado quien use el script.


Citar
Interesante, aquí es donde se nota la potencia que tiene PCM

nono, pcm está horientado a hacer componentes en php, en cambio éste código hace uso de componentes hechos, usando el control nativo de php, y puedo entonces usar una dll.

saludos!

 

¿Te gustó el post? COMPARTILO!



Haciendo hablar entre si dos clases en php con un bloque de ejecución diferida

Iniciado por alexander1712

Respuestas: 2
Vistas: 1627
Último mensaje Diciembre 03, 2013, 11:41:36 am
por alexander1712