7 votos

Reconocimiento de voz por línea de comandos con Mac OS X

¿Cómo puedo hacer el reconocimiento de voz en Mac OS X desde la línea de comandos? Detalles:

% Cuando miro en ~/Library/Speech/Speakable Items, veo muchos archivos como "Tell me a joke", cuyo contenido es:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd"> 
<plist version="0.9"> 
<dict> 
        <key>BuiltInCommandID</key> 
        <integer>105</integer> 
        <key>semanticCategory</key> 
        <string>globalTellMeAJoke</string> 
        <key>alternativeSpokenFeedback</key> 
        <string></string> 
        <key>suppressSpokenConfirmation</key> 
        <string>yes</string> 
        <key>alternativeFeedback</key> 
        <string></string> 
        <key>DefaultCommandName</key> 
        <string>Tell me a joke</string> 
</dict> 
</plist> 

% ¿Cómo sabe OS X cuándo invocar este archivo? Cuando digo algo ¿busca un nombre de archivo que coincida?

% ¿Cómo sabe OS X qué comando debe ejecutar? No veo nada en ese archivo que diga qué comando ejecutar ("Cuéntame un chiste" no es un comando de línea de comandos).

% Sé que hay algo de magia de osacompile, pero no puedo averiguar lo que es.

% ¿Cómo puedo hacer que OS X escuche la cadena "s" y ejecute el programa "cmd" en respuesta? Preferiría hacer esto puramente desde la línea de comandos, pero si tengo que abrir un programa gráfico, lo haré.

2voto

Gareth Jenkins Puntos 1480

Tal vez le interese leer Documentación de Apple sobre los elementos hablables Pero la parte relevante a tu pregunta, "¿Cómo puedo hacer que OS X escuche la cadena "s" y ejecute el programa "cmd" en respuesta?

Puedes añadir un elemento a la lista Speakable para que se pueda hablar de él.

Abrir algo con la voz sólo tienes que añadirlo a la carpeta Speakable elementos hablables. Puede utilizar un comando para abrir cualquier cosa que pueda abrirse con haciendo doble clic, incluyendo aplicaciones, archivos y sitios web. También puede escribir scripts y añadirlos a la carpeta.

En cuanto a "¿Cómo sabe OS X qué comando debe ejecutar? No veo nada en ese archivo que diga qué comando ejecutar", la parte relevante del archivo que has publicado es:

    <key>BuiltInCommandID</key> 
    <integer>105</integer> 
    <key>DefaultCommandName</key> 
    <string>Tell me a joke</string> 

Esto es, cuando se recibe el comando hablado "Cuéntame un chiste", ejecuta el comando interno ID#105, que es el comando "Cuéntame un chiste".

En este caso se trata de un comando interno al sistema de voz. Pero también puedes añadir AppleScripts o comandos de shell a la carpeta de elementos hablables.

Este artículo en Mac OS X Hints también puede ser útil.

EDITAR: Después de investigar un poco, no estoy seguro de que se puedan ejecutar los scripts directamente desde ahí, pero un pequeño envoltorio de AppleScript sería bastante fácil de escribir, e incluso se podría escribir para que se pueda duplicar y renombrar, y simplemente se ejecutaría el correspondiente scripts desde /scripts o algo así.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X