¿Cómo se captura el texto reconocido de Echo?

13

Sé que algunas habilidades pueden capturar texto hablado, como cuando se agregan a listas de tareas y listas de compras, y las habilidades de terceros también pueden hacer esto, por ejemplo. SMS con Molly .

Entonces, ¿cómo hacen esto? ¿Hay una llamada API que captura el texto reconocido y lo almacena en algún lugar?

Graham Chiu
fuente

Respuestas:

8

Las habilidades personalizadas pueden capturar texto y enviarlo a la API de su habilidad.

Si no está completamente familiarizado con el funcionamiento de Alexa Skills, aquí hay un breve resumen:

  • Primero, registra su habilidad con Amazon , proporcionando un esquema de intención y expresiones de muestra . El esquema de intención define qué acciones se pueden realizar y los espacios para los datos personalizados que se enviarán a su API. Las expresiones de muestra proporcionan ejemplos de cómo un usuario puede activar cada intento.

  • Cuando el usuario active su habilidad, Alexa intentará hacer coincidir lo que dijo con una de las expresiones de muestra de su habilidad. Si se hace partido, se enviará una solicitud HTTPS al servidor para pedir una respuesta.

  • Su servidor proporciona una respuesta (si todo va bien) y luego Alexa dará retroalimentación al usuario que activó su habilidad.

La AMAZON.LITERALranura le permite aceptar prácticamente cualquier entrada. Tenga en cuenta que actualmente solo se admite en la región de inglés (EE. UU.) AMAZON.LITERAL.

Su esquema de intención podría verse así:

{
  "intents": [
    {
      "intent": "SaveTodo",
      "slots": [
        {
          "name": "Todo",
          "type": "AMAZON.LITERAL"
        }
      ]
    }
  ]
}

Y sus expresiones de muestra podrían ser así:

SaveTodo remind me to {fetch the shopping|Todo}
SaveTodo remind me to {write my English essay|Todo}
SaveTodo remind me to {buy some dog food tomorrow|Todo}

Al usarlo AMAZON.LITERAL, debe proporcionar muchos enunciados de muestra, al menos una muestra para cada posible longitud de entrada, pero idealmente más. La documentación de Amazon sugiere que debería apuntar a cientos de muestras para ranuras donde podría aceptar varios tipos de entradas.

Parece un poco tedioso, pero si no haces esto, es poco probable que tu habilidad reconozca bien el texto. Tal vez podría generar expresiones de muestra a partir de los datos del cliente (¡siempre y cuando la información personal se elimine de antemano!) Para que las declaraciones más comunes estén en sus muestras; sospecho que Alexa estará ligeramente sesgada hacia el reconocimiento de expresiones similares a las muestras.

Sin embargo, Amazon desalienta las AMAZON.LITERALtragamonedas y preferiría que use tipos de tragamonedas personalizados , que requieren que enumere las posibles entradas. Es importante recordar que:

Un tipo de ranura personalizado no es el equivalente de una enumeración. Los valores fuera de la lista aún pueden devolverse si el sistema de comprensión del idioma hablado los reconoce. Aunque la entrada a un tipo de ranura personalizado se pondera hacia los valores de la lista, no se limita solo a los elementos de la lista. Su código aún necesita incluir validación y verificación de errores al usar valores de ranura.

Aurora0001
fuente
1
Creo que Amazon mantiene las tragamonedas literales, ya que muchos desarrolladores protestaron contra su pérdida. Pero usar el espacio literal evitará que su habilidad se publique ya que Amazon no quiere que los desarrolladores tengan la capacidad de "escuchar" a los usuarios. Pero aún puedes usarlo en una habilidad privada.
Graham Chiu
1
@GrahamChiu: Tengo la impresión de que las máquinas tragamonedas literales todavía están permitidas incluso en las habilidades publicadas (consulte esta publicación del blog : "Según los comentarios de los desarrolladores, no eliminaremos el tipo de ranura LITERAL y puede continuar enviando habilidades que incluyan su funcionalidad"). . Sin embargo, no lo he probado yo mismo, así que si puedes confirmarlo de cualquier manera, eso podría ser útil para futuros visitantes.
Aurora0001