[PYTHON] So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht

Einführung

Der 3. Labor-Hackathon fand statt. Andere Mitglieder Artikel 1, Artikel 2 Dieses Mal habe ich beschlossen, einen Raspberry Pi zu machen, der Tweets spricht. Was das Motiv für die Erstellung betrifft, so beschrieb der Artikel, auf den ich mich bezog, als ich die ersten Einstellungen von Razupai zum ersten Mal vornahm, Razupai, der laut spricht. .. Als ich es las, hatte ich das Gefühl, dass ich eines Tages einen Razz Pie machen möchte, der die Tweets von ** Tsui Abolition ** im Labor spricht. Dieses Mal bezog ich mich auf ** Artikel **

Was du vorbereitet hast

Überprüfen Sie den Lautsprecher

Überprüfen Sie den Ton des Lautsprechers

$ speaker-test -t wav

Sie können den Ton mit "Strg + C" stoppen. Zu diesem Zeitpunkt kam Ton von dem über HDMI angeschlossenen Display, um Ton über den Kopfhörer (virtueller Lautsprecher) zu erzeugen.

$ amixer cset numid=3 1

Sie können durch Eingabe vom HDMI-Ausgang zum analogen Ausgang konvertieren und den Ton über den Lautsprecher wiedergeben.

Lautstärkeregelung

$ alsamixer

Installation von OpenJtalk (Sprachsynthesesoftware)

Was ist OpenJtalk?

--Open Source Voice Synthesis Engine

Installieren Sie OpenJtalk / Dictionary-Sprachdaten

$ sudo apt-get update
$ sudo apt-get install open-jtalk 
$ sudo apt-get install open-jtalk-mecab-naist-jdic 
$ sudo apt-get install htsengine libhtsengine-dev 
$ sudo apt-get install hts-voice-nitech-jp-atr503-m001

Wenn unterwegs die Meldung "Möchten Sie fortfahren [J / N]?" Angezeigt wird, geben Sie "J" ein und drücken Sie die Eingabetaste, um die Installation fortzusetzen.

Erstellen von jtalk.sh

Als Nächstes erstellen wir ein Skript zum Ausführen von OpenJtalk.

jtalk.sh


#!/bin/sh
tmpfile=/tmp/jtalk.wav
htsvoice="/usr/share/hts-voice/\
nitech-jp-atr503-m001/\
nitech_jp_atr503_m001.htsvoice"
echo "$1" | open_jtalk \
-x /var/lib/mecab/dic/open-jtalk/naist-jdic \
-m $htsvoice \
-ow $tmpfile && \
aplay --quiet $tmpfile
rm $tmpfile

Geben Sie dem erstellten Skript die Ausführungsberechtigung.

$ chmod 755 jtalk.sh

Testen Sie Folgendes in der Befehlszeile

$ ./jtalk.sh Hallo

Wenn Sie vom Lautsprecher als "Hallo" hören, OK!

Holen Sie sich das Twitter API Access Token

Melden Sie sich über die unten stehende URL bei Twitter an. https://apps.twitter.com/

  1. Klicken Sie auf "Apps erstellen".
  2. Geben Sie die erforderlichen Elemente ein (entsprechend und in Ordnung). スクリーンショット 2020-02-12 18.07.20.png
  3. Klicken Sie auf "Erstellen" und dann auf "Details" der erstellten APP.
  4. Wählen Sie die Registerkarte "Schlüssel und Token" und klicken Sie auf die Schaltfläche "Generieren" für Zugriffstoken und Zugriffstoken-Geheimnis.
  5. Notieren Sie sich den angezeigten "API-Schlüssel", "API-Geheimschlüssel", "Zugriffstoken" und "Zugriffstoken-Geheimnis". スクリーンショット 2020-02-12 17.57.33.png

Erstellen eines Python-Programms

Python-Einstellungen

#Erstellen einer virtuellen Umgebung
$ sudo apt-get install python3-dev python3-venv
$ python3 -m venv env
$ cd env
$ source bin/activate

Installieren Sie tweepy

(env) $ python -m pip install tweepy

Erstellen Sie teitter.py

#-*- coding:utf-8 -*-
import tweepy
import os
#Stellen Sie verschiedene Schlüssel ein
CONSUMER_KEY = 'xxxxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxx'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
ACCESS_TOKEN = 'xxxxxxxxxxxxxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
#API-Instanz erstellen
api = tweepy.API(auth)
print('Done!') #Bereit

#Holen Sie sich Tweets
for status in tweepy.Cursor(api.user_timeline,screen_name = "ID des erworbenen Benutzers",exclude_replies = True).items():
    tw_text = status.text
    tw_text = ''.join(tw_text.splitlines())
    tw_text = tw_text.replace('(',' ').replace(')',' ').replace(' ','')
    print(tw_text)
    os.system('/home/pi/jtalk.sh ' + tw_text)
    break #Zur Zeit nur die neuesten Tweets

Eigentlich bewegen!

Geben Sie den folgenden Code ein

(env) $ python twitter.py 

Ich habe die neuesten Tweets des angegebenen Benutzers mit männlicher Stimme gesprochen! (Auch wenn es ein Schlüssel ist, hat er gesprochen, wenn er mir gefolgt ist)

abschließend

Es ist uns gelungen, Razpai dazu zu bringen, die neuesten Tweets des in diesem Hackathon angegebenen Benutzers zu sprechen. Daher möchte ich Verbesserungen vornehmen, damit der angegebene Benutzer sprechen kann, wenn er twittert!

Danke fürs Lesen!

Recommended Posts

So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
Installieren Sie einen Taktschalter am Raspeltorte, um die täglichen "Guten Morgen Yosoro !!" - Tweets angenehm zu gestalten
So erstellen Sie einen Wrapper, der die Signatur der zu umschließenden Funktion beibehält
So berechnen Sie die Volatilität einer Marke
Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert
Wie man eine Benutzergruppe mit Slack-Benachrichtigung erwähnt, wie man die ID einer Benutzergruppe überprüft
Eine neue Form der App, die mit GitHub funktioniert: So erstellen Sie GitHub-Apps
Verwendung von Raspeye Relay Module Python
Erstellen Sie einen BOT, der die Discord-URL verkürzt
Grundlagen von PyTorch (2) - Wie erstelle ich ein neuronales Netzwerk?
Ich habe "Ich habe versucht, ein Skript zu erstellen, das gepostete Bilder sofort speichert, indem ich zu den Tweets eines bestimmten Benutzers auf Twitter zurückgekehrt bin" überarbeitet.
Die weltweit am einfachsten zu verstehende Erklärung zur Herstellung von LINE BOT (1) [Kontoerstellung]
[Ubuntu] So löschen Sie den gesamten Inhalt des Verzeichnisses
So ermitteln Sie den Skalierungskoeffizienten eines bipolaren Wavelets
Gibt es ein Geheimnis in der Häufigkeit der Umfangszahlen?
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
Ich habe die Daten von Raspberry Pi an GCP gesendet (kostenlos)
Erstellen Sie mit Raspberry Pi + DHT11 ganz einfach einen TweetBot, der Sie über Temperatur und Luftfeuchtigkeit informiert.
So erstellen Sie einen interaktiven LINE BOT 004 (beantworten Sie den Stichtag eines börsennotierten Unternehmens)
Wie erstelle ich eine japanisch-englische Übersetzung?
Wie man einen lockeren Bot macht
Wie erstelle ich einen Crawler?
So erstellen Sie eine rekursive Funktion
[Blender] So erstellen Sie ein Blender-Plug-In
Wie erstelle ich einen Crawler?
So bestimmen Sie die Existenz eines Selenelements in Python
Ich habe versucht, ein System zu erstellen, das nur gelöschte Tweets abruft
So überprüfen Sie, ob sich der angegebene Schlüssel im angegebenen Bucket in Boto 3 befindet
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
So überprüfen Sie die Speichergröße einer Variablen in Python
Erstellen Sie das Thema von Pythonista 3 wie Monokai (wie Sie Ihr eigenes Thema erstellen)
So erstellen Sie einen Befehl zum Lesen der Einstellungsdatei mit Pyramide
So überprüfen Sie die Speichergröße eines Wörterbuchs in Python
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
So geben Sie das Ausgabeergebnis des Linux-Befehls man in eine Datei aus
So ermitteln Sie die Scheitelpunktkoordinaten eines Features in ArcPy
Raspberry Pi --1 - Zum ersten Mal (Schließen Sie einen Temperatursensor an, um die Temperatur anzuzeigen)
[Python] Wie erstelle ich eine Matrix aus sich wiederholenden Mustern (repmat / tile)
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
[NNabla] So entfernen Sie die mittlere Ebene eines vorgefertigten Netzwerks
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
Ein Programm, das den Servobefehl der Funksteuerung empfängt, den Raspetorte unterbricht und protokolliert.
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
So laden Sie Dateien mit Python in den Cloud-Speicher hoch [Erstellen Sie mit Raspberry PI # 1 eine Festkommakamera]
Hypothese / Verifikation (176) Wie man ein Lehrbuch macht, das einfacher ist als "Das einfachste Lehrbuch für Quantencomputer"
Eine kleine süchtig machende Geschichte mit den Berechtigungen des von expdp angegebenen Verzeichnisses (für Anfänger)
[Twitter] Ich möchte die heruntergeladenen vergangenen Tweets (meines Kontos) in eine schöne CSV verwandeln
Anzeige der Signalstärke RSSI einer bestimmten SSID (Himbeer-Pi (Linux))
Ein Memo zur einfachen Verwendung des Beleuchtungsstärkesensors TSL2561 mit Raspberry Pi 2
Verwenden Sie Rasppie, um das Problem einer unzureichenden mobilen Wi-Fi-Verbindung zu lösen
[Python] Wie man eine Klasse iterierbar macht
So überprüfen Sie die Version von Django
Machen wir einen Jupyter-Kernel
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
Ein Memorandum darüber, wie man Pandas schreibt, das ich persönlich oft vergesse
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
[NNabla] Hinzufügen einer Quantisierungsschicht zur mittleren Schicht eines trainierten Modells