Add fuzzy and text-classification light model #1

Merged
Tjiho merged 18 commits from fuzzy into master 2025-02-01 01:35:11 +01:00
3 changed files with 42 additions and 21 deletions
Showing only changes of commit aa512535aa - Show all commits

View file

@ -4,10 +4,12 @@ from rapidfuzz import process, fuzz, utils
ROOMS = ["cuisine", "salon", "chambre", "bureau"]
MUSIQUE_GENRE_SHORT = ["synthpop", "jazz classique", "jazz manouche", "classique", "rock", "jazz", "blues", "film", "francaise", "pop", "reggae", "folk",
MUSIQUE_GENRE_SHORT = ["synthpop", "jazz classique", "jazz manouche", "latine", "classique", "rock", "jazz",
"blues", "film", "francaise", "pop", "reggae", "folk",
"électro", "punk", "corse", "arabe", "persane", "piano", "rap", "slam"]
MUSIQUE_GENRE_LONG = ["synthpop", "jazz classique", "jazz manouche", "classique", "rock", "jazz", "blues", "musique de film", "chanson francaise", "pop", "reggae", "folk",
MUSIQUE_GENRE_LONG = ["synthpop", "jazz classique", "jazz manouche", "chanson latine", "classique", "rock", "jazz",
"blues", "musique de film", "chanson francaise", "pop", "reggae", "folk",
"électro", "punk", "chanson corse", "chanson arabe", "chanson persane", "piano", "rap", "slam", "chanson classique"]

View file

@ -2,17 +2,18 @@ import logging
import random
from mpd import MPDClient
class Mpd():
def __init__(self, ip, yoda):
self.ip = ip
self.port = 6600
self.client = MPDClient() # create client object
self.client.timeout = 10 # network timeout in seconds (floats allowed), default: None
# network timeout in seconds (floats allowed), default: None
self.client.timeout = 10
self.client.idletimeout = None
self.yoda = yoda
self.client.connect(ip, self.port)
logging.debug(self.client.mpd_version)
self.client.close()
@ -36,7 +37,8 @@ class Mpd():
logging.debug('Listing '+self.normalize_genre(genre))
try:
# todo: select only one album instead of the artist
list_album = self.client.lsinfo("Files/Genres/"+self.normalize_genre(genre))
list_album = self.client.lsinfo(
"Subsonic/Genre/"+self.normalize_genre(genre))
except:
list_album = []
@ -61,17 +63,31 @@ class Mpd():
return NORMALIZED_GENRE[genre.lower()]
NORMALIZED_GENRE = {
'classique': 'classique',
'musique classique': 'classique',
'jazz': 'jazz',
'chanson française': 'chanson francaise',
'chanson anglaise': 'chanson anglaise',
'musique de film': 'musique de film',
'électro': 'electro',
'musique électronique': 'electro',
'rock': 'rock',
'pop': 'pop',
'chanson latine': 'chanson latine',
'classique': 'Classique',
'musique classique': 'Classique',
'jazz': 'Jazz',
'chanson française': 'Chanson Francaise',
'francaise': 'Chanson Francaise',
'chanson anglaise': 'Chanson anglaise',
'reggae': 'Reggae',
'folk': 'Folk',
'électro': 'Electro',
'musique électronique': 'Electro',
'punk': 'Punk',
'rock': 'Rock',
'pop': 'Pop',
'latine': 'Latin',
'arabe': 'Arabic',
'corse': 'Chants Corse',
'persane': 'Chanson Persane',
'piano': 'Piano',
'rap': 'Rap',
'slam': 'Slam',
'synthpop': 'Synthpop',
'jazz classique': 'Classique Jazz',
'jazz manouche': 'Jazz Manouche',
'blues': 'Blues',
'film': 'Soundtrack',
'musique de film': 'Soundtrack',
}

View file

@ -68,6 +68,9 @@ class Ratatouille():
return self.light_on_single(payload['intentArg'][0])
elif command == "LightOff":
return self.light_off_single(payload['intentArg'][0])
elif command == "PlayMusicGenre":
return self.play_genre(payload['intentArg'][0])
return '42'
def weather_query(self, entities):
if any(a in entities['B-weather_descriptor'] for a in TEMPERATURE_KEYWORD):