Innehållsförteckning:
- Tillbehör
- Steg 1: Konfigurera Wayscript och Alexa
- Steg 2: Skapa ett RapidAPI -konto
- Steg 3: Skriv ett grundläggande program
- Steg 4: Formatera texterna
- Steg 5: Ingångar och utgångar
- Steg 6: Lägga till Alexa Trigger
- Steg 7: Lägga till ditt Python -program
- Steg 8: Skicka texten och bekräfta med Alexa
- Steg 9: Du är klar
Video: "Alexa, Send Me the Lyrics to _____": 9 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:38
Lyssnar du på en låt som du vill sjunga tillsammans med? Du skulle normalt behöva gå igenom den svåra uppgiften att skriva in låtens namn i google, följt av ordet "texter". Du skulle också normalt göra en stor mängd stavfel, felklicka på en viss mängd nycklar och behöva hantera din enhets oundvikliga fördröjning. När du har hittat texter upptäcker du att din låt är över och att allt arbete var för ingenting.
Kanske är du mitt i en global pandemi och att låna din väns telefon verkar inte vara den bästa idén, mycket mindre rörande att Karaoke Machine stoppade i hörnet. Du vill vara skyddad, men att känna till texten till låten är nästan lika viktigt. Du behöver en bekväm, kontaktlös metod för att söka efter texter.
Kanske är båda dessa scenarier små överdrifter (den första definitivt mer), men ändå, att låta texter skickas direkt till din e -post den andra du ber om att de ska skickas skulle säkert vara ganska bekvämt. Det är där denna instruerbara (tillsammans med Alexa, Wayscript och lite Python) kommer in. Fråga bara Alexa om texten till din favoritlåt och om några sekunder levereras de direkt till din inkorg.
Som gymnasieelever gick jag in på mitt gymnasium, jag har tyckt att det här projektet var ganska användbart och har faktiskt använt det en betydande mängd sedan jag byggde det (en sällsynthet - med tanke på att de flesta av mina projekt hittades orörda månader senare).
Denna handledning är ganska nybörjarnivå, men det är bra att känna till lite Python innan du går in.
Tillbehör
Material:
- Amazon Echo/Alla Alexa-baserade smarta högtalare
- WayScript-konto (kommer att konfigureras i följande steg)
- RapidAPI -konto
- Vissa Python -kunskaper (Inte nödvändigt, men användbart)
Steg 1: Konfigurera Wayscript och Alexa
Vad är Wayscript?
Wayscript är ett kraftfullt verktyg som låter dig köra program med olika triggers. Vi kommer att använda Alexa -utlösaren i denna instruerbara, men experimentera/utforska programvaran - det finns alla möjliga funktioner du kan lägga till.
För att börja, låt oss skapa ett konto med Wayscript:
- Klicka på knapparna "Kom igång gratis" eller "Registrera dig". Jag använde alternativet "Registrera med Github" eftersom det kändes mest bekvämt.
- När du har skapat ett konto leder du till Wayscripts utvecklingsmiljö. Det är bra att gå igenom handledningen innan vi börjar.
- När du har slutfört handledningen navigerar du till din profil. Klicka på knappen "Skapa ett nytt skript" och du blir ombedd att namnge ditt projekt. Jag har kallat det "Song Lyrics", men du kan namnge det vad du vill. Se bara till att det är lätt att säga eftersom du kommer att använda programnamnet när du ber Alexa att skicka texterna till dig.
- När du har skapat ditt namn klickar du på "skapa" -knappen så kommer du till en ny Wayscript -utvecklingsmiljö. Vi återkommer snart till detta.
Innan vi fortsätter, låt oss ansluta ditt Wayscript -konto till Alexa:
- Gå vidare till amazon.com och logga in på ditt konto-särskilt den som är ansluten till din Alexa-aktiverade högtalare.
- Gå till den här länken: https://www.amazon.com/WayScript-Inc/dp/B07QXXG32… och klicka på 'aktivera'. Om länken inte fungerar av någon anledning, sök efter Wayscript Alexa Skill - klicka igen på 'aktivera'
- När du har klickat på aktivera måste du länka det till ditt Wayscript -konto. Klicka på "Länka konto" och du bör ledas till vägskriftens webbplats. När du har loggat in ska en skärm med texten "Ditt konto har länkats" dyka upp.
När du har ställt in allt detta kan vi (nästan) börja programmera!
Steg 2: Skapa ett RapidAPI -konto
För att söka efter låtens texter använder vi 'Canarado Lyrics API' som är tillgängligt via RapidAPI. Om du redan har ett RapidAPI -konto kan du hoppa över det här steget, men om inte, fortsätt läsa.
Börja med att skapa ditt RapidAPI -konto:
- Klicka på knappen "Registrera dig" i det övre högra hörnet och registrera dig med något av alternativen de har (Google, Github, Facebook eller vanlig registrering).
- När du har registrerat dig går du vidare till Canarado Lyrics API:
Om du ser en skärm som liknar den tredje bilden bifogad ovan har du slutfört det här steget. Vi är äntligen redo att börja programmera.
Steg 3: Skriv ett grundläggande program
Som nämnts i föregående steg finns Canarado Lyrics API på:
Väl där, gå till den högra halvan av skärmen med rubriken 'Code Snippets'. Jag kommer att använda Python i detta instruerbara, men om du föredrar ett annat språk, fortsätt och använd det istället.
Klicka på rullgardinsmenyn med etiketten '(Node.js) Oro' och navigera till ditt valda språk. Återigen kommer jag att använda Python - specifikt Python (Requests) - eftersom detta program kräver en begäran till API: s värd för det mesta av informationen. Kopiera koden genom att klicka på knappen "kopiera kod" längst upp till höger. Klistra in den här koden i din valda kodredigerare - jag använder Jupyters Notebook -miljö.
När du har klistrat in programmet importerar du Pythons json -modul. Detta gör att vi kan skriva ut texterna. Lägg till följande kod längst upp (under importbegäranden)
importera json
När du har importerat json -modulen ska ditt program se ut så här:
importförfrågningar
import json url = "https://canarado-lyrics.p.rapidapi.com/lyrics/zenith%2520denzel%2520curry" headers = {'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE"} response = requests.request ("GET", url, headers = headers) print (response.text)
Se till att ditt program ser likadant ut (med en annan API -nyckel) och gå sedan till variabeln "url". Du kommer att märka att Canarados standardparameter är 'Zenith' av Denzel Curry. Du kan ändra det genom att ange vilken låt du vill. Till exempel, om jag ville söka efter textinformation om Michael Jacksons Thriller, kan jag skriva "thriller" istället för "zenith denzel curry", så att webbadressen nu ser ut som:
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/thriller"
Du kan också lägga till blanksteg utan att tveka - webbläsaren lägger automatiskt till %2520 tecken (du märker dem istället för mellanslag i standardadressen). Till exempel kan en sökning efter Gangstas Paradise se ut så här:
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/gangstas paradise"
Kör programmet genom att ersätta standardvärdet "zenith%2520denzel%2520curry" med valfri låt. Du kommer att märka att texterna är utskrivna, men på ett svårläst sätt. Vad mer - annan information, inklusive låtens utgivningsdatum, titel och API: s statusinformation hindrar visningen av texterna. Låt oss fixa detta i nästa steg.
Steg 4: Formatera texterna
Att formatera texterna så att de är läsbara är inte så svårt. De flesta med viss kunskap om programmering kommer att kunna göra detta ganska enkelt. Istället för att bara skriva ut "response.text", låt oss använda metoden.json (). Detta kommer att organisera API: s information i en ordlista och göra allt mycket mer tillgängligt.
Börja med att skapa en variabel för att hålla 'response.json ()'. Jag har namngett min variabel 'data'.
data = response.json ()
Använd sedan följande 'för' -loop för att komma åt texterna.
för i i data ['innehåll']:
print (i ['lyrics'])
Ovanstående kod navigerar till dataordlistans innehållsnyckel. Inom innehållsnyckeln tillåter for -loop dig att navigera till tangenten "lyrics". Koden ska nu se ut så här:
importförfrågningar
import json url = "https://canarado-lyrics.p.rapidapi.com/lyrics/YOUR-SONG-HERE" headers = {'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE"} response = requests.request ("GET", url, headers = headers) data = response.json () för i in data ['content']: print (i ['lyrics'])
Kör det här programmet så märker du att texterna är mycket mer läsbara. I nästa steg kommer vi att lägga till några extra variabler, så att vi kan använda en låts titel som ingång och så att vi kan mata ut texterna till Alexa.
Steg 5: Ingångar och utgångar
Hittills har vi skrivit in låtens titel i slutet av webbadressen. Det vore trevligt om vi kunde använda en variabel från en ingång och sammanfoga de två strängarna (url och låttitel). Att göra det är faktiskt ganska enkelt.
För tillfället, låt oss använda Pythons inmatningsfunktion. När vi har laddat upp koden till Wayscript kommer vi istället att använda vårt tal som en ingång. Låt oss skapa en låttitelvariabel inställd på en ingång som ber användaren att "ange en låttitel":
song_title = input ("Ange en låt för att hitta texten för:")
Koppla sedan samman den här strängen med webbadressen med Pythons+operatör för strängar
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + song_title
När du kör programmet behöver du inte längre redigera webbadressen i programmet. Svara istället helt enkelt på ingången med låtens titel, så ska sångtexten skrivas ut.
Ditt program ska nu se ut så här:
importförfrågningar
import json song = input ("Ange en låt för att hitta texten för:") url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + song headers = {'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE"} response = requests.request ("GET", url, headers = headers) data = response.json () för i in data ['content']: print (i ['lyrics'])
Slutligen, låt oss skapa en variabel för att mata ut texterna. Börja med att skapa en variabeluppsättning till en tom sträng. Kombinera sedan 'i [' lyrics ']' till slutet av det. Skriv ut variabeln utanför for -slingan.
texter = ""
för i in data ['content']: lyrics += i ['lyrics'] print (text)
Det slutliga programmet bör se ut så här:
importförfrågningar
import json song = input ("Ange en låt för att hitta texten för:") url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + song headers = {'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE"} response = requests.request ("GET", url, headers = headers) data = response.json () lyrics = "" för i in data ['content']: lyrics += i ['lyrics'] print (lyrics)
Programmet kommer att skriva ut exakt samma sak, men nu har du en variabel som du kan använda som utgång. Nu kan vi äntligen lägga till Alexa och e -postfunktionen med Wayscript.
Steg 6: Lägga till Alexa Trigger
För att lägga till din första utlösare, klicka på knappen "Lägg till utlösare":
- En sökfält kommer att dyka upp - sök efter "Alexa" och du kommer att märka Alexa -utlösaren. Om du inte har använt Alexa -utlösaren innan detta, eller om det här är ditt första projekt, kan du behöva klicka på 'import'. När den väl är importerad klickar du bara på den och den ska läggas till.
- Aktivera utlösaren genom att klicka på den pillerformade omkopplaren. Det ska bli grönt. På vänster sida kommer du att märka ett avsnitt som säger "Outputs". Klicka på kryssrutan som säger "Spoken Input" och ange ett värde som liknar vår tidigare variabel song_title. Vi kan nu använda din talade input i stället för input -satsen som vi hade använt tidigare
- Se till att du har skrivit ett standardvärde (dina favoritlåtar kanske), eftersom utan ett kan du stöta på några fel.
I nästa steg lägger vi till vårt Python -program, metoden Skicka e -post och vi får Alexa att bekräfta att metoden har slutförts.
Steg 7: Lägga till ditt Python -program
För att lägga till ditt program i ditt nuvarande Wayscript -flöde, klicka på "Lägg till steg"
- Sök efter Python och klicka på Python -åtgärden. Detta bör uppdatera utlösaren och du kommer att märka att en vänster flik visas.
- Håll muspekaren över programmet på sidopanelen och du kommer att märka att knappen "Redigera kod" dyker upp. Klicka på den och en helskärmsredigerare dyker upp.
- I helskärmsredigeraren kopierar och klistrar du in pythonprogrammet som vi hade skapat tidigare.
- Ta bort variabeln song_title = input ("…") som vi hade skrivit och lägg till variabeln input -variabel som vi skapade i föregående steg. Variabler som skapats i föregående steg finns i nedre vänstra hörnet.
- Ditt nya program ska se ut som den sjätte bilden som bifogas ovan.
- Slutligen vill vi ställa in vår textvariabel som en utgång. För att göra detta, kopiera och klistra in följande kod längst ner i programmet (antingen under eller i stället för utskriftsuttalandet)
variabler ['Song_Lyrics'] = texter
Detta skapar en utmatningsvariabel som heter Song_Lyrics och ställer den lika med variabeln "lyrics" som vi hade skapat tidigare. Ditt sista program ska se ut precis som den sista bilden som bifogades ovan. Kör koden bara en gång - så att Wayscript vet vad som händer och kan skapa dina utgångsvariabler. Detta kan ta några ögonblick, men om det tar för lång tid kan du behöva ladda om sidan. Wayscript innehåller några buggar, så det värsta scenariot kan innebära att man måste återskapa manuset.
Steg 8: Skicka texten och bekräfta med Alexa
Vi har ytterligare två steg att lägga till i vårt WayScript -flöde - ett steg som låter dig skicka ett e -postmeddelande till dig själv och ett annat som bekräftar att ett e -postmeddelande har skickats. Låt oss börja med att skapa e -poststeget.
- Klicka på "Lägg till steg", sök efter "Skicka e-post" och leta upp fliken till vänster
- Använd variabler som skapats i föregående steg som "Song_Name" (eller Song_Title) och "Song_Lyrics"
- Du kan formatera e -postmeddelandet hur som helst du vill. Till exempel har jag lagt till ordet "Lyrics" efter variabeln "Song_Name" och lagt till meningen "Här är texten till låten du begärde" nära toppen.
Detta skript skickar ett meddelande till det e -postmeddelande som du hade registrerat dig med. Om du vill skicka det till ett annat e -postmeddelande kan du behöva använda SMTP -e -poståtgärden istället.
Slutligen, låt oss bekräfta att e -postmeddelandet har skickats med Alexa.
- Klicka på "Lägg till steg" och sök efter "Alexa" igen. Lägg till Alexa -åtgärden.
- Jag har konfigurerat det så att när e -postmeddelandet har skickats säger Alexa att "Lyrics for [Song_Name] has been sent"
Du är klar! Kör programmet en gång genom att klicka på knappen "Kör". Om det inte finns några fel kan du nu använda det med Alexa.
Steg 9: Du är klar
För att kunna använda den med Alexa måste du använda följande kommandon:
'Alexa, starta Wayscript'
När Alexa har bekräftat att Wayscript har lanserats säger du:
'Kör [Programnamn] med [Songnamn]'
Till exempel heter mitt program 'Song Lyrics' - Om jag vill att Alexa ska skicka texterna till Thriller säger jag:
'Run Song Lyrics with Thriller'
Rekommenderad:
IoT -kattmatare med partikelfoton integrerat med Alexa, SmartThings, IFTTT, Google Sheets: 7 steg (med bilder)
IoT -kattmatare med partikelfoton integrerat med Alexa, SmartThings, IFTTT, Google Sheets: Behovet av en automatisk kattmatare är självförklarande. Katter (vår katt heter Bella) kan vara vidriga när de är hungriga och om din katt är som min kommer den att äta skålen torr varje gång. Jag behövde ett sätt att automatiskt dosera en kontrollerad mängd mat
HC - 06 (slavmodul) Ändra "NAME" utan användning "Monitor Serial Arduino" som "fungerar enkelt": Felfritt sätt!: 3 steg
HC - 06 (slavmodul) Ändra "NAME" utan användning "Monitor Serial Arduino" … som "fungerar enkelt": Felfritt sätt!: Efter " Lång tid " försöker ändra namn på HC - 06 (slavmodul), med " serieövervakning av Arduino, utan " Lyckas ", jag hittade ett annat enkelt sätt och jag delar nu! Ha kul kompisar
3 Axis CNC Router - 60 "x60" x5 " - JunkBot: 5 steg (med bilder)
3 Axis CNC Router - 60 "x60" x5 " - JunkBot: This Instructable är den första i serien som dokumenterar konstruktionen av en DIY 3 -axlig CNC -router. Detta är också mitt bidrag till Universal Laser Cutter Contest. Målet med denna instruerbara är inte att visa en fullständig steg för steg -utveckling utan snarare
Gör bilder sömlösa endast horisontellt eller vertikalt (för "The GIMP").: 11 steg (med bilder)
Gör bilder sömlösa endast horisontellt eller vertikalt (för "The GIMP") .: Om du försöker plug-in "Gör sömlösa" i GIMP, blir bilden sömlös både horisontellt och vertikalt samtidigt. Det tillåter dig inte att göra det sömlöst i bara en dimension. Denna instruerbara hjälper dig att göra bilder
Vbs Net Send Messenger: 3 steg
Vbs Net Send Messenger: Här är instruktionen om hur man gör en Net Send Messenger med Visual Basic Script (vbs) .Jag använde vbs istället för batch eftersom jag inte gillar att använda batch. Batch är för enkelt. Bara för att meddela dig, det här är min första instruerbara. Jag hoppas du tycker om det!