Este guia orienta você pelo SDK iOS de reconhecimento de fala não em tempo real Qwen-Audio-ASR-Filetrans, para que você possa converter áudio em texto.
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
-
Obtenha uma chave de API:Obter uma chave de API
-
Baixe o SDK e execute o código de exemplo:
- Baixe o pacote mais recente do SDK.
- Descompacte o pacote ZIP e adicione o nuisdk.framework incluído ao seu projeto.
- Em Build Phases → Link Binary With Libraries, adicione
nuisdk.xcframework. - Em General → Frameworks, Libraries, and Embedded Content, defina
nuisdk.xcframeworkcomo Embed & Sign. - Abra o projeto de exemplo no Xcode. O código de exemplo está localizado em
DashFunAsrFileTranscriberViewController.m. Substitua a API Key para testar o recurso.
Etapas de chamada
Modo síncrono
- Inicialize o SDK.
- Configure os parâmetros relevantes para o seu caso de uso.
- Defina
async_requestcomofalsee chamenui_file_trans_startpara enviar uma solicitação de reconhecimento de fala não em tempo real e aguardar o resultado. - No callback
onFileTransEventCallback, escute o eventoEVENT_FILE_TRANS_RESULTpara obter o resultado final do reconhecimento. - Chame
nui_releasepara liberar os recursos do SDK.
Modo assíncrono
- Inicialize o SDK.
- Configure os parâmetros relevantes para o seu caso de uso.
- Defina
async_requestcomotruee chamenui_file_trans_startpara enviar uma solicitação de reconhecimento de fala não em tempo real. - Chame
nui_file_trans_querypara consultar ativamente o progresso ou o resultado do reconhecimento. - No callback
onFileTransEventCallback, escute o eventoEVENT_FILE_TRANS_QUERY_RESULTpara obter o resultado da consulta atual. - No callback
onFileTransEventCallback, escute o eventoEVENT_FILE_TRANS_RESULTpara obter o resultado final do reconhecimento. - Chame
nui_releasepara 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 argumento parameters da interface nui_initialize.
Parâmetros de exemplo
A seguir está uma string JSON de exemplo. Nem todos os parâmetros estão listados. Adicione os que você precisa ao escrever seu código:
{
"url": "wss://dashscope.aliyuncs.com/api/v1/services/audio/asr/transcription",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
Descrições dos parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| Sim | Endpoints de serviço:
Substitua |
|
| Sim | A chave de API. |
|
| Sim | O modo de execução. Fixado em |
|
| Sim | Uma string exclusiva que identifica o usuário final. Defina-a como um ID de usuário no aplicativo ou um identificador de dispositivo gerado pelo cliente. Este ID é usado principalmente para rastreamento de logs e solução de problemas. |
|
| Não | O caminho de armazenamento para o arquivo de log. Este parâmetro só entra em vigor quando No máximo dois arquivos de log são mantidos localmente. |
|
| Não | O tamanho máximo do arquivo de log, em bytes. Este parâmetro só entra em vigor quando Valor padrão: 104857600 (100 * 1024 * 1024 bytes, ou seja, 100 MiB). |
|
| Não | Controla o nível de filtro do conteúdo de log enviado por meio do callback de log ( Valor padrão: 2. Valores válidos:
Nota: |
Parâmetros de efeito de reconhecimento de fala
Configure todos os parâmetros de reconhecimento de fala por meio da interface nui_file_trans_start.
Parâmetros de exemplo
A seguir está uma string JSON de exemplo. Nem todos os parâmetros estão listados. Adicione os que você precisa ao escrever seu código:
{
"apikey": "st-****",
"file_urls": [
"{YOUR_AUDIO_URL}"
],
"async_request": false,
"nls_config": {
"model":"qwen-audio-3.0-asr-flash-filetrans",
"diarization_enabled": false
}
}
Descrições dos parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| 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 suporta apenas uma 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 estiver armazenada no Alibaba Cloud OSS, a API RESTful suporta URLs temporárias com o prefixo Importante
|
|
| Não | Se a solicitação de reconhecimento de fala é assíncrona. Valor padrão: Valores válidos:
|
|
| Não | Se o |
|
| Sim | O objeto de configuração principal do reconhecimento de fala. Ele contém parâmetros chave, como seleção de modelo e controles de efeito de reconhecimento. |
|
| Sim | O nome do modelo. |
|
| 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. |
|
| Não | O índice das faixas de áudio a serem reconhecidas em um arquivo de áudio com várias faixas. 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, apenas a primeira faixa será processada. ImportanteCada 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]. |
|
| Não | Se deve ativar a diarização de falantes. Desativado por padrão. Aplica-se apenas a áudio mono. Áudio multicanal não suporta diarização de falantes. Quando ativado, o resultado do reconhecimento inclui um campo ObservaçãoQuando a diarização de falantes está ativada, mantenha a duração do áudio dentro de 2 horas. Caso contrário, o reconhecimento pode falhar ou atingir o tempo limite. Valor padrão: false. Para um exemplo de |
|
| Não | ImportanteEntra em vigor apenas quando a diarização de falantes está ativada ( Um valor de referência para o número de falantes. O intervalo válido é um número inteiro de 2 a 100 (inclusivo). Por padrão, o número de falantes é detectado automaticamente. Se você definir este valor, ele apenas orientará o algoritmo a gerar a contagem especificada quando possível, e não garante essa contagem exata. Sem valor padrão. |
|
| Não | O ID de uma lista de palavras-chave pré-compilada. Gere este ID antecipadamente chamando a API de criação de lista de palavras-chave. Passe o ID durante o reconhecimento para usar as palavras-chave na lista. Adequado para cenários onde o vocabulário é conhecido e relativamente estável, e onde você precisa reutilizar a mesma lista de palavras em várias solicitações. Para detalhes de uso, consulte Palavras-chave pré-compiladas. |
|
| Não | Uma lista de mensagens contendo contexto de conversa opcional para melhorar a precisão do reconhecimento. ImportanteO contexto ajuda a melhorar o reconhecimento de termos específicos do domínio. Para uso, consulte Aprimoramento de contexto. Você pode incluir até 5 mensagens de cada tipo de contexto: ImportanteAo incluir contexto, organize |
|
| Não | Palavras-chave instantâneas, passadas como pares chave-valor. Cada chave é o texto da palavra-chave ( Os pesos válidos são inteiros de 1 a 5, ou 50. Um peso maior de 1 a 5 torna mais provável que o modelo gere a palavra-chave. Um peso de 50 define uma super palavra-chave e melhora significativamente a taxa de recall. Você pode especificar até 50 super palavras-chave. Se você também configurar palavras-chave pré-compiladas, os dois conjuntos serão mesclados. Se o conjunto mesclado exceder 2000 palavras-chave, 2000 serão selecionadas aleatoriamente. Para uso, consulte Palavras-chave instantâneas. ImportantePara modelos e limites que se aplicam a palavras-chave instantâneas, consulte Palavras-chave instantâneas. |
|
| Não | Os códigos de idioma a serem reconhecidos. Se você não puder determinar o idioma com antecedência, deixe-o indefinido e o modelo detectará o idioma automaticamente. Você pode definir até 4 valores. Se definir mais, apenas os 4 primeiros serão usados. Clique para ver os códigos de idioma suportados
|
Interfaces principais
NeoNui
nui_initialize
Inicializa a instância do SDK de reconhecimento de fala. O SDK é um singleton. Não o inicialize novamente antes de chamar nui_release.
-(NuiResultCode) nui_initialize:(const char *)parameters
logLevel:(NuiSdkLogLevel)level
saveLog:(BOOL)save_log;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| 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. |
|
| Controla o nível de impressão dos próprios logs do SDK. |
|
| Se deve salvar logs localmente. Se definido como |
nui_set_params
Use esta interface para definir ou atualizar o parâmetro nls_config de forma independente. Se você fornecer todos os parâmetros de uma vez em nui_file_trans_start, não precisará chamar este método.
-(NuiResultCode) nui_set_params:(const char *)params;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O parâmetro Exemplo: |
nui_file_trans_start
Inicia o reconhecimento.
Assinatura do método-(NuiResultCode) nui_file_trans_start:(const char *)params
taskId:(char *)task_id;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| Parâmetros de efeito de reconhecimento de fala. Exemplo: |
|
| O ID da tarefa. O SDK gera uma string aleatória internamente e retorna o task_id quando esta interface é chamada com sucesso. |
nui_file_trans_query
Use esta interface para consultar ativamente o status e o resultado atuais de uma tarefa assíncrona. Após uma chamada bem-sucedida, o resultado é retornado por meio do evento EVENT_FILE_TRANS_QUERY_RESULT no callback onFileTransEventCallback.
ObservaçãoObtenha o task_id passado para este método a partir do evento EVENT_FILE_TRANS_UPLOADED.
-(NuiResultCode) nui_file_trans_query:(const char *)task_id;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O ID da tarefa a ser consultada, obtido a partir do evento |
nui_file_trans_cancel
Cancela a tarefa atual imediatamente.
Assinatura do método-(NuiResultCode) nui_file_trans_cancel:(const char *)task_id;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O ID da tarefa a ser cancelada, obtido a partir do evento |
nui_release
Libera todos os recursos internos do SDK e encerra forçosamente todas as tarefas em andamento. Depois de chamar este método, a instância do SDK fica indisponível. Para usá-la novamente, você deve chamar nui_initialize novamente para inicializá-la.
-(NuiResultCode) nui_release;
nui_get_version
Obtém as informações da versão atual do SDK.
Assinatura do método-(const char*) nui_get_version;
Valor de retorno
As informações da versão atual do SDK.
NeoNuiSdkDelegate: monitorar callbacks
onFileTransEventCallback: monitorar eventos e resultados de reconhecimento de fala
Assinatura do método-(void) onFileTransEventCallback:(NuiCallbackEvent)nuiEvent
asrResult:(const char *)asr_result
taskId:(const char *)task_id
ifFinish:(BOOL)finish
retCode:(int)code;
Descrições dos parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O evento de callback. |
|
| O resultado do reconhecimento de fala. |
|
| O ID da tarefa. |
|
| Indica se esta rodada de reconhecimento foi concluída. |
|
| Válido apenas quando o evento |
onFileTransLogTrackCallback: monitorar logs de rastreamento
Use este callback 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 evento
| Evento | Descrição |
|---|---|
| Conectado ao serviço com sucesso. |
| O arquivo de áudio a ser reconhecido foi carregado com sucesso. Agora você pode obter o |
| O resultado da tarefa de consulta. |
| O resultado final do reconhecimento. |
| Ocorreu um erro durante o reconhecimento de fala. |