QwenCloudBRASIL
Tradução de apoio para consulta. Código e identificadores técnicos preservados. Consultar referência original ↗

Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR gravando iOS SDK

Transcrição de arquivos iOS SDK para Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR

Guia do usuário: Reconhecimento de fala em tempo não real. Para requisitos de entrada, como formatos de áudio suportados, limites de tamanho de arquivo e limites de duração, consulte Especificações de áudio.

Início rápido

  1. Obtenha uma chave de API:Obtenha uma chave de API

  2. Baixe o SDK e execute o código de exemplo:

    • Baixe o pacote SDK mais recente.
    • Descompacte o pacote ZIP e adicione nuisdk.framework incluído ao seu projeto.
    • Em Fases de construção → Vincular binário a bibliotecas, adicione nuisdk.xcframework.
    • Em Geral → Estruturas, Bibliotecas e Conteúdo Incorporado, defina nuisdk.xcframework para incorporar e assinar.
    • Abra o projeto de amostra no Xcode. O código de exemplo está localizado em DashFunAsrFileTranscriberViewController.m. Substitua a chave API para experimentar o recurso.

Etapas de chamada

Synchronous mode

1. Inicialize o SDK.
2. Configure os parâmetros relevantes para seu caso de uso.
3. Definir `async_request` para `false` e chame [nui\_file\_trans\_start](#nui-file-trans-start) para enviar uma solicitação de reconhecimento de fala em tempo não real e aguardar o resultado.
4. No [onFileTransEventCallback](#onfiletranseventcallback-monitor-events-and-speech-recognition-results) retorno de chamada, ouça o `EVENT_FILE_TRANS_RESULT` evento para obter o resultado final do reconhecimento.
5. Ligue para [nui\_release](#nui-release) para liberar os recursos do SDK.

Asynchronous mode

1. Inicialize o SDK.
2. Configure os parâmetros relevantes para seu caso de uso.
3. Definir `async_request` para `true` e chame [nui\_file\_trans\_start](#nui-file-trans-start) para enviar uma solicitação de reconhecimento de fala em tempo não real.
4. Chame [nui\_file\_trans\_query](#nui-file-trans-query) para consultar ativamente o progresso ou resultado do reconhecimento.
5. No [onFileTransEventCallback](#onfiletranseventcallback-monitor-events-and-speech-recognition-results) retorno de chamada, ouça o `EVENT_FILE_TRANS_QUERY_RESULT` evento para obter o resultado da consulta atual.
6. No [onFileTransEventCallback](#onfiletranseventcallback-monitor-events-and-speech-recognition-results) retorno de chamada, ouça o `EVENT_FILE_TRANS_RESULT` evento para obter o resultado final do reconhecimento.
7. Ligue para [nui\_release](#nui-release) para liberar os recursos do SDK.

Parâmetros de solicitação

Parâmetros de conexão e controle

Configure esses parâmetros passando uma string JSON no arquivo parameters argumento do nui_initialize interface.

{
    "url": "wss://maas.qwencloudapi.com/api/v1/services/audio/asr/transcription",
    "apikey": "st-****",
    "device_id": "my_device_id",
    "service_mode": "1"
}
Parâmetro Tipo Obrigatório Descrição
url String Sim O ponto final. Isto é fixado em wss://maas.qwencloudapi.com/api/v1/services/audio/asr/transcription.
apikey String Sim A chave da API.
service_mode String Sim O modo de execução. Corrigido para "1" para reconhecimento de fala em tempo não real.
device_id String Sim Uma string exclusiva que identifica o usuário final. Defina-o como um ID de usuário no aplicativo ou um identificador de dispositivo gerado pelo cliente. Esse ID é usado principalmente para rastreamento de log e solução de problemas.
debug_path String Não O caminho de armazenamento do arquivo de log.
Este parâmetro entra em vigor somente quando save_log está definido para YES quando você chama o nui_initialize interface. Nesse caso, você deve definir o caminho do arquivo de log; caso contrário, um erro será retornado.
No máximo dois arquivos de log são mantidos localmente.
max_log_file_size int Não O tamanho máximo do arquivo de log, em bytes.
Este parâmetro entra em vigor somente quando save_log está definido para YES quando você chama o nui_initialize interface.
Valor padrão: 104857600 (100 * 1024 * 1024 bytes, ou seja, 100 MiB).
log_track_level int Não Controla o nível de filtro do conteúdo do log enviado por meio do retorno de chamada de log (onFileTransLogTrackCallback).
Valor padrão: 2.
Valores válidos:
<ul><li>0: LOG_LEVEL_VERBOSE</li><li>1: LOG_LEVEL_DEBUG</li><li>2: LOG_LEVEL_INFO</li><li>3: LOG_LEVEL_WARNING</li><li>4: LOG_LEVEL_ERROR</li><li>5: LOG_LEVEL_NONE (desativa este recurso)</li></ul>
Nota: log_track_level e level (definido através do nui_initialize interface) juntos determinam quais logs serão enviados para o retorno de chamada. O valor do nível de um log deve ser maior ou igual a ambos log_track_level e level antes de ser enviado para o retorno de chamada. Por exemplo, se log_track_level está definido como 2 (INFO) e level estiver definido como 3 (WARNING), somente logs em WARNING ou superior (valor >= 3) serão enviados para o retorno de chamada.

Parâmetros de efeito de reconhecimento de fala

Configure todos os parâmetros de reconhecimento de fala através do nui_file_trans_start interface.

{
    "apikey": "st-****",
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}
Parâmetro Tipo Obrigatório Descrição
file_urls array[string] Sim Uma lista de URLs dos arquivos de áudio ou vídeo a serem transcritos. HTTP e HTTPS são suportados. Uma única solicitação oferece suporte a apenas um URL. Para requisitos de entrada, como formatos de áudio suportados, limites de tamanho de arquivo e limites de duração, consulte Especificações de áudio.
Se a gravação for armazenada no Alibaba Cloud OSS, a API RESTful suporta URLs temporários prefixados com oss://, enquanto o SDK não oferece suporte oss://URLs temporários com prefixo.
<ul><li>Um URL temporário é válido por 48 horas e não pode ser usado após expirar. Não use em produção.</li><li>A interface de upload de credenciais tem taxa limitada a 100 QPS e não pode ser ampliada. Não use-o em cenários de produção, alta simultaneidade ou testes de carga.</li><li>Para produção, use armazenamento estável, como o Alibaba Cloud OSS, para manter os arquivos disponíveis a longo prazo e evitar a limitação de taxas.</li><li>Se um URL de arquivo de áudio definido como um URL público temporário de OSS estiver inacessível, defina X-DashScope-OssResourceResolve para enable no cabeçalho da solicitação (não recomendado).</li></ul>
O SDK não oferece suporte à configuração de cabeçalhos de solicitação.
async_request boolean Não Se a solicitação de reconhecimento de fala é assíncrona.
Valor padrão: false.
Valores válidos:
<ul><li>verdadeiro: solicitação assíncrona</li><li>falso: solicitação síncrona</li></ul>
apikey string Não Se o apikey em Parâmetros de conexão e controle é uma chave de API temporária, você pode atualizá-lo aqui para evitar que expire.
nls_config object Sim O objeto principal de configuração de reconhecimento de fala. Ele contém parâmetros importantes, como seleção de modelo e controles de efeito de reconhecimento.
nls_config.model string Sim O nome do modelo. Os valores suportados incluem o Qwen-Audio-3.0-ASR-Flash-Filetrans e Fun-ASR famílias modelo. Para obter detalhes, consulte Modelos e regiões compatíveis.
nls_config.special_word_filter object Não As palavras sensíveis a serem processadas durante o reconhecimento de fala. Você pode definir um método de tratamento diferente para cada palavra sensível. Para obter detalhes, consulte Filtragem de palavras sensíveis.
nls_config.channel_id array[integer] Não O índice das trilhas de áudio a serem reconhecidas em um arquivo de áudio multitrilha. O índice começa em 0. Por exemplo, [0] reconhece a primeira faixa e [0, 1] reconhece a primeira e a segunda faixas ao mesmo tempo. Se você omitir este parâmetro, somente a primeira faixa será processada.
Cada faixa especificada é cobrada de forma independente. Por exemplo, solicitar [0, 1] para um único arquivo incorre em duas cobranças separadas.

Valor padrão: [0]. | | nls_config.diarization_enabled | boolean | Não | Se deve ativar a diarização do orador. Desativado por padrão. Aplica-se apenas ao áudio mono. O áudio multicanal não suporta diarização de alto-falante. Quando ativado, o resultado do reconhecimento inclui um speaker_id campo que distingue diferentes falantes. Quando a diarização do alto-falante estiver ativada, mantenha a duração do áudio em 2 horas. Caso contrário, o reconhecimento poderá falhar ou expirar.

Valor padrão: falso. Para um exemplo de speaker_id, consulte Descrição do resultado de reconhecimento. | | nls_config.speaker_count | integer | Não | Entra em vigor somente quando a diarização do alto-falante está habilitada (diarization_enabled está definido para true).

Um valor de referência para o número de alto-falantes. O intervalo válido é um número inteiro de 2 a 100 (inclusive). Por padrão, o número de alto-falantes é detectado automaticamente. Se você definir esse valor, ele apenas orientará o algoritmo para gerar a contagem especificada quando possível e não garantirá essa contagem exata. Nenhum valor padrão. | | nls_config.vocabulary_id | string | Não | O ID de uma lista de hot word pré-compilada. Gere esse ID antecipadamente chamando a API de criação de lista de palavras quentes. Passe o ID durante o reconhecimento para usar as palavras quentes da lista. Adequado para cenários onde o vocabulário é conhecido e relativamente estável, e onde é necessário reutilizar a mesma lista de palavras em solicitações. Para obter detalhes de uso, consulte Hotwords pré-compiladas. | | nls_config.input_context | array | Não | Uma lista de mensagens contendo contexto de conversação opcional para melhorar a precisão do reconhecimento. O contexto ajuda a melhorar o reconhecimento de termos específicos de domínio. Para uso, consulte Aprimoramento de contexto. Você pode incluir até 5 mensagens de cada tipo de contexto: input_text e text. Se este limite for excedido, apenas as 5 mensagens mais recentes de cada tipo serão retidas. O comprimento combinado do text campos no user e assistant as mensagens em cada turno não devem exceder 400 caracteres. Cada caractere conta como 1. O excesso de texto é truncado no final.

Ao incluir contexto, organize messages por turno de conversa. Em cada turno, o user mensagem (input_text tipo) deve preceder o correspondente assistant mensagem (text tipo). O user mensagem contendo input_audio deve ser a última mensagem do messages matriz.

Veja o exemplo abaixo desta tabela. | | nls_config.instant_vocabulary | object | Não | Hotwords instantâneas, passadas como pares de valores-chave. Cada chave é o texto da hotword (string), e cada valor é seu peso (integer). Nenhuma lista de hotwords pré-compilada é necessária. Use este parâmetro para hotwords temporárias em nível de sessão. Os pesos válidos são números inteiros de 1 a 5 ou 50. Um peso mais alto de 1 a 5 aumenta a probabilidade de o modelo gerar a hotword. Um peso de 50 define uma super hotword e melhora significativamente a recuperação. Você pode especificar até 50 super hotwords. Se você também configurar hotwords pré-compiladas, os dois conjuntos serão mesclados. Se o conjunto mesclado exceder 2.000 hotwords, 2.000 serão selecionadas aleatoriamente. Para uso, consulte Hotwords instantâneas. Somente qwen-audio-3.0-asr-flash-filetrans suporta hotwords instantâneas.

Veja o exemplo abaixo desta tabela. | | nls_config.language_hints | array[string] | Não | Os códigos de idioma a serem reconhecidos. Se você não conseguir determinar o idioma antecipadamente, deixe-o sem definição e o modelo detectará o idioma automaticamente. Para Qwen-Audio-3.0-ASR-Flash-Filetrans modelos, você pode configurar até 4 valores; quaisquer valores além dos 4 primeiros são ignorados. Para Fun-ASR modelos, você pode definir apenas 1 valor; se você definir vários, apenas o primeiro terá efeito.

Clique para ver os códigos de idioma aceitos

<ul><li>qwen-audio-3.0-asr-flash-filetrans, fun-asr:</li></ul> <ul><li>zh: chinês</li><li>pt: Inglês</li><li>sim: japonês</li><li>ko: Coreano</li><li>vi: vietnamita</li><li>º: Tailandês</li><li>id: indonésio</li><li>senhora: Malaio</li><li>tl: filipino</li><li>oi: hindi</li><li>ar: árabe</li><li>fr: francês</li><li>de: alemão</li><li>ex: Espanhol</li><li>pt: Português</li><li>ru: Russo</li><li>isso: italiano</li><li>nl: Holandês</li><li>sv: Sueco</li><li>da: dinamarquês</li><li>fi: Finlandês</li><li>não: norueguês</li><li>el: Grego</li><li>pl: Polonês</li><li>cs: Tcheco</li><li>hu: Húngaro</li><li>ro: romeno</li><li>bg: búlgaro</li><li>hr: Croata</li><li>sk: Eslovaco</li></ul> |

nls_config.input_context exemplo:

[
  {
    "role": "user",
    "content": [
      {
        "type": "input_text",
        "text": "你好啊,我是通义千问,有什么可以帮助你的?"
      }
    ]
  }
]

nls_config.instant_vocabulary exemplo:

{
  "张三": 5,
  "李四": 5
}

Interfaces principais

NeoNui

nui_initialize

Inicializa a instância do SDK de reconhecimento de fala. O SDK é um singleton. Não inicialize-o novamente antes de chamar nui_release.

-(NuiResultCode) nui_initialize:(const char *)parameters
                       logLevel:(NuiSdkLogLevel)level
                        saveLog:(BOOL)save_log;
Parâmetro Tipo Descrição
parameters char* Uma string JSON que contém os parâmetros de autenticação, conexão e depuração. Consulte Parâmetros de conexão e controle.
level NuiSdkLogLevel Controla o nível de impressão dos próprios logs do SDK.
save_log BOOL Se os logs devem ser salvos localmente. Se definido para YES, você deve especificar um caminho através debug_path em Parâmetros de conexão e controle e você pode definir o tamanho do arquivo por meio max_log_file_size.

####nui_set_params

Use esta interface para definir ou atualizar o nls_config parâmetro de forma independente. Se você fornecer todos os parâmetros de uma vez em nui_file_trans_start, você não precisa chamar esse método.

-(NuiResultCode) nui_set_params:(const char *)params;
Parâmetro Tipo Descrição
params char* O nls_config parâmetro em Parâmetros de efeito de reconhecimento de fala. Parâmetros diferentes de nls_config não pode ser definido através deste método.
Veja o exemplo abaixo desta tabela.

params exemplo:

{
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

nui_file_trans_start

Inicia o reconhecimento.

-(NuiResultCode) nui_file_trans_start:(const char *)params
                               taskId:(char *)task_id;
Parâmetro Tipo Descrição
params char* Parâmetros de efeito de reconhecimento de fala.
Veja o exemplo abaixo desta tabela.
task_id char* O ID da tarefa. O SDK gera uma string aleatória internamente e retorna o task_id quando esta interface é chamada com sucesso.

params exemplo:

{
    "file_urls": [
        "{YOUR_AUDIO_URL}"
    ],
    "async_request": false,
    "nls_config": {
        "model":"qwen-audio-3.0-asr-flash-filetrans",
        "diarization_enabled": false
    }
}

nui_file_trans_query

Use esta interface para consultar ativamente o status atual e o resultado de uma tarefa assíncrona. Após uma chamada bem-sucedida, o resultado é retornado através do EVENT_FILE_TRANS_QUERY_RESULT evento no onFileTransEventCallback retorno de chamada.

Obtenha o task_id passado para este método a partir do EVENT_FILE_TRANS_UPLOADED evento.

-(NuiResultCode) nui_file_trans_query:(const char *)task_id;
Parâmetro Tipo Descrição
task_id char* O ID da tarefa a ser consultada, obtido do EVENT_FILE_TRANS_UPLOADED evento.

nui_file_trans_cancel

Cancela a tarefa atual imediatamente.

-(NuiResultCode) nui_file_trans_cancel:(const char *)task_id;
Parâmetro Tipo Descrição
task_id char* O ID da tarefa a ser cancelada, obtido do EVENT_FILE_TRANS_UPLOADED evento.

nui_lançamento

Libera todos os recursos internos do SDK e encerra à força todas as tarefas em andamento. Depois de chamar esse método, a instância do SDK fica indisponível. Para usá-lo novamente, você deve chamar nui_initialize novamente para inicializá-lo.

-(NuiResultCode) nui_release;

nui_get_version

Obtém as informações da versão atual do SDK.

-(const char*) nui_get_version;

NeoNuiSdkDelegate: monitora retornos de chamada

onFileTransEventCallback: monitore eventos e resultados de reconhecimento de fala

-(void) onFileTransEventCallback:(NuiCallbackEvent)nuiEvent
                       asrResult:(const char *)asr_result
                          taskId:(const char *)task_id
                        ifFinish:(BOOL)finish
                         retCode:(int)code;
Parâmetro Tipo Descrição
nuiEvent NuiCallbackEvent O evento de retorno de chamada.
asr_result char* O resultado do reconhecimento de fala.
task_id char* O ID da tarefa.
finish BOOL Indica se esta rodada de reconhecimento terminou.
code int O código de erro. É válido quando ocorre um evento EVENT_ASR_ERROR. Consulte Referência do código de erro.

onFileTransLogTrackCallback: monitorar logs de rastreamento

Use esse retorno de chamada para receber logs internos detalhados do SDK para solução de problemas e depuração.

-(void)onFileTransLogTrackCallback:(NuiSdkLogLevel)level
                        logMessage:(const char *)log;

NuiCallbackEvent: tipos de eventos

Evento Descrição
EVENTO_FILE_TRANS_CONNECTED Conectado ao serviço com sucesso.
EVENTO_ARQUIVO_TRANS_UPLOADED O arquivo de áudio a ser reconhecido foi carregado com sucesso. Agora você pode obter o task_id da tarefa atual.
EVENTO_ARQUIVO_TRANS_QUERY_RESULT O resultado da tarefa de consulta.
EVENTO_ARQUIVO_TRANS_RESULT O resultado final do reconhecimento.
EVENTO_ASR_ERRO Ocorreu um erro durante o reconhecimento de fala.