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!
Réponses
Trop de publicités?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.
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.