Inhoudsopgave:
- Benodigdheden
- Stap 1: Wayscript en Alexa instellen
- Stap 2: Maak een RapidAPI-account aan
- Stap 3: Schrijf een basisprogramma
- Stap 4: De teksten opmaken
- Stap 5: Input's en Output's
- Stap 6: De Alexa-trigger toevoegen
- Stap 7: Uw Python-programma toevoegen
- Stap 8: Verzend de teksten en bevestig met Alexa
- Stap 9: Je bent klaar
Video: "Alexa, stuur me de teksten naar _____" - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Luister je naar een nummer waarmee je wilt meezingen? Normaal gesproken zou je de zware taak moeten uitvoeren om de naam van het nummer in Google te typen, gevolgd door het woord 'lyrics'. Je zou normaal gesproken ook een ruime hoeveelheid typefouten maken, een bepaald aantal toetsen verkeerd klikken en te maken krijgen met de onvermijdelijke vertraging van je apparaat. Tegen de tijd dat je songteksten hebt gevonden, merk je dat je nummer voorbij is en dat al dat werk voor niets is geweest.
Misschien zit je midden in een wereldwijde pandemie en lijkt het lenen van de telefoon van je vriend niet het beste idee, laat staan ontroerend die karaokemachine die in de hoek is weggestopt. Je wilt beschermd worden, maar de tekst van het nummer kennen is bijna net zo essentieel. Je hebt een handige, contactloze methode nodig om naar songteksten te zoeken.
Misschien zijn beide scenario's lichte overdrijvingen (de eerste zeker meer), maar toch zou het zeker handig zijn om songteksten rechtstreeks naar je e-mail te sturen zodra je erom vraagt. Dat is waar deze Instructable (samen met Alexa, Wayscript en een beetje Python) binnenkomt. Vraag Alexa gewoon om de tekst van je favoriete nummer en binnen een paar seconden worden ze rechtstreeks in je inbox afgeleverd.
Als middelbare scholier die mijn laatste jaar ingaat, heb ik gemerkt dat dit project behoorlijk nuttig is en heb ik het sinds de bouw ervan zelfs aanzienlijk gebruikt (een zeldzaamheid - aangezien de meeste van mijn projecten maanden later onaangeroerd worden gevonden).
Deze tutorial is redelijk beginnersniveau, maar het is handig om wat Python te kennen voordat je aan de slag gaat.
Benodigdheden
Materialen:
- Amazon Echo/Elke op Alexa gebaseerde slimme luidspreker
- WayScript-account (wordt ingesteld in de volgende stappen)
- RapidAPI-account
- Enige kennis van Python (niet noodzakelijk, maar nuttig)
Stap 1: Wayscript en Alexa instellen
Wat is Wayscript?
Wayscript is een krachtig hulpmiddel waarmee u programma's kunt uitvoeren met verschillende triggers. We gebruiken de Alexa-trigger in deze Instructable, maar voel je vrij om te experimenteren/verkennen van de software - er zijn allerlei soorten functionaliteit die je kunt toevoegen.
Laten we om te beginnen een account aanmaken bij Wayscript:
- Klik op de knoppen 'Gratis aan de slag' of 'Aanmelden'. Ik gebruikte de optie 'Registreren bij Github' omdat dit het handigst leek.
- Nadat u een account heeft aangemaakt, wordt u naar de ontwikkelomgeving van Wayscript geleid. Het is handig om de tutorial door te nemen voordat we beginnen.
- Nadat u de zelfstudie hebt voltooid, navigeert u naar uw profiel. Klik op de knop 'Een nieuw script maken' en u wordt gevraagd uw project een naam te geven. Ik heb het 'Song Lyrics' genoemd, maar je kunt het alles noemen wat je wilt. Zorg ervoor dat het gemakkelijk te zeggen is, want je gebruikt de programmanaam wanneer je Alexa vraagt om je de songtekst te sturen.
- Zodra u uw naam heeft gemaakt, klikt u op de knop 'creëren' en wordt u naar een nieuwe Wayscript-ontwikkelomgeving geleid. We komen hier snel op terug.
Voordat we verder gaan, laten we je Wayscript-account verbinden met Alexa:
- Ga naar amazon.com en log in op je account - met name degene die is verbonden met je Alexa-compatibele luidspreker.
- Ga naar deze link: https://www.amazon.com/WayScript-Inc/dp/B07QXXG32… en klik op 'inschakelen'. Als de link om welke reden dan ook niet werkt, zoek dan naar de Wayscript Alexa Skill - klik nogmaals op 'inschakelen'
- Nadat u op inschakelen heeft geklikt, moet u deze koppelen aan uw Wayscript-account. Klik op 'Account koppelen' en u zou naar de website van wayscript moeten worden geleid. Zodra u zich aanmeldt, zou er een scherm moeten verschijnen met de tekst 'Uw account is succesvol gekoppeld'.
Als je dit allemaal hebt ingesteld, kunnen we (bijna) beginnen met programmeren!
Stap 2: Maak een RapidAPI-account aan
Om de songtekst te zoeken, gebruiken we de 'Canarado Lyrics API' die toegankelijk is via RapidAPI. Als je al een RapidAPI-account hebt, kun je deze stap overslaan, maar zo niet, lees dan verder.
Begin met het maken van uw RapidAPI-account:
- Klik op de knop 'Aanmelden' in de rechterbovenhoek en meld u aan met een van de opties die ze hebben (Google, Github, Facebook of gewone aanmelding).
- Zodra je je hebt aangemeld, ga je naar de Canarado Lyrics API:
Als u een scherm ziet dat lijkt op de derde afbeelding die hierboven is bijgevoegd, heeft u deze stap voltooid. We zijn eindelijk klaar om te beginnen met programmeren.
Stap 3: Schrijf een basisprogramma
Zoals vermeld in de vorige stap, bevindt de Canarado Lyrics API zich op:
Eenmaal daar, ga je naar de rechterhelft van het scherm met de kop 'Code Snippets'. Ik zal Python gebruiken in deze instructable, maar als je de voorkeur geeft aan een andere taal, ga je gang en gebruik die in plaats daarvan.
Klik op het dropdown menu met het label '(Node.js) Unrest' en navigeer naar de taal van je keuze. Nogmaals, ik zal Python gebruiken - met name Python (verzoeken) - omdat dit programma voor de meeste informatie een verzoek aan de host van de API vereist. Kopieer de code door rechtsboven op de knop 'Code kopiëren' te klikken. Plak deze code in uw code-editor naar keuze - ik gebruik Jupyter's Notebook-omgeving.
Nadat u het programma hebt geplakt, importeert u de json-module van Python. Zo kunnen we de teksten uitprinten. Voeg de volgende code bovenaan toe (onder importverzoeken)
import json
Nadat je de json-module hebt geïmporteerd, zou je programma er als volgt uit moeten zien:
importverzoeken
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': "UW-API-KEY-HIER" } response = requests.request("GET", url, headers=headers) print(response.text)
Zorg ervoor dat uw programma er hetzelfde uitziet (met een andere API-sleutel) en ga dan naar de variabele 'url'. U zult merken dat de standaardparameter van Canarado 'Zenith' van Denzel Curry is. Je kunt dat veranderen door een nummer in te voeren dat je leuk vindt. Als ik bijvoorbeeld naar tekstinformatie over Michael Jackson's Thriller wil zoeken, kan ik "thriller" invoeren in plaats van "zenith denzel curry", zodat de url er nu als volgt uitziet:
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/thriller"
U kunt ook zonder enige aarzeling spaties toevoegen - de browser voegt automatisch de %2520-tekens toe (u ziet ze in plaats van spaties in de standaard-URL). Een zoekopdracht naar Gangstas Paradise kan er bijvoorbeeld als volgt uitzien:
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/gangstas paradise"
Start het programma door de standaardwaarde "zenith%2520denzel%2520curry" te vervangen door een nummer naar keuze. Je zult merken dat de teksten zijn uitgeprint, maar op een moeilijk leesbare manier. Bovendien belemmeren andere informatie, waaronder de releasedatum van het nummer, de titel en de statusinformatie van de API, het zicht op de songtekst. Laten we dit in de volgende stap oplossen.
Stap 4: De teksten opmaken
De teksten zo opmaken dat ze leesbaar zijn, is niet zo moeilijk. De meeste mensen met enige kennis van programmeren zullen dit vrij gemakkelijk kunnen doen. In plaats van simpelweg "respons.text" af te drukken, gebruiken we de.json()-methode. Dit zal de informatie van de API in een woordenboek organiseren en alles een stuk toegankelijker maken.
Maak om te beginnen een variabele voor 'respons.json()'. Ik heb mijn variabele 'data' genoemd.
gegevens = respons.json()
Gebruik vervolgens de volgende 'for'-lus om toegang te krijgen tot de songtekst.
voor i in data['content']:
print(i['tekst'])
De bovenstaande code navigeert naar de 'content'-toets van de datadictionary. Binnen de inhoudstoets kunt u met de for-lus naar de 'lyrics'-toets navigeren. De code zou er nu ongeveer zo uit moeten zien:
importverzoeken
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() for i in data['content']: print(i['lyrics'])
Draai dit programma en je zult merken dat de teksten een stuk beter leesbaar zijn. In de volgende stap zullen we een paar extra variabelen toevoegen, zodat we de titel van een nummer als invoer kunnen gebruiken en zodat we de songtekst naar Alexa kunnen sturen.
Stap 5: Input's en Output's
Tot nu toe hebben we de titel van het nummer aan het einde van de URL getypt. Het zou leuk zijn als we een variabele van een invoer zouden kunnen gebruiken en de twee strings (url en titel van het nummer) kunnen samenvoegen. Dat doen is eigenlijk vrij eenvoudig.
Laten we voorlopig de invoerfunctie van Python gebruiken. Zodra we de code naar Wayscript hebben geüpload, gebruiken we in plaats daarvan onze spraak als invoer. Laten we een songtitelvariabele maken die is ingesteld op een invoer die de gebruiker vraagt om "een songtitel in te voeren":
song_title = input("Voer een nummer in om de songtekst te vinden voor: ")
Voeg vervolgens deze tekenreeks samen met de url, met behulp van de '+'-operator van Python voor Strings
url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + song_title
Wanneer u het programma nu uitvoert, hoeft u de url in het programma niet langer te bewerken. Reageer in plaats daarvan op de invoer met de titel van uw nummer en de songtekst moet worden afgedrukt.
Je programma zou er nu ongeveer zo uit moeten zien:
importverzoeken
import json song = input("Voer een nummer in om de songtekst te vinden voor: ") url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + songheaders = { 'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE" } response = requests.request("GET", url, headers=headers) data = respons.json() voor i in data['content']: print(i['lyrics'])
Laten we tot slot een variabele maken om de songtekst uit te voeren. Begin met het maken van een variabele die is ingesteld op een lege tekenreeks. Voeg vervolgens 'i['lyrics']' toe aan het einde ervan. Print de variabele buiten de for-lus.
songtekst = ""
for i in data['content']: lyrics += i['lyrics'] print(lyrics)
Het uiteindelijke programma zou er als volgt uit moeten zien:
importverzoeken
import json song = input("Voer een nummer in om de songtekst te vinden voor: ") url = "https://canarado-lyrics.p.rapidapi.com/lyrics/" + songheaders = { 'x-rapidapi-host': "canarado-lyrics.p.rapidapi.com", 'x-rapidapi-key': "YOUR-API-KEY-HERE" } response = requests.request("GET", url, headers=headers) data = respons.json() lyrics = "" for i in data['content']: lyrics += i['lyrics'] print(lyrics)
Het programma zal exact hetzelfde afdrukken, maar nu heb je een variabele die je als uitvoer kunt gebruiken. Nu kunnen we eindelijk de Alexa- en e-mailfunctionaliteit toevoegen met Wayscript.
Stap 6: De Alexa-trigger toevoegen
Om uw eerste trigger toe te voegen, klikt u op de knop 'Trigger toevoegen':
- Er verschijnt een zoekbalk - zoek naar 'Alexa' en je zult de Alexa-trigger opmerken. Als je de Alexa-trigger nog niet eerder hebt gebruikt, of als dit je eerste project is, moet je mogelijk op 'importeren' klikken. Eenmaal geïmporteerd, klik er gewoon op en het zou moeten worden toegevoegd.
- Schakel de trigger in door op de pilvormige schakelaar te klikken. Het moet groen worden. Aan de linkerkant ziet u een gedeelte met de tekst 'Uitgangen'. Klik op het selectievakje 'Gesproken invoer' en voer een waarde in die lijkt op onze vorige song_title-variabele. We kunnen nu uw gesproken invoer gebruiken in plaats van de invoerverklaring die we eerder hadden gebruikt
- Zorg ervoor dat u een standaardwaarde hebt geschreven (misschien uw favoriete nummers), want zonder een kunt u enkele fouten tegenkomen.
In de volgende stappen zullen we ons Python-programma toevoegen, de Send Email-methode en we zullen Alexa laten bevestigen dat de methode voltooid is.
Stap 7: Uw Python-programma toevoegen
Om uw programma toe te voegen aan uw huidige Wayscript-stroom, klikt u op 'Stap toevoegen'
- Zoek naar Python en klik op de actie Python. Dit zou de trigger moeten verversen en je zult zien dat er een linkertabblad verschijnt.
- Beweeg de muisaanwijzer over het programma op het zijpaneel en je ziet een knop 'Code bewerken' verschijnen. Klik erop en er verschijnt een editor op volledig scherm.
- Kopieer en plak in de editor voor volledig scherm het python-programma dat we eerder hadden gemaakt.
- Verwijder de song_title = input("….") variabele die we hadden geschreven en voeg de gesproken invoervariabele toe die we in de vorige stap hebben gemaakt. Variabelen die in de vorige stappen zijn gemaakt, vindt u in de linkerbenedenhoek.
- Uw nieuwe programma zou er ongeveer zo uit moeten zien als de 6e afbeelding die hierboven is bijgevoegd.
- Ten slotte willen we onze songtekstvariabele als uitvoer instellen. Om dit te doen, kopieer en plak je de volgende code onderaan je programma (ofwel onder of in plaats van de printopdracht)
variabelen ['Song_Lyrics'] = songteksten
Dit creëert een uitvoervariabele met de naam Song_Lyrics en stelt deze gelijk aan de 'lyrics'-variabele die we eerder hadden gemaakt. Uw uiteindelijke programma zou er net zo uit moeten zien als de laatste afbeelding die hierboven is bijgevoegd. Voer de code slechts één keer uit, zodat Wayscript weet wat er aan de hand is en uw uitvoervariabelen kan maken. Dit kan even duren, maar als het te lang duurt, moet u de pagina mogelijk opnieuw laden. Wayscript bevat een paar bugs, dus in het ergste geval kan het nodig zijn om het script opnieuw te maken.
Stap 8: Verzend de teksten en bevestig met Alexa
We hebben nog twee stappen om toe te voegen aan onze WayScript-stroom - een stap waarmee je een e-mail naar jezelf kunt sturen en een andere die bevestigt dat er een e-mail is verzonden. Laten we beginnen met het maken van de e-mailstap.
- Klik op 'Stap toevoegen', zoek naar 'E-mail verzenden' en ga naar het tabblad aan de linkerkant
- Gebruik variabelen die in de vorige stappen zijn gemaakt, zoals 'Song_Name' (of Song_Title) en 'Song_Lyrics'
- U kunt de e-mail opmaken zoals u dat wilt. Ik heb bijvoorbeeld het woord 'Lyrics' toegevoegd na de variabele 'Song_Name' en heb de zin 'Hier is de songtekst van het aangevraagde nummer' bovenaan toegevoegd.
Dit script stuurt een bericht naar het e-mailadres waarmee u zich had geregistreerd. Als u het naar een ander e-mailadres wilt verzenden, moet u mogelijk de SMTP-e-mailactie gebruiken.
Laten we tot slot bevestigen dat de e-mail met Alexa is verzonden.
- Klik op 'Stap toevoegen' en zoek opnieuw naar 'Alexa'. Voeg de Alexa-actie toe.
- Ik heb het zo ingesteld dat zodra de e-mail is verzonden, Alexa zegt 'De songteksten voor [Song_Name] zijn verzonden'
Je bent klaar! Start het programma één keer door op de knop 'Uitvoeren' te klikken. Als er geen fouten zijn, kun je het nu gebruiken met Alexa.
Stap 9: Je bent klaar
Om het met Alexa te gebruiken, moet je de volgende opdrachten gebruiken:
'Alexa, start Wayscript'
Zodra Alexa heeft bevestigd dat Wayscript is gelanceerd, zeg je:
'Voer [Programmanaam] uit met [Songnaam]'
Mijn programma heet bijvoorbeeld 'Song Lyrics' - Als ik wil dat Alexa me de songtekst naar Thriller stuurt, zeg ik:
'Run Songteksten met Thriller'
Aanbevolen:
Stuur ThingSpeak-meldingen naar Mi Band 4: 6 stappen
Stuur ThingSpeak-meldingen naar Mi Band 4: Sinds ik mijn Xiaomi Mi Band 4 heb gekocht, dacht ik aan de mogelijkheid om enkele gegevens van mijn weerstation te volgen die beschikbaar zijn op ThingSpeak via mijn Mi Band 4. Na wat onderzoek ontdekte ik dat de mogelijkheden van Mi Band 4 zijn
Games uploaden naar Arduboy en 500 games naar Flash-cart: 8 stappen
Spellen uploaden naar Arduboy en 500 spellen naar Flash-cart: Ik heb een zelfgemaakte Arduboy gemaakt met serieel Flash-geheugen dat maximaal 500 spellen kan opslaan om onderweg te spelen. Ik hoop te delen hoe je games kunt laden, inclusief hoe je games opslaat in het seriële flash-geheugen en je eigen geconsolideerde gamepakket kunt maken
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): 5 stappen
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): door Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
Hoe maak je Bluetooth Shields voor Upload Sketch naar Arduino 9 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Hoe maak je Bluetooth-schilden voor het uploaden van schets naar Arduino: je kunt een schets naar Arduino uploaden vanaf Android of pc via Bluetooth, om het te doen heb je een klein extra onderdeel nodig, zoals een Bluetooth-module, condensator, weerstand, baardbord en jumperdraden, dan haak je samen omhoog en verbind met Arduino-pin
12v naar USB-adapter 12v naar 5v transformator (ideaal voor auto's): 6 stappen
12v naar USB-adapter 12v naar 5v-transformator (ideaal voor auto's): hier wordt uitgelegd hoe u een 12v-naar-USB (5v)-adapter maakt. Het meest voor de hand liggende gebruik hiervan is voor 12v-autoadapters, maar overal waar je 12v hebt, kun je het gebruiken! Als je 5v nodig hebt voor iets anders dan USB, sla dan gewoon de stappen over het toevoegen van de USB-poorten over