RecognitionConfig

Proporciona información al reconocedor que especifica cómo procesar la petición.

Representación JSON
{
  "encoding": enum (AudioEncoding),
  "sampleRateHertz": integer,
  "audioChannelCount": integer,
  "enableSeparateRecognitionPerChannel": boolean,
  "languageCode": string,
  "alternativeLanguageCodes": [
    string
  ],
  "maxAlternatives": integer,
  "profanityFilter": boolean,
  "adaptation": {
    object (SpeechAdaptation)
  },
  "transcriptNormalization": {
    object (TranscriptNormalization)
  },
  "speechContexts": [
    {
      object (SpeechContext)
    }
  ],
  "enableWordTimeOffsets": boolean,
  "enableWordConfidence": boolean,
  "enableAutomaticPunctuation": boolean,
  "enableSpokenPunctuation": boolean,
  "enableSpokenEmojis": boolean,
  "enableSpeakerDiarization": boolean,
  "diarizationSpeakerCount": integer,
  "diarizationConfig": {
    object (SpeakerDiarizationConfig)
  },
  "metadata": {
    object (RecognitionMetadata)
  },
  "model": string,
  "useEnhanced": boolean
}
Campos
encoding

enum (AudioEncoding)

Codificación de los datos de audio enviados en todos los mensajes RecognitionAudio. Este campo es opcional para los archivos de audio FLAC y WAV, y obligatorio para el resto de los formatos de audio. Para obtener información detallada, consulta AudioEncoding.

sampleRateHertz

integer

Frecuencia de muestreo en hercios de los datos de audio enviados en todos los mensajes RecognitionAudio. Los valores válidos son: 8000-48000. 16.000 es el valor óptimo. Para obtener los mejores resultados, configura la frecuencia de muestreo de la fuente de audio en 16.000 Hz. Si no es posible, usa la frecuencia de muestreo nativa de la fuente de audio (en lugar de volver a muestrear). Este campo es opcional para los archivos de audio FLAC y WAV, pero es obligatorio para todos los demás formatos de audio. Para obtener información detallada, consulta AudioEncoding.

audioChannelCount

integer

Número de canales de los datos de audio de entrada. SOLO se debe definir para el reconocimiento MULTICANAL. Los valores válidos de LINEAR16, OGG_OPUS y FLAC son de 1 a 8. Los valores válidos de MULAW, AMR, AMR_WB y SPEEX_WITH_HEADER_BYTE son 1. Si se incluye 0 o se omite, se usa un canal (mono) de forma predeterminada. Nota: De forma predeterminada, solo reconocemos el primer canal. Para realizar un reconocimiento independiente en cada canal, asigna el valor "true" a enableSeparateRecognitionPerChannel.

enableSeparateRecognitionPerChannel

boolean

Este valor debe ser true explícitamente y audioChannelCount > 1 para que cada canal se reconozca por separado. El resultado del reconocimiento contendrá un campo channelTag para indicar a qué canal pertenece. Si no es así, solo reconoceremos el primer canal. La solicitud se factura de forma acumulativa por todos los canales reconocidos: audioChannelCount multiplicado por la duración del audio.

languageCode

string

Obligatorio. El idioma del audio proporcionado como etiqueta de idioma BCP-47. Por ejemplo: "en-US". Consulta la lista de códigos de idioma admitidos en Idiomas disponibles.

alternativeLanguageCodes[]

string

Lista de hasta 3 etiquetas de idioma BCP-47 adicionales que indican posibles idiomas alternativos del audio proporcionado. Consulta la lista de códigos de idioma admitidos en Idiomas disponibles. Si se indican idiomas alternativos, el resultado del reconocimiento contendrá el reconocimiento en el idioma detectado más probable, incluido el idioma principal. El resultado del reconocimiento incluirá la etiqueta de idioma del idioma detectado en el audio. Nota: Esta función solo se admite en los casos prácticos de comandos y búsqueda por voz, y el rendimiento puede variar en otros casos prácticos (por ejemplo, la transcripción de llamadas telefónicas).

maxAlternatives

integer

Número máximo de hipótesis de reconocimiento que se devolverán. En concreto, el número máximo de mensajes SpeechRecognitionAlternative en cada SpeechRecognitionResult. Es posible que el servidor devuelva menos de maxAlternatives. Los valores válidos son 0-30. Si se indica el valor 0 o 1, se devolverá un máximo de uno. Si se omite, devolverá un máximo de uno.

profanityFilter

boolean

Si se define como true, el servidor intentará filtrar las palabras malsonantes y sustituirá todos los caracteres de cada palabra filtrada por asteriscos, excepto el inicial (por ejemplo, "f***"). Si se asigna el valor false o se omite, no se filtrarán las palabras malsonantes.

adaptation

object (SpeechAdaptation)

La configuración de adaptación de voz mejora la precisión del reconocimiento de voz. Para obtener más información, consulta la documentación sobre adaptación del habla. Cuando se define la adaptación del habla, se sustituye el campo speechContexts.

transcriptNormalization

object (TranscriptNormalization)

Opcional. Usa la normalización de la transcripción para sustituir automáticamente partes de la transcripción por las frases que elijas. En el caso de StreamingRecognize, esta normalización solo se aplica a las transcripciones parciales estables (estabilidad > 0,8) y a las transcripciones finales.

speechContexts[]

object (SpeechContext)

Matriz de SpeechContext. Un medio para proporcionar contexto y ayudar al reconocimiento de voz. Para obtener más información, consulta Adaptación de voz.

enableWordTimeOffsets

boolean

Si true, el primer resultado incluye una lista de palabras y los desplazamientos de hora de inicio y finalización (marcas de tiempo) de esas palabras. Si false, no se devuelve información sobre el desfase de tiempo a nivel de palabra. El valor predeterminado es false.

enableWordConfidence

boolean

Si true, el primer resultado incluye una lista de palabras y la confianza de esas palabras. Si es false, no se devuelve información sobre la confianza a nivel de palabra. El valor predeterminado es false.

enableAutomaticPunctuation

boolean

Si es "true", añade signos de puntuación a las hipótesis de los resultados del reconocimiento. Esta función solo está disponible en algunos idiomas. Si se define este valor para solicitudes en otros idiomas, no tendrá ningún efecto. El valor predeterminado "false" no añade signos de puntuación a las hipótesis de resultados.

enableSpokenPunctuation

boolean

Comportamiento de la puntuación hablada de la llamada. Si no se define, se usa el comportamiento predeterminado en función del modelo elegido. Por ejemplo, command_and_search habilitará la puntuación hablada de forma predeterminada. Si se define como "true", se sustituirá la puntuación hablada por los símbolos correspondientes en la solicitud. Por ejemplo, "how are you question mark" (¿cómo estás?) se convierte en "how are you?" (¿cómo estás?). Consulta https://cloud.google.com/speech-to-text/docs/spoken-punctuation para obtener ayuda. Si es "false", no se sustituye la puntuación hablada.

enableSpokenEmojis

boolean

Comportamiento de los emojis hablados en la llamada. Si no se define, se usa el comportamiento predeterminado en función del modelo elegido. Si se define como "true", se añade el formato de los emojis hablados a la solicitud. De esta forma, los emojis que digas se sustituirán por los símbolos Unicode correspondientes en la transcripción final. Si es "false", los emojis hablados no se sustituyen.

enableSpeakerDiarization
(deprecated)

boolean

Si es "true", habilita la detección de interlocutor para cada palabra reconocida en la alternativa principal del resultado del reconocimiento mediante una etiqueta de interlocutor proporcionada en WordInfo. Nota: Usa diarizationConfig en su lugar.

diarizationSpeakerCount
(deprecated)

integer

Si se define, especifica el número estimado de participantes en la conversación. El valor predeterminado es "2". Se ignora a menos que enableSpeakerDiarization se defina como true. Nota: Usa diarizationConfig en su lugar.

diarizationConfig

object (SpeakerDiarizationConfig)

Configuración para habilitar la diarización del interlocutor y definir parámetros adicionales para que la diarización se adapte mejor a tu aplicación. Nota: Cuando esta opción está habilitada, enviamos todas las palabras desde el principio del audio de la mejor alternativa en cada respuesta STREAMING consecutiva. Esto se hace para mejorar nuestras etiquetas de interlocutor a medida que nuestros modelos aprenden a identificar a los interlocutores de la conversación con el tiempo. En las solicitudes que no son de streaming, los resultados de la diarización solo se proporcionarán en la alternativa principal de FINAL SpeechRecognitionResult.

metadata

object (RecognitionMetadata)

Metadatos sobre esta solicitud.

model

string

Qué modelo se debe seleccionar para la solicitud dada. Selecciona el modelo que mejor se adapte a tu dominio para obtener los mejores resultados. Si un modelo no está especificado de forma explícita, entonces seleccionamos automáticamente un modelo basado en los parámetros en RecognitionConfig.

Modelo Descripción

latest_long

Es ideal para contenido largo, como contenido multimedia o conversaciones.

latest_short

Ideal para contenido breve, como comandos o discursos dirigidos de una sola toma.

command_and_search

Adecuado para consultas cortas como comandos de voz o búsquedas por voz.

phone_call

Adecuado para audio originado a partir de una llamada telefónica (generalmente grabada a una frecuencia de muestreo de 8 kHz).

video

Adecuado para el audio generado a partir de vídeos o en los que intervienen varios interlocutores. Lo ideal es que el audio se grabe a una velocidad de muestreo de 16 kHz o mayor. Este es un modelo premium que cuesta más que la tarifa estándar.

default

Adecuado para audio que no es uno de los modelos de audio específicos. Por ejemplo, audio de formato largo. Lo ideal es que el audio sea de alta fidelidad, grabado a una velocidad de muestreo de 16 kHz o superior.

medical_conversation

Adecuado para el audio generado a partir de una conversación entre un profesional sanitario y un paciente.

medical_dictation

Adecuado para el audio generado a partir de notas de dictado de un profesional sanitario.

useEnhanced

boolean

Introduce el valor "true" para usar un modelo mejorado de reconocimiento de voz. Si useEnhanced tiene el valor true y no se ha definido el campo model, se elegirá un modelo mejorado adecuado si existe para el audio.

Si useEnhanced es true y no existe una versión mejorada del modelo especificado, la voz se reconoce con la versión estándar del modelo especificado.

AudioEncoding

La codificación de los datos de audio enviados en la petición.

Todas las codificaciones solo admiten audio de 1 canal (mono), a menos que se definan los campos audioChannelCount y enableSeparateRecognitionPerChannel.

Para obtener los mejores resultados, la fuente de audio debe capturarse y transmitirse mediante una codificación sin pérdida (FLAC o LINEAR16). La precisión del reconocimiento de voz puede reducirse si se utilizan códecs con pérdida para capturar o transmitir audio, sobre todo si hay ruido de fondo. Los códecs con pérdida incluyen MULAW, AMR, AMR_WB, OGG_OPUS, SPEEX_WITH_HEADER_BYTE, MP3 y WEBM_OPUS.

Los formatos FLAC y WAV de archivos de audio incluyen un encabezado que describe el contenido de audio incluido. Puedes solicitar el reconocimiento de archivos WAV que contengan audio codificado en LINEAR16 o MULAW. Si envía el formato de archivo de audio FLAC o WAV en su solicitud, no es necesario que especifique un AudioEncoding. El formato de codificación de audio se determina a partir del encabezado del archivo. Si especificas un AudioEncoding al enviar audio FLAC o WAV, la configuración de codificación debe coincidir con la codificación descrita en el encabezado de audio. De lo contrario, la solicitud devolverá un código de error google.rpc.Code.INVALID_ARGUMENT.

Enumeraciones
ENCODING_UNSPECIFIED Sin especificar.
LINEAR16 Muestras de little endian firmadas de 16 bits sin comprimir (Linear PCM).
FLAC FLAC (códec de audio sin pérdida) es la codificación recomendada porque no tiene pérdidas, por lo que el reconocimiento no se ve comprometido, y solo requiere aproximadamente la mitad del ancho de banda de LINEAR16. La codificación de flujo FLAC admite muestras de 16 y 24 bits, pero no todos los campos de STREAMINFO.
MULAW Muestras de 8 bits que comparan muestras de audio de 14 bits utilizando G.711 PCMU/mu-law.
AMR Códec de banda estrecha de tasa múltiple adaptativa. sampleRateHertz debe ser 8000.
AMR_WB Códec de banda ancha de tasa múltiple adaptativa. sampleRateHertz debe ser 16000.
OGG_OPUS Marcos de audio codificados en Opus en un contenedor Ogg (OggOpus). sampleRateHertz debe ser uno de los siguientes valores: 8000, 12000, 16000, 24000 o 48000.
SPEEX_WITH_HEADER_BYTE Aunque no se recomienda el uso de codificaciones con pérdida, si se requiere una codificación de tasa de bits muy baja, se da mucha más prioridad a OGG_OPUS sobre la codificación Speex. La codificación Speex compatible con la API Cloud Speech tiene un byte de encabezado en cada bloque, como en el tipo MIME audio/x-speex-with-header-byte. Es una variante de la codificación RTP Speex definida en RFC 5574. El flujo es una secuencia de bloques, un bloque por paquete RTP. Cada bloque comienza con un byte que contiene la longitud del bloque, en bytes, seguido de uno o más cuadros de datos de Speex, asignados a un número integral de bytes (octetos) como se especifica en RFC 5574. En otras palabras, cada encabezado RTP se reemplaza con un solo byte que contiene la longitud del bloque. Solo se admite Speex de banda ancha. sampleRateHertz debe ser 16000.
MP3 Audio MP3. La codificación MP3 es una función beta y solo está disponible en la versión 1.1 beta 1. Admite todas las tasas de bits MP3 estándar (que van de 32 a 320 kbps). Cuando se usa esta codificación, sampleRateHertz debe coincidir con la frecuencia de muestreo del archivo que se esté usando.
WEBM_OPUS Marcos de audio codificados en Opus en un contenedor WebM (WebM). sampleRateHertz debe ser uno de los siguientes valores: 8000, 12000, 16000, 24000 o 48000.
ALAW Muestras de 8 bits que companden muestras de audio de 13 bits mediante G.711 PCMU/a-law.

SpeechAdaptation

Configuración de la adaptación de voz.

Representación JSON
{
  "phraseSets": [
    {
      object (PhraseSet)
    }
  ],
  "phraseSetReferences": [
    string
  ],
  "customClasses": [
    {
      object (CustomClass)
    }
  ],
  "abnfGrammar": {
    object (ABNFGrammar)
  }
}
Campos
phraseSets[]

object (PhraseSet)

Una colección de conjuntos de frases. Para especificar las sugerencias insertadas, deja en name la frase definida y rellena el resto de los campos. Cualquier conjunto de frases puede usar cualquier clase personalizada.

phraseSetReferences[]

string

Colección de nombres de recursos de conjuntos de frases que se van a usar.

customClasses[]

object (CustomClass)

Una colección de clases personalizadas. Para especificar las clases insertadas, deja el campo name de la clase en blanco y rellena el resto de los campos. Asigna un customClassId único a la clase. Haz referencia a la clase definida insertada en las sugerencias de frases por su customClassId.

abnfGrammar

object (ABNFGrammar)

La notación aumentada de Backus-Naur (ABNF) es una notación de gramática estandarizada que consta de un conjunto de reglas de derivación. Consulta las especificaciones en https://www.w3.org/TR/speech-grammar.

ABNFGrammar

Representación JSON
{
  "abnfStrings": [
    string
  ]
}
Campos
abnfStrings[]

string

Todas las declaraciones y reglas de una gramática ABNF divididas en varias cadenas que se concatenarán.

TranscriptNormalization

Configuración de normalización de transcripciones. Usa la normalización de la transcripción para sustituir automáticamente partes de la transcripción por las frases que elijas. En el caso de StreamingRecognize, esta normalización solo se aplica a las transcripciones parciales estables (estabilidad > 0,8) y a las transcripciones finales.

Representación JSON
{
  "entries": [
    {
      object (Entry)
    }
  ]
}
Campos
entries[]

object (Entry)

Una lista de entradas de sustitución. Realizaremos la sustitución de una entrada cada vez. Por ejemplo, la segunda entrada de ["cat" => "dog", "mountain cat" => "mountain dog"] nunca se aplicará porque siempre procesaremos la primera entrada antes. 100 entradas como máximo.

Entrada

Una sola configuración de sustitución.

Representación JSON
{
  "search": string,
  "replace": string,
  "caseSensitive": boolean
}
Campos
search

string

Qué se va a sustituir. La longitud máxima es de 100 caracteres.

replace

string

Qué se va a sustituir. La longitud máxima es de 100 caracteres.

caseSensitive

boolean

Indica si la búsqueda distingue entre mayúsculas y minúsculas.

SpeechContext

Proporciona "sugerencias" al reconocedor de voz para favorecer palabras y frases específicas en los resultados.

Representación JSON
{
  "phrases": [
    string
  ],
  "boost": number
}
Campos
phrases[]

string

Lista de cadenas que contienen "sugerencias" de palabras y frases para que el reconocimiento de voz tenga más probabilidades de reconocerlas. Esto se puede utilizar para mejorar la precisión de palabras y frases específicas, por ejemplo, si el usuario suele pronunciar comandos específicos. Esto también se puede usar para agregar palabras adicionales al vocabulario del reconocedor. Consulta los límites de uso.

También se pueden asignar clases a los elementos de la lista para grupos de palabras que representen conceptos comunes que aparecen en el lenguaje natural. Por ejemplo, en lugar de proporcionar sugerencias de frases para cada mes del año, usar la clase $MONTH aumenta la probabilidad de transcribir correctamente el audio que incluye meses.

boost

number

Pista. Un valor positivo aumentará la probabilidad de que se reconozca una frase específica en lugar de otras frases que suenen de forma similar. Cuanto mayor sea el aumento, mayor será la probabilidad de que se produzcan falsos positivos. Los valores de impulso negativos se corresponderían con la eliminación de sesgos. El ajuste para evitar sesgos no está habilitado, por lo que el aumento negativo se ignorará. Aunque boost puede aceptar una amplia gama de valores positivos, la mayoría de los casos prácticos se adaptan mejor a valores entre 0 y 20. Te recomendamos que uses una búsqueda binaria para encontrar el valor óptimo para tu caso práctico.

SpeakerDiarizationConfig

Configuración para habilitar la diarización del interlocutor.

Representación JSON
{
  "enableSpeakerDiarization": boolean,
  "minSpeakerCount": integer,
  "maxSpeakerCount": integer,
  "speakerTag": integer
}
Campos
enableSpeakerDiarization

boolean

Si es "true", habilita la detección de interlocutor para cada palabra reconocida en la alternativa principal del resultado del reconocimiento mediante una etiqueta de interlocutor proporcionada en WordInfo.

minSpeakerCount

integer

Número mínimo de participantes en la conversación. Este intervalo te ofrece más flexibilidad, ya que permite que el sistema determine automáticamente el número correcto de altavoces. Si no se define, el valor predeterminado es 2.

maxSpeakerCount

integer

Número máximo de participantes en la conversación. Este intervalo te ofrece más flexibilidad, ya que permite que el sistema determine automáticamente el número correcto de altavoces. Si no se define, el valor predeterminado es 6.

speakerTag
(deprecated)

integer

Solo de salida. Sin usar.

RecognitionMetadata

Descripción de los datos de audio que se van a reconocer.

Representación JSON
{
  "interactionType": enum (InteractionType),
  "industryNaicsCodeOfAudio": integer,
  "microphoneDistance": enum (MicrophoneDistance),
  "originalMediaType": enum (OriginalMediaType),
  "recordingDeviceType": enum (RecordingDeviceType),
  "recordingDeviceName": string,
  "originalMimeType": string,
  "obfuscatedId": string,
  "audioTopic": string
}
Campos
interactionType

enum (InteractionType)

El caso práctico que mejor describa el contenido de audio que se va a reconocer.

industryNaicsCodeOfAudio

integer (uint32 format)

El vertical de sector al que se aplica más esta solicitud de reconocimiento de voz. Esto es lo que mejor indica los temas que contiene el audio. Usa el código NAICS de 6 dígitos para identificar el sector vertical. Consulta https://www.naics.com/search/.

microphoneDistance

enum (MicrophoneDistance)

El tipo de audio que más se ajusta al audio que se está reconociendo.

originalMediaType

enum (OriginalMediaType)

El medio original en el que se grabó el discurso.

recordingDeviceType

enum (RecordingDeviceType)

El tipo de dispositivo con el que se grabó el discurso.

recordingDeviceName

string

El dispositivo que se ha usado para hacer la grabación. Por ejemplo, "Nexus 5X", "Polycom SoundStation IP 6000", "POTS", "VoIP" o "Micrófono cardioide".

originalMimeType

string

Tipo MIME del archivo de audio original. Por ejemplo, audio/m4a, audio/x-alaw-basic, audio/mp3 y audio/3gpp. Se mantiene una lista de posibles tipos MIME de audio en http://www.iana.org/assignments/media-types/media-types.xhtml#audio.

obfuscatedId
(deprecated)

string (int64 format)

ID ofuscado (protegido por la privacidad) del usuario para identificar el número de usuarios únicos que utilizan el servicio.

audioTopic

string

Descripción del contenido. Por ejemplo, "Grabaciones de las audiencias del Tribunal Supremo Federal del 2012".

InteractionType

Categorías de casos prácticos que pueden describir la solicitud de reconocimiento de audio.

Enumeraciones
INTERACTION_TYPE_UNSPECIFIED El caso práctico es desconocido o no es ninguno de los otros valores que se indican a continuación.
DISCUSSION Varias personas en una conversación o debate. Por ejemplo, en una reunión con dos o más personas que participan activamente. Normalmente, todas las personas que hablan principalmente están en la misma sala (si no es así, consulta PHONE_CALL).
PRESENTATION Una o varias personas dan una charla o una presentación a otras, casi siempre sin interrupciones.
PHONE_CALL Llamada telefónica o videoconferencia en la que participan activamente dos o más personas que no están en la misma sala.
VOICEMAIL Un mensaje grabado para que lo escuche otra persona.
PROFESSIONALLY_PRODUCED Audio producido por profesionales (por ejemplo, Serie de televisión o pódcast.
VOICE_COMMAND Transcribir comandos de voz, como los que se usan para controlar un dispositivo.
DICTATION Transcribir la voz a texto para crear un documento escrito, como un mensaje de texto, un correo o un informe.

MicrophoneDistance

Enumera los tipos de ajustes de captura que describen un archivo de audio.

Enumeraciones
MICROPHONE_DISTANCE_UNSPECIFIED No se conoce el tipo de audio.
NEARFIELD El audio se ha captado con un micrófono colocado cerca. Por ejemplo, un teléfono, un dictáfono o un micrófono de mano. Por lo general, si el altavoz está a menos de 1 metro del micrófono.
MIDFIELD El altavoz está a menos de 3 metros del micrófono.
FARFIELD El altavoz está a más de 3 metros del micrófono.

OriginalMediaType

El medio original en el que se grabó el discurso.

Enumeraciones
ORIGINAL_MEDIA_TYPE_UNSPECIFIED Tipo de contenido multimedia original desconocido.
AUDIO Los datos de voz son una grabación de audio.
VIDEO Los datos de voz grabados originalmente en un vídeo.

RecordingDeviceType

El tipo de dispositivo con el que se grabó el discurso.

Enumeraciones
RECORDING_DEVICE_TYPE_UNSPECIFIED Se desconoce el dispositivo de grabación.
SMARTPHONE El discurso se grabó en un smartphone.
PC El discurso se grabó con un ordenador personal o una tablet.
PHONE_LINE El discurso se grabó a través de una línea telefónica.
VEHICLE Se ha grabado una conversación en un vehículo.
OTHER_OUTDOOR_DEVICE La conversación se grabó en exteriores.
OTHER_INDOOR_DEVICE La voz se grabó en interiores.