Recuperação de Áudio Baseada no Milvus
O som é um tipo de dado denso em informação. Embora possa parecer antiquado na era do conteúdo em vídeo, o áudio continua sendo uma fonte primária de informação para muitas pessoas. Apesar do declínio de longo prazo no número de ouvintes, 83% dos americanos com 12 anos ou mais ouviram rádio terrestre (AM/FM) em uma determinada semana em 2020 (queda em relação a 89% em 2019). Por outro lado, o áudio online registrou um aumento constante de ouvintes nas últimas duas décadas, com 62% dos americanos supostamente ouvindo alguma forma dele semanalmente, de acordo com o mesmo estudo do Pew Research Center.
Como onda, o som inclui quatro propriedades: frequência, amplitude, forma de onda e duração. Na terminologia musical, elas são chamadas de altura, dinâmica, timbre e duração. Os sons também ajudam humanos e outros animais a perceber e compreender nosso ambiente, fornecendo pistas contextuais sobre a localização e o movimento de objetos ao nosso redor.
Como portador de informação, o áudio pode ser classificado em três categorias:
- Fala: Um meio de comunicação composto por palavras e gramática. Com algoritmos de reconhecimento de fala, a fala pode ser convertida em texto.
- Música: Sons vocais e/ou instrumentais combinados para produzir uma composição composta por melodia, harmonia, ritmo e timbre. A música pode ser representada por uma partitura.
- Forma de onda: Um sinal de áudio digital obtido pela digitalização de sons analógicos. Formas de onda podem representar fala, música e sons naturais ou sintetizados.
A recuperação de áudio pode ser usada para pesquisar e monitorar mídia online em tempo real a fim de combater violações de direitos de propriedade intelectual. Ela também assume um papel importante na classificação e na análise estatística de dados de áudio.
Tecnologias de processamento
Fala, música e outros sons genéricos têm características únicas e exigem métodos de processamento diferentes. Normalmente, o áudio é separado em grupos que contêm fala e grupos que não contêm:
- Áudio de fala é processado por reconhecimento automático de fala.
- Áudio não falado, incluindo áudio musical, efeitos sonoros e sinais de fala digitalizados, é processado usando sistemas de recuperação de áudio.
Este artigo se concentra em como usar um sistema de recuperação de áudio para processar dados de áudio não falados. O reconhecimento de fala não é abordado neste artigo
Extração de características de áudio
A extração de características é a tecnologia mais importante em sistemas de recuperação de áudio, pois possibilita a busca por similaridade de áudio. Os métodos para extrair características de áudio são divididos em duas categorias:
- Modelos tradicionais de extração de características de áudio, como modelos de mistura gaussiana (GMMs) e modelos ocultos de Markov (HMMs);
- Modelos de extração de características de áudio baseados em deep learning, como redes neurais recorrentes (RNNs), redes de memória de curto e longo prazo (LSTM), estruturas de codificação-decodificação, mecanismos de atenção etc.
Modelos baseados em deep learning têm uma taxa de erro uma ordem de magnitude menor do que os modelos tradicionais e, portanto, estão ganhando força como tecnologia central no campo do processamento de sinais de áudio.
Os dados de áudio geralmente são representados pelas características de áudio extraídas. O processo de recuperação pesquisa e compara essas características e atributos, em vez dos próprios dados de áudio. Portanto, a eficácia da recuperação por similaridade de áudio depende em grande parte da qualidade da extração de características.
Neste artigo, redes neurais de áudio pré-treinadas em larga escala para reconhecimento de padrões de áudio (PANNs) são usadas para extrair vetores de características por sua precisão média média (mAP) de 0,439 (Hershey et al., 2017).
Após extrair os vetores de características dos dados de áudio, podemos implementar análise de vetores de características de alto desempenho usando Milvus.
Busca por similaridade vetorial
Milvus é um banco de dados vetorial open-source e nativo da nuvem, criado para gerenciar vetores de embedding gerados por modelos de machine learning e redes neurais. Ele é amplamente usado em cenários como visão computacional, processamento de linguagem natural, química computacional, sistemas de recomendação personalizados e muito mais.
O diagrama a seguir representa o processo geral de busca por similaridade usando o Milvus:
Processo de busca por similaridade vetorial do Milvus.
- Dados não estruturados são convertidos em vetores de características por modelos de deep learning e inseridos no Milvus.
- O Milvus armazena e indexa esses vetores de características.
- Mediante solicitação, o Milvus pesquisa e retorna os vetores mais semelhantes ao vetor de consulta.
Visão geral do sistema
O sistema de recuperação de áudio consiste principalmente em duas partes: inserção (linha preta) e busca (linha vermelha).
Sistema de recuperação de áudio baseado no Milvus.
O conjunto de dados de exemplo usado neste projeto contém sons de jogos open-source, e o código está detalhado no Milvus bootcamp.
Etapa 1: Inserir dados
Abaixo está o código de exemplo para gerar embeddings de áudio com o modelo pré-treinado PANNs-inference e inseri-los no Milvus, que atribui um ID exclusivo a cada embedding vetorial.
1 wav_name, vectors_audio = get_audio_embedding(audio_path)
2 if vectors_audio:
3 embeddings.append(vectors_audio)
4 wav_names.append(wav_name)
5 ids_milvus = insert_vectors(milvus_client, table_name, embeddings)
6
Em seguida, os ids_milvus retornados são armazenados junto com outras informações relevantes (por exemplo, wav_name) dos dados de áudio mantidos em um banco de dados MySQL para processamento subsequente.
1 get_ids_correlation(ids_milvus, wav_name)
2 load_data_to_mysql(conn, cursor, table_name)
3
Etapa 2: Busca de áudio
O Milvus calcula a distância do produto interno entre os vetores de características pré-armazenados e os vetores de características de entrada, extraídos dos dados de áudio de consulta usando o modelo PANNs-inference, e retorna os ids_milvus de vetores de características semelhantes, que correspondem aos dados de áudio pesquisados.
1 _, vectors_audio = get_audio_embedding(audio_filename)
2 results = search_vectors(milvus_client, table_name, [vectors_audio], METRIC_TYPE, TOP_K)
3 ids_milvus = [x.id for x in results[0]]
4 audio_name = search_by_milvus_ids(conn, cursor, ids_milvus, table_name)
5
Referência da API e demonstração
API
Este sistema de recuperação de áudio é desenvolvido com código open-source. Seus principais recursos são inserção e exclusão de dados de áudio. Todas as APIs podem ser visualizadas digitando 127.0.0.1:
Demonstração
Hospedamos online uma demonstração ao vivo do sistema de recuperação de áudio baseado no Milvus, que você pode testar com seus próprios dados de áudio.
Demonstração de busca de áudio baseada no Milvus.
Conclusão
Vivendo na era do big data, as pessoas percebem que suas vidas estão repletas de todos os tipos de informação. Para compreendê-las melhor, a recuperação de texto tradicional já não é suficiente. A tecnologia atual de recuperação de informações precisa urgentemente da recuperação de vários tipos de dados não estruturados, como vídeos, imagens e áudio.
Dados não estruturados, que são difíceis para os computadores processarem, podem ser convertidos em vetores de características usando modelos de deep learning. Esses dados convertidos podem ser facilmente processados por máquinas, permitindo-nos analisar dados não estruturados de maneiras que nossos predecessores nunca puderam. O Milvus, um banco de dados vetorial open-source, pode processar com eficiência os vetores de características extraídos por modelos de IA e oferece uma variedade de cálculos comuns de similaridade vetorial.
Referências
Hershey, S., Chaudhuri, S., Ellis, D.P., Gemmeke, J.F., Jansen, A., Moore, R.C., Plakal, M., Platt, D., Saurous, R.A., Seybold, B. and Slaney, M., 2017, March. Arquiteturas CNN para classificação de áudio em larga escala. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), pp. 131-135, 2017
Não seja um estranho
Continue lendo

Introducing Loon: A New Storage Engine for Vector Data That Never Stops Changing
Loon is a new storage engine for Milvus 3.0 and Zilliz Vector Lakebase, built to manage evolving vector datasets with ColumnGroups, row ID alignment, and Manifests.

DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
Discover DeepRAG, an advanced retrieval-augmented generation (RAG) model that improves LLM accuracy by retrieving only essential data through step-by-step reasoning.

Vector Databases vs. Hierarchical Databases
Use a vector database for AI-powered similarity search; use a hierarchical database for organizing data in parent-child relationships with efficient top-down access patterns.



