O SDK iOS de reconhecimento de fala não em tempo real Qwen-Audio-ASR converte fala em texto.
Para formatos de áudio suportados, limites de tamanho de arquivo, limites de duração e outros requisitos de entrada, 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.
- Extraia o arquivo ZIP e adicione nuisdk.framework ao projeto.
- Adicione nuisdk.xcframework em Build Phases → Link Binary With Libraries.
- Em General → Frameworks, Libraries, and Embedded Content, defina nuisdk.xcframework como Embed & Sign.
- Abra o projeto de exemplo no Xcode. O código de exemplo está em
DashFunAsrFlashFileTranscriberViewController.m. Substitua a chave de API para testar o recurso.
Procedimento de chamada
Modo síncrono
-
Inicializar o SDK
-
Configure os parâmetros com base nos requisitos do seu negócio
-
Chame
nui_file_trans_startpara enviar uma solicitação de reconhecimento de fala não em tempo real. -
Use
onFileTransEventCallbackpara ouvir o eventoEVENT_FILE_TRANS_RESULTe 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
Passe uma string JSON para o parâmetro parameters do método nui_initialize para configurar essas definições.
Exemplo de parâmetro: A string JSON a seguir é um exemplo e não lista todos os parâmetros. Adicione parâmetros conforme necessário em seu código:
{
"url": "wss://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| Sim | Endpoints de serviço:
Substitua |
|
| Sim | Chave de API. |
|
| Sim | O modo de operação. Para reconhecimento de fala não em tempo real, defina este parâmetro como |
|
| Sim | Uma string exclusiva que identifica o usuário final. Você pode usar um ID de usuário no aplicativo ou um identificador de dispositivo exclusivo gerado pelo cliente. Este ID é usado principalmente para rastreamento de logs e solução de problemas. |
|
| Não | O caminho para os arquivos de log. Este parâmetro só entra em vigor quando você chama |
|
| Não | O tamanho máximo do arquivo de log em bytes. Este parâmetro só entra em vigor quando você chama |
|
| Não | O nível de filtragem para logs enviados por meio do callback de log (
Observação |
Parâmetros de reconhecimento
Use nui_file_trans_start para configurar todos os parâmetros de reconhecimento.
Exemplo de parâmetro: A string JSON a seguir é um exemplo e não lista todos os parâmetros. Adicione parâmetros conforme necessário em seu código:
{
"apikey": "st-****",
"messages": [
{
"content": [
{
"input_audio": {
"data": "{YOUR_AUDIO_URL}"
},
"type": "input_audio"
}
],
"role": "user"
}
],
"nls_config": {
"format": "mp3",
"model": "qwen-audio-3.0-asr-flash"
}
}
Parâmetros
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| Não | Se os Parâmetros de conexão e controle |
|
| Sim | O objeto de configuração principal de reconhecimento de fala, incluindo o modelo e os parâmetros que controlam o reconhecimento. |
|
| Sim | O nome do modelo. |
|
| Sim | O formato de áudio. Defina este parâmetro para o formato real. Os formatos suportados incluem |
|
| Não | A taxa de amostragem de áudio em Hz. Por exemplo, |
|
| Não | O ID do vocabulário pré-compilado. Crie um vocabulário com antecedência e passe seu ID durante o reconhecimento para usar suas palavras-chave. Use esta opção quando o vocabulário for conhecido, relativamente estável e reutilizado entre solicitações. Para instruções de uso, consulte Palavras-chave pré-compiladas. |
|
| Não | Palavras-chave instantâneas. Passe pares chave-valor. A chave é o texto da palavra-chave ( Use esta opção para otimização temporária de palavras-chave no nível da sessão. Quando palavras-chave instantâneas e pré-compiladas são configuradas, o sistema as mescla. Se a lista mesclada exceder 2000 entradas, ele seleciona aleatoriamente 2000 entradas. Para instruções de uso, consulte Palavras-chave instantâneas. |
|
| Não | Os códigos de idioma a reconhecer. Se o idioma não for conhecido, omita este parâmetro para que o modelo o detecte automaticamente. Você pode definir até 4 valores. Se definir mais, apenas os 4 primeiros terão efeito. Especificar os códigos de idioma pode melhorar a precisão do reconhecimento. Códigos de idioma compatíveis
O
|
|
| Sim | A lista de messages. Ela contém o áudio a ser reconhecido e o contexto opcional de conversa para melhorar o reconhecimento. Consulte as descrições a seguir. |
ImportanteO contexto melhora a precisão do reconhecimento de termos especializados. Para instruções de uso, consulte Aprimoramento de contexto.
as mensagens de contexto (tipos input_text e text) são limitadas a cinco cada. Se o limite for excedido, apenas as cinco mensagens mais recentes serão mantidas. O comprimento total do texto de contexto por turno (a soma dos comprimentos dos campos user e assistant text) não deve exceder 400 caracteres. Cada caractere conta como um. Os caracteres excedentes são truncados a partir do final.
ImportanteQuando o contexto é incluído, as mensagens messages devem seguir uma ordem específica. Organize as mensagens de contexto por turno de conversa. Dentro de cada turno, user (tipo input_text) deve preceder o assistant correspondente (tipo text). A mensagem input_audio user contendo o áudio de entrada deve ser colocada no final de messages.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| Sim | A função da mensagem. Valores válidos:
|
|
| Sim | A lista de conteúdo da mensagem. Consulte as descrições a seguir. |
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
|
| Sim | O tipo de conteúdo. Cada solicitação requer pelo menos uma mensagem
|
|
| Não | Obrigatório quando |
|
| Sim | Os dados de áudio a serem reconhecidos. Para formatos de áudio suportados, limites de tamanho de arquivo, limites de duração e outros requisitos de entrada, consulte Especificações de áudio. Os dois métodos de entrada a seguir são suportados:
Exemplo (URL): Exemplo (Base64): |
|
| Não | Obrigatório quando |
Interfaces principais
NeoNui
nui_initialize
Inicialize a instância do SDK de reconhecimento de fala. O SDK usa 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;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| Uma string JSON contendo parâmetros de autenticação, conexão e depuração. Consulte Parâmetros de conexão e controle. |
|
| O nível de logs impressos pelo SDK. |
|
| Se deve salvar logs localmente. Se definido como |
nui_set_params
Use este método para definir ou atualizar nls_config separadamente. Você não precisa chamar este método se todos os parâmetros forem fornecidos em nui_file_trans_start em uma única chamada.
- (NuiResultCode) nui_set_params:(const char *)params;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| Parâmetros de reconhecimento em Exemplo: |
nui_file_trans_start
Iniciar o reconhecimento.
Assinatura do método- (NuiResultCode) nui_file_trans_start:(const char *)params
taskId:(char *)task_id;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| Parâmetros de reconhecimento. Exemplo: |
|
| Você pode ignorar este parâmetro e passar null. |
nui_file_trans_query
Este recurso de reconhecimento de fala não em tempo real suporta apenas solicitações síncronas. Você pode ignorar este método.
Assinatura do método- (NuiResultCode) nui_file_trans_query:(const char *)task_id;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O ID da tarefa a ser consultada, obtido de EVENT_FILE_TRANS_UPLOADED. |
nui_file_trans_cancel
Cancelar imediatamente a tarefa atual.
Assinatura do método- (NuiResultCode) nui_file_trans_cancel:(const char *)task_id;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O ID da tarefa a ser cancelada, obtido de EVENT_FILE_TRANS_UPLOADED. |
nui_release
Libere todos os recursos internos do SDK e force a interrupção de todas as tarefas em andamento. Após esta chamada, a instância do SDK fica indisponível. Para usá-la novamente, chame nui_initialize para inicializá-la novamente.
- (NuiResultCode) nui_release;
nui_get_version
Obter a versão atual do SDK.
Assinatura do método- (const char*) nui_get_version;
Valor de retorno
A versão atual do SDK.
NeoNuiSdkDelegate: Callbacks
onFileTransEventCallback: Ouça eventos e resultados de reconhecimento
Assinatura do método- (void) onFileTransEventCallback:(NuiCallbackEvent)nuiEvent
asrResult:(const char *)asr_result
taskId:(const char *)task_id
ifFinish:(BOOL)finish
retCode:(int)code;
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
|
| O evento de callback. |
|
| O resultado do reconhecimento de fala. |
|
| O ID da tarefa. |
|
| Se o reconhecimento para este turno foi concluído. |
|
| Válido apenas quando o evento |
onFileTransLogTrackCallback: Ouça logs de rastreamento
Este callback recebe 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 com sucesso ao serviço. |
| O arquivo de áudio foi carregado com sucesso. Você pode obter o task_id atual neste momento. |
| O resultado final do reconhecimento. |
| Ocorreu um erro durante o reconhecimento de fala. |