Haciendo hablar a php :P

Iniciado por alexander1712, Noviembre 11, 2013, 03:20:24 PM

Tema anterior - Siguiente tema

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

Noviembre 11, 2013, 03:20:24 PM Ultima modificación: Noviembre 11, 2013, 03:40:08 PM por Harkonnen
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: php

[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 permitido ver los links. Registrarse o Entrar a mi cuenta

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

Código: php

<?php

interface iComponentLoader
{
    static public function get_instance($component, $id);
    static public function get_old_instance($component);
}

class ComponentLoader implements iComponentLoader
{
    static public $instances = array(); 
    static public $error = false;
    static public $emessage = null;
   
    static public function get_instance($component, $id)
    {
      self::$instances[$component] = new COM($component.'.'.$id);
      if(!self::$instances[$component])
      {
        self::$error = true;
        self::$emessage = 'Unable to instantiate Component '.$component;
        return false;
      } else { return self::$instances[$component]; }
    }
   
    static public function get_old_instance($component)
    {
      return self::$instances[$component];
    }

}

try
{
    // starting SAPI
    $speech = ComponentLoader::get_instance('sapi', 'SpVoice');
    if(!$speech) throw new exception(ComponentLoader::$emessage);
   
    $speech->volume = 100;
    $speech->speak('hello my name is p.h.p. speaker');
   
    //free the object
    unset($speech);
} catch(Exception $e) {
    echo $e->getMessage();
}


bueno espero que les parezca interesante escuchar hablar a php.

saludos!


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

Buenisimo! Esto me viene de pelo para un proyecto que tenia en mente :)
Saludos,, Cronos.-

No tienes permitido ver los links. Registrarse o Entrar a mi 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!