Scipy - Traitement audio


14

Je recherche de bons outils pour le traitement du signal audio. Ex: analyse de la parole et de la musique, identification automatique de la langue, etc.

La bibliothèque Scipy propose-t-elle des fonctions de traitement audio? At-il un bon outil pour le traitement du signal audio?

Pouvez-vous s'il vous plaît suggérer un outil pour cela?


1
Oui, scipy fournit une infrastructure pour faire ce genre de choses, mais vous devez être un peu plus précis sur ce que vous recherchez pour obtenir une réponse plus utile (en particulier pour savoir s'il existe ou non "un meilleur outil que [scipy]"). ).
A_A

1
en temps réel ou hors ligne?
endolith

hors ligne. Je recherche une classification Speech / Music.
user1147663

1
Scipy et Numpy fournissent ensemble d'excellents outils pour le traitement des données en temps réel et hors ligne. En combinaison avec Cython ou Ctypes (j'ai tendance à préférer l'approche Cython), il est facile d'opérer sur des tableaux numpy avec des opérations rapides de bas niveau écrites en C, si d'autres bibliothèques ne peuvent pas être persuadées de s'adapter.
Henry Gomersall

1
la seule chose qui manque à MATLAB est la capacité de définir l'origine d'un tableau pour être autre chose que 1. donc comme la valeur DC dans la sortie d'une FFT est dans le bac # 1 au lieu du bac # 0 comme il se doit. il y a d'autres choses loufoques sur MATLAB (ou Octave).
robert bristow-johnson

Réponses:


9

Personnellement, je trouve que Python est l'un des meilleurs choix et j'ai fait moi-même du travail dans le domaine de l'identification audio. Vous êtes invités à vérifier par exemple mon logiciel d'identification automatique des oiseaux à partir d'enregistrements audio bruyants: Ornithokrites . Le programme est utilisé par le ministère de la Conservation de la Nouvelle-Zélande et ils en sont ravis. Sur la base de cet exemple, je voudrais souligner plusieurs avantages de l'utilisation de Python:

  1. Immense communauté en développement rapide fournissant des tonnes de bibliothèques. SciPy fournit une pléthore de méthodes de traitement du signal (accordées, pas beaucoup et matures comme Matlab). N'oubliez pas que SciPy, bien que l'un des plus importants, n'est que l'un des centaines qui peuvent vous aider dans vos efforts. J'ai trouvé Aubio le mieux pour l'analyse musicale. Pour la reconnaissance vocale et musicale, vous apprécierez certainement un grand nombre de fonctionnalités audio que Yaafe peut extraire.
  2. C'est gratuit! Une fois sorti du milieu universitaire, vous découvrez rapidement que Matlab est plutôt cher. Et même si vous pouvez vous le permettre, vos utilisateurs en perspective ne seront pas satisfaits de cette dépendance. Par exemple, le Département de la conservation mentionné n'accepterait pas les logiciels propriétaires.
  3. L'identification nécessite souvent un apprentissage automatique et Python a une excellente boîte à outils: sklearn. C'est une bibliothèque à la pointe de la technologie - et facile à utiliser. Jetez un œil aux compétitions Kaggle (apprentissage automatique) et vérifiez combien de meilleurs programmeurs utilisent Python et sklearn.
  4. Vous pouvez gérer les "big data". Si vous souhaitez exécuter une analyse sur d'énormes bases de données d'enregistrements en réseau, Python dispose d'un ensemble d'outils bien établi. Je ne pense pas que l'interface Matlab / Octave soit facile avec par exemple Hadoop, bien que je vous prie de me corriger si je me trompe. R fait mieux ce domaine.
  5. En parlant d'interfaçage, vous pouvez facilement interfacer votre programme avec un site web. C'est ainsi que je gère Ornithokrites (reconnaissance des oiseaux): le programme fonctionne sur le service de cloud computing Amazon Web Services. Idéal si vous souhaitez fournir votre logiciel à d'autres personnes qui ne souhaitent pas nécessairement passer par la procédure d'installation de toutes les bibliothèques requises.

Mon deuxième choix serait R. Bien qu'il ne soit pas aussi riche en fonctionnalités que Python, il possède un grand nombre de bibliothèques utiles (consultez par exemple la fonction Seewave pour vos applications). L'installation de ceux-ci sur Windows et Linux est un jeu d'enfant, ce qui est important si vous souhaitez que d'autres utilisent votre programme. Cependant, d'après mon expérience, le calcul haute performance en R est plus difficile - une chose importante à noter si vous devez FAIRE BEAUCOUP de traitement et d'identification.

Exemples de classification musicale en Python:

Book Building Machine Learning Systems avec Python contient un chapitre sur la classification musicale

Autres outils (liste nullement complète): Python en musique


2

Il semble que Python soit un langage populaire pour cela avec de bons outils basés sur le fait que bien ... Je l'ai vu utilisé dans certains départements et entreprises de technologie musicale.

Dans le monde universitaire, il est très courant de voir ce type de travail effectué dans Matlab, car il rassemble de nombreux outils puissants (traitement du signal, calcul parallèle, graphisme, utilitaires de base de données, apprentissage automatique, IA) dans un IDE facile à explorer. Cependant, cela coûte de l'argent et présente certains inconvénients (pas le meilleur langage de programmation en termes de conception et de performances des applications, il s'agit donc principalement d'un outil de prototypage mais peut être compilé en C). Octave est l'alternative gratuite mais je ne peux pas garantir la qualité des outils de traitement du signal ou du logiciel lui-même car je ne l'ai pas utilisé.


La grande bibliothèque pour cela est github.com/worldveil/dejavu . Python, open-source, sous licence MIT et fait la reconnaissance audio et l'empreinte digitale.
lollercoaster

scipyl'écosystème a beaucoup de fonctionnalités de MATLAB.
Darleison Rodrigues

2

Vous pouvez également vérifier pyAudioAnalysis : il combine des bibliothèques ouvertes pour la reconnaissance des formes et plusieurs implémentations de fonctionnalités audio. Quelques exemples d'applications implémentées dans pyAudioAnalysis , qui peuvent vous intéresser:

  • suppression du silence
  • diariation du locuteur
  • classification (et formation) des segments à l'aide de SVM, kNN, etc.
  • segmentation-classification conjointe (utilisant HMM)
  • vignette audio
  • visualisation de contenu audio

0

Vous pouvez utiliser la bibliothèque C ++ d'analyse audio Essentia , qui inclut des liaisons python. Vous profiterez de tous les avantages de l'environnement python / scipy ainsi que de nombreux algorithmes d'analyse audio / musicale fournis avec Essentia.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.