3

我有一个 SiriServerCore 设置,我正在对其进行编程,以从本质上自动化我的媒体中心的功能。这个媒体中心有电影、电视节目和音乐。本质上,语音到文本将收到类似“通过询问亚历山大播放最后一集”的内容。在包含我所有音乐文件位置的 python 列表中,有一个名为"Asking Alexandria - 2 - The Final Episode (Let's Change Channel).mp3" 的文件。我将如何让文本语音与列表中的项目“最佳匹配”?任何帮助表示赞赏!

4

2 回答 2

2

假设您的语音输入将被转换为字符串,您可以简单地遍历歌曲列表,查看歌曲标题的前两个或三个单词,将每个标题与输入字符串进行比较,如果歌曲标题的部分或大部分单词是出现在代表您声音的字符串中,您可以决定正确的歌曲。这将是这样的:

>>> a = "Play The Final Episode by Asking Alexandria" # voice input
>>> 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: 
            # play the song

但这更多的是一种预感,而不是一个完美的解决方案。我认为歌曲标题的第一个词通常是最重要的。同时,最好从歌名开始,将歌名匹配到语音输入,而不是反过来,因为语音输入可能包含不必要的元素,语音输入的前三个单词可能是“请给我播放一首歌”的标题”。歌曲标题的第一个词通常是信息丰富的。

于 2013-07-10T19:02:58.020 回答
1

基于这个问题,您可能希望使用这个库进行模糊字符串比较。它检查两个字符串之间的相似性;您可以使用它来找到最佳匹配。

于 2013-07-10T18:47:37.270 回答