2017-01-16 3 views
0

| _____ | _____ | _____ | _____ | _____ | _____ | WAVComparer deux fichiers audio et trouver coupe

| _____ | _____ | _____ | _____ | MP3 (hors du WAV ci-dessus)

| _____ | _____ | .......... | _____ | .......... | _____ | diffs

  \ \  \ \ <-- need timestamps of cut areas 

J'ai beaucoup de fichiers WAV et mes éditeurs en créent des fichiers MP3. Ils sont normalisés et égalisés, plus certaines zones sont coupées.

Je dois trouver automatiquement les zones où ils ont coupé et obtenir des réductions horodatages avec une plus grande précision possible.

J'ai passé beaucoup de temps dans Google à essayer de trouver une solution, mais sans aucune chance. Aucune réponse sur SO sur des questions telles que:

aussi trouvé https://code.google.com/archive/p/musicip-libofa/, mais le site de leur producteur est en baisse et il n'y a aucune documentation sur le projet.

Aidez s'il vous plaît!

Répondre

2

Je suppose que vous pouvez comparer les valeurs temporelles des deux signaux, jusqu'à ce que vous trouviez une grande différence (premier horodatage). Ensuite, vous les comparez à nouveau jusqu'à ce que vous trouviez qu'il n'y a plus de différence (deuxième horodatage).

Comme les fichiers .wav et .mp3 ne sont pas au même format, vous ne pouvez pas le faire à partir des valeurs d'échantillons temporels. Dans le domaine spectral, vous pouvez comparer chaque image une par une (les chiffres ne doivent pas être exactement identiques, mais vous pouvez utiliser un seuil pour voir si la différence est suffisamment petite.)

Dans votre exemple, les deux fichiers À partir du même point, vous pouvez comparer les spectres successifs des deux fichiers jusqu'à ce que vous trouviez une grande différence, ce qui vous donne le premier horodatage de la coupe, puis vous continuez jusqu'à ce que la différence redevienne faible et ainsi de suite

Si vous ne voulez pas aller dans le domaine spectral, une approche plus simple pourrait être d'utiliser une caractéristique, comme l'énergie efficace du signal, ou le centroïde spectral

Dans tous les cas, vous devez d'abord lire le fichiers dio, puis de traiter les valeurs, afin d'obtenir une autre représentation des données pouvant être comparées.