Todos los productos
Search
Centro de documentos

Alibaba Cloud Model Studio:SDK de HarmonyOS para conversación de voz en tiempo real de Qwen-Audio-3.0-Realtime

Última actualización: Oct 12, 2026

Utilice el SDK de HarmonyOS para Qwen-Audio-3.0-Realtime con el fin de crear conversaciones de voz en tiempo real con entrada de audio y salida de audio o texto.

Guía del usuario: Para introducciones a los modelos y consejos de selección, consulte Conversación de voz en tiempo real.

Inicio rápido

  1. Obtenga y configure una clave de API.

  2. Descargue el SDK y ejecute el código de ejemplo:
    • Descargue el paquete más reciente del SDK.
    • Extraiga el paquete del SDK .tar.gz. Obtenga el SDK HAR de entry/libs y agréguelo a las dependencias de su proyecto. Para la integración con C++, utilice native/libs y native/include en el paquete para obtener las bibliotecas dinámicas y los archivos de encabezado.
    • Abra el proyecto en DevEco Studio. El código de ejemplo se encuentra en DashQwenAudioChatPage.ets. Reemplace la clave API para probar la función.

Procedimiento de llamada

  1. Inicialice el SDK.
  2. Configure los parámetros para su caso de uso. Utilice el argumento parameters de initialize para establecer los parámetros de conexión y control, y utilice setParams para establecer los parámetros de conversación de voz.
  3. Llame a startDialog para iniciar la conversación.
  4. En onNuiAudioStateChanged, inicie el dispositivo de grabación según el estado del audio.
  5. Suministre continuamente datos de grabación en onNuiNeedAudioData, o llame a updateAudio para enviar activamente datos de grabación.
  6. Reciba continuamente el audio devuelto por el modelo en onNuiAssistEventCallback.
  7. Escuche los eventos y obtenga la información de los mismos en onNuiEventCallback.
  8. Llame a stopDialog para detener la conversación y escuche EVENT_TRANSCRIBER_COMPLETE para confirmar que ha finalizado.
  9. Cuando ya no necesite la función de conversación, llame a release para liberar los recursos del SDK.

Gestión de dispositivos de audio

A diferencia de Android, que utiliza AudioRecord y AudioTrack, HarmonyOS proporciona captura y reproducción de audio a través de @kit.AudioKit, utilizando AudioCapturer para la grabación y AudioRenderer para la reproducción. El proyecto de ejemplo proporciona las clases de utilidad AudioRecorder.ets y AudioPlayer.ets para su reutilización.

Grabación (AudioCapturer)

  • Crear: Llame a audio.createAudioCapturer(capturerOptions) de forma asíncrona. El ejemplo utiliza audio mono de 16 kHz y 16 bits (SAMPLE_RATE_16000, CHANNEL_1, SAMPLE_FORMAT_S16LE y ENCODING_TYPE_RAW).
  • Fuente de audio (audio.SourceType):
    • SOURCE_TYPE_MIC: Audio sin procesar del micrófono. Utilice esta fuente cuando la AEC interna del SDK esté habilitada y envíe datos al SDK llamando a updateAudio.
    • SOURCE_TYPE_VOICE_COMMUNICATION: Audio de llamada en el que el sistema ya ha realizado la cancelación de eco. Utilice esta fuente cuando la AEC interna del SDK esté deshabilitada y proporcione audio a través de onNuiNeedAudioData.
  • Evento de datos: Llame a capturer.on('readData', (buffer: ArrayBuffer) => void) para obtener continuamente el audio grabado.
  • Evento de estado: Llame a capturer.on('stateChange', (state: audio.AudioState) => void). STATE_RUNNING indica que la grabación ha comenzado y STATE_STOPPED indica que se ha detenido.
  • Control: Llame a start() para iniciar, stop() para detener y release() para liberar el grabador.
import { audio } from '@kit.AudioKit';

const audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_16000,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
};
const audioCapturerInfo: audio.AudioCapturerInfo = {
  source: audio.SourceType.SOURCE_TYPE_MIC,
  capturerFlags: 0
};
const options: audio.AudioCapturerOptions = { streamInfo: audioStreamInfo, capturerInfo: audioCapturerInfo };

audio.createAudioCapturer(options).then((capturer) => {
  capturer.on('readData', (buffer: ArrayBuffer) => {
    // Send the recorded audio to the SDK.
    nuiInstance.updateAudio(buffer, false);
  });
  capturer.start();
});

Nota: HarmonyOS crea AudioCapturer de forma asíncrona. Llame a start() solo después de que se complete la creación. No cree e inicie inmediatamente un grabador en STATE_OPEN. Créelo primero y luego llame a start() desde la devolución de llamada STATE_OPEN. El ejemplo crea el grabador durante doInit y lo inicia durante onNuiAudioStateChanged.

Reproducción (AudioRenderer)

  • Crear: Llame a audio.createAudioRenderer(rendererOptions) de forma asíncrona.
  • Frecuencia de muestreo: El audio de respuesta sintetizado devuelto por DashScope Realtime es de 24 kHz. Pase esta frecuencia al constructor de AudioPlayer.
  • Evento de datos: Llame a renderer.on('writeData', (data: ArrayBuffer): audio.AudioDataCallbackResult => ...) para proporcionar audio para la reproducción. Devuelva AudioDataCallbackResult.VALID después de llenar el búfer o INVALID cuando no haya datos disponibles.
  • Evento de estado: Llame a renderer.on('stateChange', (state: audio.AudioState) => void) para escuchar los eventos de inicio y fin de reproducción.
  • Control: Llame a start() para iniciar, stop() para detener y pause() para pausar la reproducción. Pausar conserva los datos almacenados en búfer.
import { audio } from '@kit.AudioKit';

const audioStreamInfo: audio.AudioStreamInfo = {
  samplingRate: audio.AudioSamplingRate.SAMPLE_RATE_24000,
  channels: audio.AudioChannel.CHANNEL_1,
  sampleFormat: audio.AudioSampleFormat.SAMPLE_FORMAT_S16LE,
  encodingType: audio.AudioEncodingType.ENCODING_TYPE_RAW
};
const audioRendererInfo: audio.AudioRendererInfo = {
  usage: audio.StreamUsage.STREAM_USAGE_VOICE_ASSISTANT,
  rendererFlags: 0
};
const options: audio.AudioRendererOptions = { streamInfo: audioStreamInfo, rendererInfo: audioRendererInfo };

audio.createAudioRenderer(options, (err, renderer) => {
  renderer.on('writeData', (data: ArrayBuffer): audio.AudioDataCallbackResult => {
    // Fill data with model response audio from the queue and return VALID or INVALID.
    return audio.AudioDataCallbackResult.VALID;
  });
  renderer.start();
});

Señal de referencia AEC: Cuando la AEC interna del SDK está habilitada, envíe el audio de salida del reproductor al SDK como señal de referencia llamando a nuiInstance.pushReferenceData(data, false), que corresponde a updateRefAudio en Android.

Declaración de permisos

Declare el permiso de micrófono en module.json5 antes de grabar audio:

{
  "requestPermissions": [
    { "name": "ohos.permission.MICROPHONE" }
  ]
}

Parámetros de solicitud

Parámetros de conexión y control

Pase una cadena JSON en el argumento parameters de initialize.

Ejemplo: La siguiente cadena JSON no enumera todos los parámetros. Agregue los parámetros según sea necesario para su caso de uso.

{
  "url": "wss://dashscope.aliyuncs.com/api-ws/v1/inference",
  "apikey": "st-****",
  "device_id": "my_device_id",
  "service_mode": "1"
}
Parámetros
ParámetroTipoObligatorioDescripción

url

String

Sí

Endpoint del servicio:

  • wss://dashscope.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
  • China (Pekín): wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
  • Singapur: wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=<model_name>
Reemplace {WorkspaceId} con su ID de espacio de trabajo.

apikey

String

Sí

Clave de API.

service_mode

String

Sí

Modo de ejecución. Establezca este parámetro en "1" para conversaciones de voz en tiempo real.

device_id

String

Sí

Una cadena única que identifica al usuario final. Puede utilizar un ID de usuario dentro de la aplicación o un identificador de dispositivo generado por el cliente. Este ID se utiliza principalmente para el rastreo de registros y la solución de problemas.

audio_update_manually

String

No

Indica si se deben enviar activamente datos de audio. Valor predeterminado: "false". Si se establece en "true" y el SDK admite capacidades de audio en el dispositivo, como AEC y VAD, dichas capacidades se habilitan de forma predeterminada.

workspace

String

No

La ruta de almacenamiento para los archivos de recursos en el dispositivo. Este parámetro es obligatorio cuando audio_update_manually es "true" y está habilitada una capacidad de audio en el dispositivo, como AEC o VAD.

debug_path

String

No

La ruta de almacenamiento del archivo de registro. Este parámetro solo surte efecto cuando save_log es true en initialize. En este caso, la ruta es obligatoria. El SDK conserva como máximo dos archivos de registro localmente.

save_wav

String

No

Indica si se debe guardar el audio de depuración en debug_path. Valor predeterminado: "false". Los valores válidos son "true" y "false". Este parámetro solo surte efecto cuando save_log es true, y debug_path también debe estar definido.

max_log_file_size

int

No

El tamaño máximo del archivo de registro en bytes. Este parámetro solo surte efecto cuando save_log es true. Predeterminado: 104857600 (100 × 1024 × 1024 bytes, o 100 MiB).

log_track_level

int

No

El nivel de filtro para los registros enviados a través de onNuiLogTrackCallback. Valor predeterminado: 2. Valores válidos: 0 (VERBOSE), 1 (DEBUG), 2 (INFO), 3 (WARNING), 4 (ERROR) y 5 (NONE). Un registro se devuelve solo cuando su nivel es mayor o igual tanto a log_track_level como al level pasado a initialize. Por ejemplo, si log_track_level es 2 (INFO) y level es 3 (WARNING), solo se devuelven registros de nivel WARNING y superior (valores mayores o iguales a 3).

aec_params

object

No

Configuración avanzada de AEC en el dispositivo. Este objeto solo surte efecto cuando audio_update_manually es "true".

aec_params.enable_aec

boolean

No

Indica si se debe habilitar AEC en el dispositivo. Si audio_update_manually es "true" y el SDK admite AEC en el dispositivo, AEC se habilita de forma predeterminada.

aec_params.save_audio

boolean

No

Indica si se debe guardar el audio procesado por el módulo AEC en el dispositivo. Si save_wav es "true" y debug_path está definido, esta función se habilita de forma predeterminada y el audio se guarda en debug_path.

aec_params.enable_aec_data_callback

boolean

No

Indica si se debe devolver el audio procesado por AEC a través de EVENT_AEC_DATA en onNuiAssistEventCallback. Predeterminado: false.

vad_params

object

No

Configuración avanzada de VAD en el dispositivo. Este objeto solo surte efecto cuando audio_update_manually es "true".

vad_params.enable_vad

boolean

No

Indica si se debe habilitar VAD en el dispositivo. Si audio_update_manually es "true" y el SDK admite VAD en el dispositivo, VAD se habilita de forma predeterminada.

vad_params.save_audio

boolean

No

Indica si se debe guardar el audio procesado por el módulo VAD en el dispositivo. Si save_wav es "true" y debug_path está definido, esta función se habilita de forma predeterminada y el audio se guarda en debug_path.

Parámetros de conversación de voz

Pase una cadena JSON en el argumento params de setParams.

Ejemplo: La siguiente cadena JSON no enumera todos los parámetros. Agregue los parámetros según sea necesario para su caso de uso.

{
  "service_type": 4,
  "nls_config": {
    "model": "qwen-audio-3.1-realtime-plus",
    "sr_format": "pcm"
  }
}
Parámetros
Parámetro de nivel superiorTipoObligatorioDescripción

service_type

int

Sí

Tipo de servicio de voz. Establezca este parámetro en 4 para conversaciones de voz en tiempo real.

nls_config

object

Sí

Configuración principal de la conversación de voz, incluida la selección del modelo y el comportamiento de la conversación.

nls_config.model

string

Sí

Nombre del modelo. Admite las series de modelos qwen-audio-3.1-realtime-plus, qwen-audio-3.0-realtime-plus y qwen-audio-3.0-realtime-flash.

nls_config.sr_format

string

Sí

Formato de audio de entrada. Solo se admite pcm. El formato predeterminado es PCM monoaural de 16 kHz y 16 bits.

nls_config.modalities

string

No

Una cadena que contiene una matriz de modalidades de salida. Valores válidos:

  • ["text"]: devuelve solo texto.
  • ["audio", "text"] (predeterminado): devuelve tanto audio como texto.

nls_config.voice

string

No

Voz TTS. El valor predeterminado es longanqian_v3.1 para 3.1 Plus y longanqian para 3.0 Plus/Flash. Este parámetro solo se puede establecer en la primera session.update; los valores posteriores se ignoran. Voces del sistema: longanqian, longanlingxin, longanlingxi, longanxiaoxin y longanlufeng. También puede especificar un voice_id clonado creado a través de la API de clonación de voz. Consulte Configuración de voz.

3.1 Plus también admite longanqian_v3.1, longanhuan_v3.1, longanlingxin_v3.1, longanfengyue_v3.1, xunanchuan_v3.1, beth_v3.1, betty_v3.1 y cally_v3.1.

nls_config.enable_speech_emotion

boolean

No

Indica si se debe habilitar la expresión emocional mejorada. Cuando está habilitada, la voz de respuesta presenta una variación emocional más notable. Valor predeterminado: true. Valores válidos: true y false.

nls_config.instructions

string

No

Instrucciones del sistema que definen el rol del modelo, el estilo de respuesta y las preferencias de comportamiento para toda la sesión.

nls_config.max_history_turns

int

No

Número máximo de turnos históricos de preguntas y respuestas permitidos en una solicitud. Valores válidos: de 1 a 50. Predeterminado: 20.

nls_config.tools

string

No

Una cadena que contiene una matriz de definiciones de herramientas de Function Calling. Después de configurar este parámetro, el modelo decide si llamar a una herramienta basándose en la entrada del usuario. Cada definición utiliza type (obligatorio y fijado en function) y un objeto function que contiene name (obligatorio), description (opcional) y parameters (opcional). Si una función no tiene argumentos, omita parameters.
Ejemplo:

[
  {
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Queries weather information for a specified city.",
      "parameters": {
        "type": "object",
        "properties": {
          "city": {
            "type": "string",
            "description": "City"
          }
        },
        "required": [
          "city"
        ]
      }
    }
  }
]

nls_config.turn_detection

string

No

Una cadena que contiene un objeto JSON para la detección de turnos. Si se omite, la sesión utiliza el modo pulsar para hablar, en el cual el audio se confirma y la inferencia se activa manualmente. Si se establece, se habilita el modo de conversación dúplex.

nls_config.turn_detection.type

string

No

Tipo de VAD. server_vad (predeterminado) detecta los límites del habla a partir de características acústicas y activa automáticamente la inferencia. smart_turn combina señales acústicas y semánticas; los sonidos sin contenido semántico, como las muletillas, no inician un turno ni interrumpen la reproducción del modelo.

nls_config.turn_detection.threshold

float

No

Sensibilidad de VAD. Este parámetro solo se aplica a server_vad y no tiene efecto en smart_turn. Los valores más bajos hacen que el VAD sea más sensible a sonidos tenues y ruido de fondo; los valores más altos requieren un habla más clara y fuerte. Rango válido: [-1.0, 1.0]. Valor predeterminado: 0.5.

nls_config.turn_detection.silence_duration_ms

int

No

Duración mínima de silencio después del habla, en milisegundos, antes de que se active la respuesta del modelo. Este parámetro solo se aplica a server_vad y no tiene efecto en smart_turn. Los valores más bajos reducen la latencia, pero pueden activarse con pausas breves. Rango válido: [200, 6000]. Valor predeterminado: 800. Recomendado para conversación: de 400 a 800.

nls_config.turn_detection.voiceprint_audio_urls

string

No

Una cadena que contiene una matriz de URL de audio pregrabado de acceso público para el hablante objetivo. Este parámetro solo se aplica a smart_turn. En conversaciones dúplex, ayuda al modelo a centrarse en el hablante objetivo e ignorar a otros hablantes y el ruido de fondo. Se admiten hasta cinco URL. El audio debe ser PCM o WAV de 16 kHz.

API clave

NativeNui

initialize

Inicializa una instancia del SDK de conversación de voz. El SDK utiliza el patrón singleton. No lo inicialice nuevamente antes de llamar a release.

Este método puede bloquearse. Llámelo en un hilo que no sea de UI.

Firma del método
public initialize(
  callback: INativeNuiCallback,
  parameters: string,
  level: number,
  save_log: boolean = false
): number
Parámetros
ParámetroTipoDescripción

callback

INativeNuiCallback

Una implementación de la interfaz de devolución de llamada de eventos y datos.

parameters

string

Una cadena JSON que contiene parámetros de autenticación, conexión y depuración. Consulte Parámetros de conexión y control.

level

number

Controla el nivel de impresión de los propios registros del SDK.

save_log

boolean

Indica si se deben guardar los registros localmente. Si se establece en true, especifique la ruta utilizando debug_path en los parámetros de conexión y control. También puede establecer el tamaño del archivo utilizando max_log_file_size.

setParams

Establece los parámetros de conversación de voz en formato JSON. Llame a este método antes de startDialog.

Firma del método
public setParams(params: string): number
Parámetros
ParámetroTipoDescripción

params

string

Parámetros de conversación de voz.

startDialog

Inicia la conversación.

Firma del método
public startDialog(vad_mode: Constants.VadMode, dialog_params: string): number
Parámetros
ParámetroTipoDescripción

vad_mode

Constants.VadMode

Modo VAD. Fijo en Constants.VadMode.TYPE_P2T.

dialog_params

string

Si apikey en los parámetros de conexión y control es una clave API temporal, actualícela aquí después de que caduque.
Formato JSON:

{
  "apikey": "st-****"
}

stopDialog

Finaliza la conversación. Después de llamar a este método, el servidor devuelve el resultado final de la conversación y termina la tarea.

Firma del método
public stopDialog(): number

cancelDialog

Finaliza la conversación inmediatamente. Después de llamar a este método, la tarea finaliza sin esperar a que el servidor devuelva el resultado final de la conversación.

Firma del método
public cancelDialog(): number

dialogAction

Envía un comando de acción de conversación durante una interacción para actualizar el comportamiento en tiempo de ejecución, como el contexto de la conversación.

Firma del método
public dialogAction(params: string): number
Parámetros
ParámetroTipoDescripción

params

string

Una cadena JSON utilizada para actualizar el comportamiento en tiempo de ejecución, como el contexto de la conversación.

params.type

String

Establecido en "action".

params.command

String

Comando de tiempo de ejecución. Valores válidos:

  • function_call: actualiza una solicitud de llamada de función.
  • play_start: cuando se utiliza AEC en el dispositivo, notifica al SDK que la reproducción de audio ha comenzado.
  • play_over: cuando se utiliza AEC en el dispositivo, notifica al SDK que la reproducción de audio ha terminado.

params.context

String

Actualización de solicitud de llamada de función. Se usa cuando command es "function_call".

params.context.type

String

Tipo de evento. Este parámetro es obligatorio cuando command es "function_call". conversation.item.create inserta un elemento de conversación para contexto histórico, texto complementario o resultado de una herramienta. Después de enviar conversation.item.create, utilice response.create para activar otra inferencia.

params.context.item

object

Requerido cuando params.context.type es conversation.item.create. El elemento de conversación a crear.

params.context.response

object

Opcional cuando params.context.type es response.create. Anula los valores predeterminados de la sesión para esta inferencia. Si se omite, se utiliza la configuración actual de la sesión.

Parámetros de context.item:

ParámetroTipoDescripción

id

String

ID de elemento de conversación único opcional. Si se omite, el servidor genera uno. Se devuelve un error si el ID especificado ya existe.

type

String

Tipo de elemento obligatorio. Valores válidos:

  • message: un mensaje normal.
  • function_call: una solicitud de llamada de función. Este tipo suele ser generado por el servidor. El cliente también puede utilizarlo para agregar contexto histórico.
  • function_call_output: resultado de ejecución de una herramienta. Después de recibir un function_call, el cliente ejecuta la herramienta y utiliza este tipo para devolver el resultado.

role

String

Requerido para message. Valores válidos: system, user y assistant.

content

array

Obligatorio para message. Cada elemento contiene un type y el campo de datos asociado. system admite input_text con text; user admite input_text con text y input_audio con audio codificado en Base64; assistant admite output_text con text.

call_id

String

Requerido para function_call y function_call_output. El ID único que asocia una solicitud de llamada de función con su resultado.

name

String

Requerido para function_call. El nombre de la función a llamar.

arguments

String

Requerido para function_call. Argumentos de la función como una cadena JSON.

output

String

Requerido para function_call_output. Resultado de ejecución de la herramienta como una cadena JSON.

Parámetros de context.response:

ParámetroTipoDescripción

modalities

array

Modalidades de salida. ["text"] devuelve solo texto. ["audio", "text"] (predeterminado) devuelve tanto audio como texto.

voice

string

Anula la voz TTS para esta inferencia.

Ejemplo:

{
  "type": "action",
  "command": "function_call",
  "context": {
    "item": {
      "call_id": "call_xxxx",
      "output": "{\"city\":\"Hangzhou\",\"condition\":\"sunny\",\"temperature\":18}",
      "type": "function_call_output"
    },
    "type": "conversation.item.create"
  }
}

{
  "type": "action",
  "command": "function_call",
  "context": {
    "response": {
      "modalities": ["text", "audio"]
    },
    "type": "response.create"
  }
}

updateAudio

Cuando audio_update_manually se establece en "true", los datos de grabación ya no se suministran a través de onNuiNeedAudioData. Utilice este método para enviar activamente los datos en su lugar.

Firma del método
public updateAudio(data: ArrayBuffer, first_pack: boolean): number
Parámetros
ParámetroTipoDescripción

data

ArrayBuffer

Datos de audio a enviar (PCM).

first_pack

boolean

Indica si este es el primer paquete de audio. El SDK calcula el recuento de bytes a partir de data.byteLength.

pushReferenceData (corresponde a updateRefAudio en Android)

Cuando audio_update_manually se establece en "true" y la AEC en el dispositivo está habilitada, utilice este método para enviar el audio reproducido por el reproductor como señal de referencia.

Firma del método
public pushReferenceData(data: ArrayBuffer, first_pack: boolean): number
Parámetros
ParámetroTipoDescripción

data

ArrayBuffer

Datos de audio a enviar (PCM).

first_pack

boolean

Indica si este es el primer paquete de audio. El SDK calcula el recuento de bytes a partir de data.byteLength.

release

Libera todos los recursos internos del SDK. La instancia del SDK deja de estar disponible después de esta llamada. Para volver a utilizar el SDK, llame a initialize para reinicializarlo.

Firma del método
public release(): number

GetVersion

Devuelve información sobre la versión actual del SDK.

Firma del método
public GetVersion(): string
Valor de retorno

Información sobre la versión actual del SDK.

INativeNuiCallback: callbacks de escucha

onNuiEventCallback: escucha de información de eventos

Firma del método
onNuiEventCallback: (
  event: Constants.NuiEvent,
  resultCode: number,
  arg2: number,
  kwsResult: KwsResult,
  asrResult: AsrResult
) => void;
Parámetros
ParámetroTipoDescripción

event

Constants.NuiEvent

Evento de callback.

resultCode

number

Válido solo cuando ocurre el evento EVENT_ASR_ERROR.

arg2

number

Parámetro reservado.

asrResult

AsrResult

Resultado del reconocimiento de voz.

kwsResult

KwsResult

Resultado de activación por voz. No necesita utilizar este parámetro.

onNuiAudioStateChanged: escucha del estado de audio

El SDK utiliza esta devolución de llamada para notificar a la aplicación cuándo iniciar o detener la grabación.

Firma del método
onNuiAudioStateChanged: (state: Constants.AudioState) => void

Valores de AudioState

EstadoDescripción

STATE_OPEN

La interacción ha comenzado. Puede abrir el dispositivo de grabación e iniciar la grabación.

STATE_PAUSE

La interacción se ha detenido. Puede detener la grabación.

STATE_CLOSE

La instancia del SDK ha sido liberada. Puede cerrar completamente el dispositivo de grabación.

onNuiAudioRMSChanged: escucha del volumen de grabación

Escucha el volumen de grabación, que se puede mostrar en la interfaz de usuario.

Firma del método
onNuiAudioRMSChanged: (val: number) => number
Parámetros
ParámetroTipoDescripción

val

number

Volumen de grabación.

onNuiNeedAudioData: suministro de datos de audio

Después de que comienza la conversación, esta devolución de llamada se activa continuamente. Suministre los datos de audio a procesar en esta devolución de llamada. No necesita utilizar esta devolución de llamada cuando audio_update_manually se establece en "true".

Firma del método
onNuiNeedAudioData: (buffer: ArrayBuffer) => number
Parámetros
ParámetroTipoDescripción

buffer

ArrayBuffer

Datos de audio a suministrar. El SDK utiliza buffer.byteLength como el recuento de bytes solicitado.

Valor de retorno

El número real de bytes suministrados.

onNuiAssistEventCallback: recepción de datos e información auxiliar

Recibe eventos auxiliares internos del SDK y datos relacionados.

Firma del método
onNuiAssistEventCallback?: (
  event: Constants.NuiEvent,
  info: string,
  infoLen: number,
  data: ArrayBuffer
) => void;
Parámetros
ParámetroTipoDescripción

event

Constants.NuiEvent

Evento NuiEvent.

info

string

Información adicional, generalmente una cadena JSON.

infoLen

number

Longitud de la información adicional.

data

ArrayBuffer

Datos binarios adicionales, como audio TTS devuelto por el modelo.

Nota: Esta devolución de llamada es opcional (?) en HarmonyOS. Omítala si no necesita la información.

onNuiLogTrackCallback: escucha de registros de seguimiento

Recibe registros internos detallados del SDK para la resolución de problemas y depuración.

onNuiLogTrackCallback: (level: Constants.LogLevel, log: string) => void

NuiEvent: tipos de eventos

En el SDK de HarmonyOS, los tipos de eventos se definen mediante la enumeración Constants.NuiEvent. La siguiente tabla enumera los eventos relacionados con la conversación de voz en tiempo real:

EventoDescripción

EVENT_TRANSCRIBER_STARTED

La tarea se inició correctamente.

EVENT_VAD_START

Se activa inmediatamente después de que comienza la tarea. Esto no significa que se haya detectado el inicio del habla.

EVENT_VAD_END

Se detectó el final del habla.

EVENT_ASR_PARTIAL_RESULT

Un resultado intermedio del reconocimiento de voz.

EVENT_ASR_RESULT

Un resultado completo de reconocimiento de voz.

EVENT_ASR_ERROR

Ocurrió un error durante la conversación de voz.

EVENT_MIC_ERROR

Se activa cuando no se reciben datos de audio durante dos segundos consecutivos.

EVENT_SENTENCE_START

Se detectó el inicio de una oración.

EVENT_SENTENCE_END

Se detectó el final de una oración y se devolvió un resultado de reconocimiento completo.

EVENT_TRANSCRIBER_COMPLETE

La conversación de voz finalizó.

EVENT_AUDIO_TRANSCRIPTION

Un evento de transcripción de texto incremental para la salida de audio. Los segmentos de transcripción se devuelven en modo streaming.

EVENT_AUDIO_TRANSCRIPTION_COMPLETED

La transcripción de la salida de audio está completa.

EVENT_OTHER_RESULT

Otra información de eventos, como un resultado de Function Calling.

EVENT_ASR_TTS_START

El modelo comenzó a devolver audio TTS.

EVENT_ASR_TTS_DATA

Audio TTS devuelto por el modelo.

EVENT_ASR_TTS_COMPLETE

El modelo terminó de devolver audio TTS.

EVENT_RESULT_TRANSLATED

Un resultado de traducción intermedio.

EVENT_RESULT_TRANSLATED_END

La salida del resultado de traducción está completa.

EVENT_AEC_DATA

Datos de audio procesados por AEC.