Ho deciso di iniziare un progetto personale usando Python da quando lo uso da diversi anni e vorrei sapere se l'approccio che ho considerato è buono o meno.
Descrizione
È molto semplice se conosci Alexa / Siri / ecc. Ho un dispositivo che interagirà con il proprietario dato una singola area: Musica. Lo scenario visto che ho visto è come questo:
Owner [voice]: "- I want to listen a sad song, please play me one!"
[backend action here]
- The command will be saved as an audio file in a specific folder.
- I'm using watchdog to monitor file system events - in this case, the creation of an audio file in a folder.
- Convert the above audio file to text using Google API Speech service.
- Search in a database for some key words like: "listen", "sad", "song", "play" and create a response [text] based on them (try to narrow down the searches and guess what the owner wants - not sure how to do this, though)
- Convert the above question to speech using gtts. This will save the audio file to another folder. This file will be played by the device.Device [voice]: "- Would you prefer a specific artist or genre?"
Owner [voice]: "No."
[backend action here again] - this can occur multiple times if needed and if the owner wants more specific results.
- The command is again processed and converted to text.
- If the command would've been "Yes, I want to listen to a song played by Richard Marx" I would've looked again in the database for the new keywords and go to the specific location of songs played by Richard Marx and play one of them.
- When the command is "No.", I have to search for a sad song in the DB, go to the specific location of that song and play it.
Questa è l'idea principale (su larga scala). Un dispositivo (la sua conoscenza dovrebbe coinvolgere il campo musicale come: artisti / canzoni / generi / ecc.) Che possono interagire con il suo proprietario in modo che possa dargli esattamente ciò che desidera.
Architettura
Ora, so che dovrò utilizzare una grande memoria in cui posso conservare tutta la musica e il DB, ma supponiamo che questo sia già gestito.
Quello che voglio sapere è se il mio approccio / logica è abbastanza buono o se ci sono modi migliori / più semplici per farlo. Inoltre, un po 'di aiuto con la parte " non so come fare questo, anche se " mi aiuterebbe davvero!