3 votes

Python - Meilleure Recherche Correspondante

J'ai mis en place un SiriServerCore que je programme essentiellement pour automatiser les fonctions de mon centre multimédia. Ce centre multimédia contient des films, des séries télévisées et de la musique. Essentiellement, la voix en texte recevra quelque chose comme "Jouer le dernier épisode en demandant à Asking Alexandria". Dans une liste python contenant tous les emplacements de mes fichiers musicaux, il y a un fichier appelé "Asking Alexandria - 2 - The Final Episode (Let's Change Channel).mp3". Comment pourrais-je faire en sorte que le texte parlé corresponde le mieux aux éléments de la liste? Toute aide est appréciée!

2voto

Pawel Miech Points 2170

En supposant que votre entrée vocale sera transformée en une chaîne de caractères, vous pouvez simplement itérer sur la liste des chansons, regarder les deux ou trois premiers mots du titre de la chanson, comparer chaque titre avec la chaîne d'entrée et si quelques mots ou la plupart des mots du titre de la chanson sont présents dans la chaîne représentant votre voix, vous pouvez prendre une décision sur la bonne chanson. Ce serait quelque chose comme :

>>> a = "Joue The Final Episode de Asking Alexandria" # entrée vocale
>>> songList = ["Asking Alexandria - 2 - The Final Episode (Let's Change Channel).mp3", "Angie", "Yesterday.mp3"]
>>> for songTitle in SongsList:
        songTitleWords = songTitle.split(" ")
        if " ".join(songTitleWords[:2]) in voiceInput: 
            # jouer la chanson

Mais c'est plus une intuition qu'une solution parfaite. Je pense que les premiers mots d'un titre de chanson sont généralement les plus importants. En même temps, il est préférable de partir du titre de la chanson et de le faire correspondre à l'entrée vocale plutôt que l'inverse car l'entrée vocale peut contenir des éléments inutiles, les trois premiers mots d'une entrée vocale peuvent être quelque chose comme "s'il te plaît joue-moi une chanson du titre". Les premiers mots d'un titre de chanson sont généralement informatifs.

1voto

Rushy Panchal Points 2984

Basé sur cette question, vous voudrez peut-être utiliser cette bibliothèque pour les comparaisons de chaînes floues. Il vérifie la similitude entre deux chaînes; vous pouvez l'utiliser pour trouver la meilleure correspondance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X