Qwen-Audio-3.0-ASR-Flash-Filetrans/Fun-ASR gravando Android SDK
Transcrição de arquivos Android 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
-
Obtenha uma chave de API: Obtenha uma chave de API. Para melhor segurança, armazene a chave API em uma variável de ambiente.
-
Baixe o SDK e execute o código de exemplo:
- Baixe o pacote SDK mais recente.
- Extraia o pacote ZIP. Encontre o SDK em formato AAR no
app/libsdiretório e adicione-o às dependências do seu projeto. Para integração com Android C++, useandroid_libseandroid_includeno pacote ZIP para obter as bibliotecas dinâmicas e arquivos de cabeçalho. - Abra o projeto no Android Studio. O código de exemplo está em
DashFunAsrFileTranscriberActivity.java. Substitua a chave de API e experimente o recurso.
Procedimento de chamada
Synchronous mode
1. Inicialize o SDK.
2. Configure os parâmetros exigidos pelo seu negócio.
3. Definir `async_request` para `false` e chame [startFileTransscriber](#startfiletranscriber) para enviar uma solicitação de reconhecimento de fala em tempo não real e aguardar o resultado.
4. Ouça o `EVENT_FILE_TRANS_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) interface para obter o resultado final do reconhecimento.
5. Ligue para [liberação](#release) para liberar os recursos do SDK.
Asynchronous mode
1. Inicialize o SDK.
2. Configure os parâmetros exigidos pelo seu negócio.
3. Definir `async_request` para `true` e chame [startFileTransscriber](#startfiletranscriber) para enviar uma solicitação de reconhecimento de fala em tempo não real.
4. Chame [queryFileTranscriber](#queryfiletranscriber) para pesquisar o progresso e o resultado do reconhecimento.
5. Ouça o `EVENT_FILE_TRANS_QUERY_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) para obter o resultado da consulta atual.
6. Ouça o `EVENT_FILE_TRANS_RESULT` evento no [onFileTransEventCallback](#onfiletranseventcallback-listen-for-events-and-recognition-results) interface para obter o resultado final do reconhecimento.
7. Ligue para [liberação](#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 inicializar interface.
- Exemplo de parâmetro: A sequência JSON a seguir é um exemplo e não lista todos os parâmetros. Adicione os parâmetros necessários ao escrever seu código:
{
"url": "wss://maas.qwencloudapi.com/api/v1/services/audio/asr/transcription",
"apikey": "st-****",
"device_id": "my_device_id",
"service_mode": "1"
}
- Descrição do parâmetro
| 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 gravada. |
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 é definido como verdadeiro no initialize interface. Nesse caso, você deverá definir o caminho do arquivo de log ou um erro será relatado. |
|||
| 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 é definido como verdadeiro no initialize interface. |
|||
| Padrão: 104857600 (100 * 1024 * 1024 bytes, ou seja, 100 MiB). | |||
log_track_level |
int |
Não | O nível de filtro para o conteúdo do log enviado por meio do retorno de chamada do log (onFileTransLogTrackCallback). |
| 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 initialize interface) juntos determinam quais logs serão enviados para o retorno de chamada. Um log é enviado para o retorno de chamada somente quando seu valor de nível é maior ou igual a ambos log_track_level e level. Por exemplo, se log_track_level está definido como 2 (INFO) e level estiver definido como 3 (WARNING), somente logs no nível WARNING ou superior (valor >= 3) serão enviados para o retorno de chamada. |
Parâmetros de reconhecimento de fala
Configure todos os parâmetros de reconhecimento de fala através do startFileTransscriber interface.
- Exemplo de parâmetro: A sequência JSON a seguir é um exemplo e não lista todos os parâmetros. Adicione os parâmetros necessários 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ção do parâmetro
| 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 é assíncrona. |
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 a expiração. |
nls_config |
object |
Sim | O objeto de configuração principal para reconhecimento de fala. Ele contém parâmetros importantes, como seleção de modelo e controle 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.
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
NativoNui
inicializar
Inicializa a instância do SDK de reconhecimento de fala. O SDK é um singleton. Não inicialize-o novamente antes de chamar release.
Esta interface é bloqueada, então chame-a em um thread que não seja da UI.
- Assinatura do método
public synchronized int initialize(final INativeFileTransCallback callback,
String parameters,
final Constants.LogLevel level,
final boolean save_log)
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
callback |
INativeFileTransCallback |
A implementação da interface de retorno de chamada de eventos e dados. |
parameters |
String |
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 |
Constants.LogLevel |
Controla o nível de impressão dos próprios logs do SDK. |
save_log |
boolean |
Se os logs devem ser salvos localmente. Se true, especifique o caminho com debug_path em Parâmetros de conexão e controle e, opcionalmente, defina o tamanho do arquivo com max_log_file_size. |
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
####setParams
Use esta interface para definir ou atualizar o nls_config parâmetros separadamente. Se você fornecer todos os parâmetros de uma vez em startFileTranscriber, você não precisa chamar esse método.
- Assinatura do método
public synchronized int setParams(String params);
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
params |
String |
O nls_config parâmetro em Parâmetros 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
}
}
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
startFileTranscriber
Inicia o reconhecimento.
- Assinatura do método
public synchronized int startFileTranscriber(String params, byte[] task_id)
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
params |
String |
Parâmetros de reconhecimento de fala. |
| Veja o exemplo abaixo desta tabela. | ||
task_id |
byte[] |
O ID da tarefa. O SDK gera uma string aleatória internamente. Você obtém o task_id depois que esta interface retorna 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
}
}
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
queryFileTranscriber
Use esta interface para consultar o status atual e o resultado de uma tarefa assíncrona. Depois que a chamada for bem-sucedida, o resultado será retornado por meio do método 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.
- Assinatura do método
public synchronized int queryFileTranscriber(String task_id)
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
task_id |
String |
O ID da tarefa a ser consultada, obtido do EVENT_FILE_TRANS_UPLOADED evento. |
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
cancelarFileTranscriber
Cancela a tarefa atual imediatamente.
- Assinatura do método
public synchronized int cancelFileTranscriber(String task_id)
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
task_id |
String |
O ID da tarefa a ser cancelada, obtido do EVENT_FILE_TRANS_UPLOADED evento. |
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
lançamento
Libera todos os recursos internos do SDK. Depois de chamar esse método, a instância do SDK fica inutilizável. Para usá-lo novamente, você deve chamar initialize para inicializá-lo novamente.
- Assinatura do método
public synchronized int release();
-
Valor de retorno
Retorna um código de erro. Consulte Referência do código de erro.
Obter versão
Obtém as informações da versão atual do SDK.
- Assinatura do método
public synchronized String GetVersion();
-
Valor de retorno
As informações da versão atual do SDK.
INativeFileTransCallback: retornos de chamada do ouvinte
onFileTransEventCallback: ouça eventos e resultados de reconhecimento
- Assinatura do método
void onFileTransEventCallback(NuiEvent event, final int resultCode, final int arg2, AsrResult asrResult, String taskId);
- Descrição do parâmetro
| Parâmetro | Tipo | Descrição |
|---|---|---|
event |
Evento Nui | O evento de retorno de chamada. |
resultCode |
int |
O código de erro. Válido quando ocorre o evento EVENT_ASR_ERROR. |
asrResult |
AsrResult |
O resultado do reconhecimento de fala. |
taskId |
String |
O ID da tarefa. |
arg2 |
int |
Um parâmetro reservado. |
onFileTransLogTrackCallback: escuta logs de rastreamento
Esse retorno de chamada recebe logs internos detalhados do SDK para diagnóstico e depuração de problemas.
default void onFileTransLogTrackCallback(Constants.LogLevel level, String log)
NuiEvent: tipos de eventos
| Evento | Descrição |
|---|---|
| EVENTO_FILE_TRANS_CONNECTED | A conexão de serviço foi bem-sucedida. |
| 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 | Uma consulta de resultado de tarefa. |
| EVENTO_ARQUIVO_TRANS_RESULT | O resultado final do reconhecimento. |
| EVENTO_ASR_ERRO | Ocorreu um erro durante o reconhecimento de fala. |