Transkripte
1. Willkommen: Hallo und willkommen zu diesem
Videokurs zum Erstellen eines KI-generierten Podcasts aus
Schlagzeilen mithilfe von Python, der Chat-GPT-API und der 11 Labs-API,
die alle drei sind. Mein Name ist Daniel und ich habe über 20 Jahre Erfahrung in
Programmierung und
Webentwicklung. Am Ende dieses
Kurses
werden Sie in der Lage sein, automatisch
eine MP3-Audiodatei
aus einem Nachrichten-RSS-Feed zu generieren , mit der Sie dann Ihren eigenen Podcast
erstellen können. Sie werden auch
gelernt haben, KI
und einen
Text-to-Speech-Dienst in Ihren Code zu integrieren . Zu diesen spezifischen
Fähigkeiten, die Sie lernen werden,
gehören die Verwendung von Python zum
Abrufen von Inhalten aus einem RSS-Feed Generieren menschenähnlicher Texte
mithilfe der Chat-GBT-API. Konvertierung von Text in Sprache
mithilfe der 11 Labs API. Erstellen einer MP3-Audiodatei aus dem Text zur Sprachausgabe. Der Kurs ist für Anfänger oder
Fortgeschrittene konzipiert und es sind keine Python- oder
KI-Erfahrung erforderlich. Wir werden jeden Schritt mit
klaren Erklärungen durchgehen , damit Sie dann verstehen, wie Sie den Code
anpassen
können , wenn Sie dies wünschen. Am Ende des Kurses wirst
du an
einem realen Projekt gearbeitet haben, das du
potenziellen Arbeitgebern zeigen könntest , oder du nutzt
eine Grundlage für einen Podcast. Oder Sie werden ein
Verständnis dafür haben, wie Sie KI in
andere Ihre Projekte
integrieren können. Der ideale Student
für diesen Kurs ist jemand, der daran
interessiert ist, etwas über Python, KI und andere APIs
von Drittanbietern
zu lernen . Und wer möchte
wissen, wie man die Erstellung von
Inhalten automatisiert , beispielsweise
mit einem Podcast. Es ist für dich. ob Sie ein Blogger,
ein Journalist,
ein Inhaltsersteller oder ein Hobbyist sind ein Inhaltsersteller oder ein Hobbyist , der einfach nur mit
den neuesten Technologien spielen möchte. Vielen Dank, dass Sie diesen Kurs
in Betracht gezogen haben. Ich hoffe, dich drinnen zu sehen.
2. Einrichtung: Okay, lass uns darauf eingehen. Aber bevor wir tatsächlich
mit dem Codieren beginnen, müssen
wir drei Dinge einrichten. Python und die verschiedenen
Pakete, die wir benötigen. Und OpenAI-Konto und API-Schlüssel und ein
11-Labs-Konto und API-Schlüssel. Also zuerst Python, Sie
haben es hoffentlich schon installiert und überprüfen Sie, ob Sie Python am Terminal
eingeben können . Und es sollte dir zeigen,
was du installiert hast. Hier. Es heißt, ich
muss 0.7 installiert haben. Und eigentlich
wollen wir Python drei. Ich bin auf einem Mac und es tatsächlich zwei Versionen
von Python installiert. Um Python drei zu spezifizieren, muss
ich Python drei eingeben. Ich denke für Windows nur Python. Es wird uns gut gehen, wenn Sie
Python Three installiert haben. Wie dem auch sei, lassen Sie uns
die Python-Eingabeaufforderung verlassen und es erneut mit
Python drei versuchen, okay? Und es heißt, ich habe Python 3.10
installiert, was in Ordnung ist. Was auch immer für
Sie funktioniert, Python oder Python Three, verwenden Sie das als Befehl für
den Rest des Kurses. Ich verlasse die
Python-Eingabeaufforderung erneut. Und jetzt müssen wir
sicherstellen, dass wir
die verschiedenen Module und
Pakete haben , die wir benötigen. Ich habe versucht, dies zu vereinfachen, indem eine Datei
requirements.txt
erstellt habe, und sie sollte in den
Ressourcen für diesen Kurs enthalten sein. Also lege es in das Verzeichnis, in dem
du gerade arbeitest. Jetzt habe ich einen Projektordner
namens AI Podcast Creator erstellt. Schauen wir uns an,
was da drin ist. Da haben wir es. Einfach requirements.txt. Das ist alles, was im Moment
da drin ist. Also das ist in Ordnung. Wir werden
das mit pip, einem Python-Installer, verwenden, um diese Pakete
automatisch abzurufen. Das machen wir
mit dem Befehl pip. Wenn Sie
Python Three auf Ihrem System eingeben müssen, sollten Sie hier pip3
eingeben, Bindestrich r und den Namen
der Anforderungsdatei
installieren. Die Anforderungen sind also ein
Punkt für den TXT-Moderator. Und es liest die Datei
requirements.txt
und lädt diese Pakete automatisch herunter
und installiert sie. Ich habe sie bereits für dich
installiert. Es kann ein paar
Sekunden dauern, sie herunterzuladen
und zu installieren, falls
etwas fehlt, aber dann sollten Sie bereit
sein, loszulegen. Die nächste Stufe sind also
die OpenAI und 11 Labs, Konten und API-Schlüssel. Und dafür müssen wir
zum Browser wechseln. Okay, hier im Browser, wenn Sie nach der OpenAI-API suchen, erhalten
Sie möglicherweise verschiedene Anleitungen
und Erklärungen und so, aber was wir brauchen, ist die
eigentliche Plattform selbst. Also platform.openai.com. Wenn Sie noch kein
Konto haben, erstellen
Sie bitte eines und
der kostenlose Tarif ist in Ordnung. Wenn Sie ein
Konto haben, müssen Sie sich
hier anmelden. Sobald Sie sich angemeldet haben,
erhalten Sie eine Reihe von Tokens, Menge Credits, die Sie verwenden können, und das wird
für unser Programm hier ausreichen. Wir müssen uns keine Gedanken
darüber machen, etwas zu bezahlen, aber wir müssen uns den API-Schlüssel
besorgen. Gehen Sie also zum
Kontomenü und suchen Sie nach dem Element API-Schlüssel anzeigen. Ich habe bereits einen erstellt,
Ihrer ist hier möglicherweise leer Klicken Sie
in diesem Fall auf die Schaltfläche Neuen geheimen Schlüssel
erstellen. Und das zeigt Ihren API-Schlüssel. Nur einmal,
das ist das einzige Mal, dass es auf dem Bildschirm zu sehen sein
wird. Also musst du jetzt eine Kopie machen, sonst verlierst du sie. Aber wenn du es verlierst, kannst du
auch ein anderes regenerieren. Es ist also sowieso keine
große Sache. Das wollen wir kopieren. Und wir werden das in
eine Umgebungsvariablendatei schreiben. Also müssen wir zurück zum Terminal wechseln,
um das zu erstellen. Zurück im Terminal
hier haben wir den OpenAI-API-Schlüssel
in unserer Zwischenablage, aber wir müssen
eine Datei erstellen, um ihn zu speichern. Und wir werden eine spezielle Datei
erstellen Umgebungsvariablendatei
bezeichnet wird, auch bekannt
als Punkt- oder Punkt-ENV. Wir wollen
diese grundlegende Textdatei erstellen. Ich werde hier den
Nano-Texteditor verwenden, aber Sie können jeden beliebigen
Texteditor verwenden, nano und es sind Punkt d und V.
Bitte verwenden Sie diese Benennung. Drücken Sie die Eingabetaste. Und es hat
diese leere Datei erstellt. Und hier gebe ich einen Variablennamen ein und füge
dann den API-Schlüssel ein. Also der Variablenname, ich verwende den Open AI API-Schlüssel,
entspricht dann ohne Leerzeichen. Und dann füge ich hier
den API-Schlüssel von OpenAI ein. Gut. Ich lasse das offen weil wir in
einer Minute
darauf zurückkommen werden , nachdem wir
den 11 Labs-API-Schlüssel haben
, der sich wieder
im Browser befindet. Ähnlich wie zuvor. Bei Betapunkt 11 Labore Punkt io. Bitte erstellen Sie ein Konto. Falls
Sie noch keins haben. Wenn Sie ein Konto haben, melden
Sie sich hier an. Sobald Sie sich
angemeldet haben, müssen wir
zum Kontomenü gehen , und diesmal klicken wir auf das
Profil. Jetzt können wir
den API-Schlüssel hier nicht sehen, also müssen wir auf die Schaltfläche
I klicken , damit er sichtbar wird. Wir können das jederzeit sehen,
du kannst
ein neues regenerieren , jederzeit wie zuvor. Lassen Sie uns
das kopieren und einfügen und zurück
zum Terminal gehen. Diese ENV-Punkt-Datei ist immer noch
geöffnet, was gut ist. Also müssen wir eine neue Linie erstellen. Und dieses Mal verwenden wir
dasselbe Format, aber wir nennen es 11 Labs. Der API-Schlüssel entspricht keinen Leerzeichen. Und wieder fügen wir
den API-Schlüssel dort ein. Das ist alles, was wir
für diese Datei brauchen. Also können wir diese Datei speichern und
beenden. Wenn du hier Nano verwendest, dann machst du Control X. Und dann wirst
du aufgefordert, es zu speichern. Ja. Und wir schließen die Datei und
gehen zurück zum Terminal. Wir haben also unsere API-Schlüssel bereit und
in einer ENV-Punkt-Datei gespeichert. Darauf werden wir mit Python zugreifen
. Wir haben alle
Python-Module installiert. Wir sind bereit, mit dem Programmieren zu
beginnen.
3. Umgebungsvariablen: Nun zu den lustigen Sachen,
der Programmierung, und ich habe hier eine leere
Python-Datei, die ich Create
Podcasts Punkt p-y genannt habe. Ich habe dafür gesorgt, dass sich dies
im selben Ordner befindet wie die ENV-Punkt-Datei, in der wir die API-Schlüssel zuvor
gespeichert haben. Sie befinden sich also in demselben
Ordner in diesem Programm. Ich werde
es in Stücke aufteilen. Und dieser erste Teil wird ein bisschen Code
sein , der
diese API-Schlüssel abruft und sie einfach auf dem Bildschirm
ausdruckt,
um sicherzustellen, dass das funktioniert. Und dann werden wir
sie in den anderen Abschnitten verwenden. Konzentrieren wir uns also zuerst
darauf. Dazu müssen wir zunächst
einige Module importieren. Und wir brauchen drei
für diesen Abschnitt. Das erste ist also
ein Modul, das speziell für
den Umgang mit den Umgebungsvariablen entwickelt wurde, den API-Schlüsseln von Punkt n, das ist der Name des Moduls. Und wir werden
nur einen Teil davon importieren,
der als Load bezeichnet wird. Und wir werden diese
Methode anwenden. Als Nächstes müssen wir
das eingebaute Betriebssystemmodul importieren. Und dann endlich sollte alles schon für Sie installiert
sein. Es heißt Open
AI, OpenAI-Modul. Sobald wir diese
Module importiert haben, führen
wir als Erstes
die Ladefunktion aus und bereiten sie so auf
das
Abrufen
der API-Schlüssel vor. Das ist super einfach. Es ist nur voller Klammern. Als Nächstes müssen wir einen
Ort vorbereiten, an
dem der API-Schlüssel vorübergehend
im Programm gespeichert werden kann. Und das OpenAI-Modul hat
speziell dafür eine Eigenschaft. Das wird es
also mit Open AI verwenden. Und dann die API-Schlüsseleigenschaft. Und wir weisen dem API-Schlüssel
dies in unserer Variablendatei zu. Und hier können wir
das Betriebssystemmodul verwenden , um dieses Betriebssystem abzurufen. Und versuchen Sie, sich den Namen
der Variablen zu merken , die
wir zuvor verwendet haben. Und ich bin mir ziemlich sicher, dass es
ein offener AI-API-Schlüssel war. Okay, jetzt können wir
dasselbe für 11 Labore machen. Dieses Mal haben wir
kein 11-Labs-Modul, also erstellen wir einfach
unsere eigene Variable nennen sie 11 Labs API-Schlüssel. Und wieder entspricht das OS dot get der
Umgebungsvariablen. Und es heißt Live
and Lab API Key. Das sollte alles sein, was wir brauchen
, um uns die API-Schlüssel zu holen. Der Grund, warum wir
das tun,
anstatt sie fest
in das Programm zu codieren,
ist, dass, wenn wir
dieses Programm,
diesen Code auf GitHub oder wo auch immer teilen , die Leute sehen können wie die API-Schlüssel sind, wenn sie hier sind. Und wir wollen nicht, dass sie privat sein
sollen, das soll geheim sein. Wir speichern sie in einer lokalen
Umgebungsvariablendatei, die auf unserem Computer verbleibt. Aber dann können wir
diesen Code frei teilen und die
API-Schlüssel bleiben geheim. Stellen wir sicher, dass
dies funktioniert, indem wir die API-Schlüssel
für die Terminals
ausdrucken . Drucken Sie also den
Open-Ai-Dot-API-Schlüssel aus und drucken Sie den API-Schlüssel von print labs
underscore. Ein kleiner Unterschied zwischen
den beiden da, oder? Ich werde das speichern und lass uns zum
Terminal
gehen und es ausführen. Hier im Terminal werden
wir
das Programm ausführen, indem wir Python eingeben. Python könnte für dich genug sein. In meinem Fall
muss ich Python
three und dann den
Namen der Datei eingeben . Erstellen Sie also Podcasts mit
dem Punkt p-y und drücken Sie die Eingabetaste. Und es funktioniert. Es druckt die API-Schlüssel, die
wir in
der Umgebungsvariablendatei gespeichert haben . Perfekt, das heißt, wir sind bereit, mit dem
nächsten Teil fortzufahren, bei dem es darum geht, Inhalte zu
schnappen und dann
die KI damit zu spielen.
4. Grabe RSS-Inhalte: Lassen Sie uns unser Programm etwas
weiter aufbauen als, aber zuerst möchte
ich diese Zeilen entfernen, die die API-Schlüssel ausdrucken. Die brauchen wir nicht. Also werden wir das loswerden. Was ich allerdings brauche,
ist ein RSS-Feed, denn ich nehme
die Schlagzeilen aus einem
RSS-Feed und verwende sie als Eingabe für
den GBT
Chat in den Browser. Und ich habe bereits einen
RSS-Feed vorbereitet. Ich lebe in Japan, also verwende
ich eine aus der Japan Times,
den Schlagzeilen. Und ich möchte nur darauf
hinweisen, dass
der RSS-Feed aus mehreren Artikeln besteht und jeder
hat den Titel, eine Beschreibung, auch verschiedene andere
Elemente, aber ich
bleibe einfach beim Titel und
der Beschreibung und kombiniere diese als Zusammenfassung der
Nachricht für Chat GPT. Ich brauche also nur die
URL dieses Feeds und so ziemlich jeder
RSS-Feed sollte ausreichen. Und ich gehe
zurück zu unserem Programm. Und lassen Sie uns eine
neue Variable für
diesen Newsfeed erstellen , die dieser URL entspricht. Ich mag es, diese
Variablen ganz oben
im Programm zu belassen , damit jeder reinkommen
und den RS ändern kann. RSS-Feed später einfach ohne den gesamten Code nach
unten scrollen zu müssen. Als Nächstes möchte ich daran arbeiten, den Inhalt
tatsächlich zu erfassen. Und bevor ich das mache, drucke
ich hier einfach
etwas ins
Terminal aus , das besagt, dass wir den RSS-Feed jetzt
bearbeiten. Und dann drucke ich die Stufen für
die verschiedenen Teile
aus , während wir
das Programm schreiben , sodass
wir, wenn
wir das Programm ausführen , wissen, an welchem Teil gerade
gearbeitet wird. Wir können auch sehen, wann es fehlschlägt, wann es Fehler gibt, wir können sehen, in welchem Bit sich diese Fehler befinden. Also lassen Sie uns einfach, um unserer
selbst willen, einen Ausdruck geben. Ich bewerte den RSS-Feed, oder? Und um das zu tun, brauchen
wir ein wirklich gutes
Modul namens Feed Parser, das
es uns super einfach machen wird. Also importieren wir es
wie zuvor. Feed-Paar importieren. Gut. Und das bedeutet, dass
wir in nur
wenigen Zeilen diesen
Inhalt aus dem RSS-Feed abrufen können. Jetzt
weisen wir die Ausgabe
der Feed-Parser-Verarbeitung
einer neuen Variablen namens feed zu. Deshalb verwenden wir hier den Feed-Parser. Parser, und wir verwenden eine
seiner Methoden namens Pass. Und das Argument dafür ist
die URL der RSS-Feeds. Das ist also nur der Newsfeed
, den wir zuvor vorbereitet haben. Wenn wir uns den Feed schnappen, können
wir dem Chat DBT nicht einfach mehrere
Informationen geben .
Was wir wirklich wollen, ist
ein bisschen Inhalt. Also werde ich
eine leere Variable haben. Ich nehme mir
eine Minute Zeit. Und dann bei jeder Nachricht werde
ich
bei jeder Nachricht
die neue Zusammenfassung anhängen. Am Ende haben wir also
eine Variable, die alle Nachrichtenzusammenfassungen zusammenfasst
. Das sind neue Geschichten. Also werde ich
eine Variable Stories nennen und das ist zunächst nur ein leerer
Wunsch. Der RSS-Feed, den sie verwenden, hat
meiner Meinung nach etwa 30 Artikel
und ich möchte nicht so viele. Ich möchte, dass die Podcasts
ziemlich kurz sind. Also werde ich es auf zehn beschränken
und eine weitere
Variable erstellen, die ich später verwenden kann. Also Stories, nennen wir es
Stories Limit ist gleich zehn. Okay, jetzt sind wir bereit, das Feed-Objekt zu durchsuchen, das
all diese
RSS-Feed-Daten enthalten sollte .
Zum Durchschauen. Wir werden eine For-Schleife
erstellen. Und nennen wir jedes Element im RSS-Feed-Element,
weil es das
ist, was es für das Element im Feed-Objekt ist. Und es gibt eine Eigenschaft
namens Einträge. Das allein reicht aus, um alle Gegenstände
zu ergattern. Aber wie gesagt, ich möchte es auf die ersten zehn
beschränken. Wir können
hier also eine
clevere Python-Abkürzung verwenden und die
eckigen Klammern verwenden. Und dann verwenden wir
das Speicherlimit hier nach einem Doppelpunkt. Also Codon und dann zehn
oder Speicherlimit
und dann ein Doppelpunkt am Ende, weil es eine For-Schleife ist. Dadurch werden automatisch alle
Elemente
auf die ersten zehn gekürzt. Innerhalb jeder Iteration
der Schleife. Wir werden diesen
leeren Speicher aufbauen, der variabel ist. Geschichten sind also gleichbedeutend mit Geschichten plus, weil wir jedes Mal
Daten anhängen. Und weil wir
all diese neuen Geschichten zu einer Zeichenfolge
zusammenfügen , möchte
ich klarstellen, dass
Sie mit
GBT chatten , wenn eine neue Geschichte beginnt. Also lasst uns eine neue Geschichte haben, den Anfang jeder Geschichte. Und dann die Elemente
im RSS-Feed, sie haben ein Titelelement und sie haben ein
Beschreibungselement. Also schnappen wir sie uns, indem wir
den Artikelpunkttitel eingeben. Setzen Sie danach einen Punkt. Und dann holen wir uns
die Artikelbeschreibung. Und das sollte es für
die Weitergabe des RSS-Feeds sein. Ich möchte sichergehen, dass es funktioniert. Also werde ich die Geschichten einfach variabel
ausdrucken. Sobald alles hinzugefügt
wurde, stellen
wir sicher, dass es
funktioniert, indem wir
zum Terminal gehen und das Programm
ausführen. Also speichere ich diese
Datei im Terminal. Und nach wie vor Python
oder Python drei. Und der Name des
Dateimoderators. Kreuze deine Finger. Das ging schnell. Da haben wir es. Es hat den RSS-Feed abgerufen und alles
zu einer langen Zeichenfolge zusammengefasst. Dies ist perfekt als Eingabe für GPT,
was wir als Nächstes tun werden.
5. Verwendung von ChatGPT: Stimmt, es geht uns gut. Wir haben den Inhalt
der RSS-Feeds, also wenden wir uns dem Chat-GPT zu. Ich werde
diese Druckzeile dort löschen. Wir müssen
die Story-Variable nicht mehr ausdrucken, aber ich werde
eine Zeile hinzufügen, die
den nächsten Verarbeitungsschritt ausdruckt . Also sagen wir, dass
der Chat verarbeitet wird, GPT. Mit diesem verwenden
wir das OpenAI-Modul, das
wir bereits importiert haben. Es gibt also keine neuen
Module zum Importieren. Um das zu verwenden, müssen wir
das Ergebnis oder die Ausgabe von
Chat-GPT einer Variablen zuweisen . Nennen wir es also Chat. Ich sage, das wird
aus dem Open AI-Modul stammen. Und es gibt einen Dienst
namens Chat Completion. Sie haben andere Dienste
wie Bilderzeugung und solche
Dinge. Aber wir verwenden hier einen
Text-Chat. Und
darin gibt es eine Erstellungsmethode. Die Methode create benötigt
verschiedene Argumente, benötigt
jedoch mindestens zwei, und sie sind modal. Und hofft auf die
Komma-Nachrichten. Und Nachrichten sind
eigentlich ein Array. Zuallererst kann mit dem Modell das
KI-Modell spezifiziert werden, das wir verwenden möchten. In Zukunft wird es wahrscheinlich viele Dinge geben, aus denen Sie wählen können. Aber im Moment haben
Sie derzeit so
ziemlich GPT 3.5. Also GPT Bindestrich 3.5 und
es gibt einen namens Turbo. Und dies ist das fortschrittlichste öffentlich verfügbare KI-Modell. In Zukunft wird sich das
wahrscheinlich ändern. Behalten Sie also bitte
ihre API-Dokumentation im Auge , um herauszufinden, was die
neueste und beste ist. Das Modell
ist vorerst GPT 3.5 Turbo. Und Nachrichten sind eine
Reihe von Objekten. Jedes Objekt hat eine
Rolle und einen Inhalt. Und wir werden nur
ein Objekt verwenden, um es einfach zu halten. Wir wollen also eine Rolle, weil
es hier ein Objekt ist, ich werde
Rolle und Inhalt verwenden. Die Rolle kann eines
von drei Dingen sein. Ein Benutzer, das ist die
Rolle, die tatsächlich
den Befehl oder die Anfragen
an das Chat-TBT-System sendet , was
Chat GPT gewissermaßen darüber informiert, was es ist. Also z.B. bist du ein hilfsbereiter, höflicher Assistent, so
etwas. Und dann
ist der Assistent die dritte Rolle. Und das könnte eine
Art Hintergrundinformation sein , z. B. wenn Sie
ihm einen Haufen Daten senden, könnten
Sie sagen, dass diese
Daten gesammelt wurden und im März 2023, so etwas. Solche Sachen brauchen wir nicht. Wir
bleiben nur bei der einen Rolle des Basisbefehls. Und das bedeutet, dass die
Rolle Benutzer sein wird. Der Inhalt ist die
eigentliche Anfrage , dass wir einen Chat GBT senden. Ich habe hier verschiedene
Versuche und Irrtümer gemacht und mir einen
ziemlich langen Befehl ausgedacht, also füge
ich ihn ein, um Zeit zu sparen. Und da ist es. Bitte schreibe die
folgenden Schlagzeilen und Zusammenfassungen in
einer Diskussionsform um, gesprächige Art, als würde jemand in einem Podcast
darüber sprechen. Wie Sie sehen können, habe
ich hier verschiedene
zusätzliche Teile hinzugefügt hier verschiedene
zusätzliche Teile weil ich es
weiter optimieren musste, um das zu bekommen,
was ich wirklich wollte. Und natürlich
können Sie das
auch optimieren, indem Sie sich die Ausgabe anhören. Das ist also die Anfrage. Aber natürlich müssen wir die
Schlagzeilen selbst mit
einbeziehen. Am Ende dieser Anfrage werde
ich also einfach die
Variable stories
anhängen , die
die Ausgabe von Chat-TBT abrufen wird. Aber es wird uns auch
ein paar andere Dinge geben . Und wir wollen nur den
Kerninhalt, die Kernreaktion. Lassen Sie uns das also extrahieren, indem wir eine neue
Variable erstellen, den Chat-Inhalt. Und wir werden es
der Chat-Ausgabe entnehmen , die
wir gerade erstellt haben. Und darin
wird es ein Auswahlfeld geben. Und wir wollen nur das erste Element, kein Element aus dem
Auswahl-Array und dann die Nachricht
und dann den Inhalt. Das ist also
die feste
Methode, die wir durchgedrungen haben, um
nur den Inhalt zu erhalten , den
Chat DBT zurückgibt. Das sollte es sein. Schauen wir also, ob es funktioniert indem wir es wie
bisher
auf das Terminal ausdrucken und Chat-Inhalte ausdrucken. Und ich speichere das und gehe
jetzt zum Terminal
und probiere es aus. Ich werde
das Programm hier ausführen. Zuallererst wissen
Sie das vielleicht oder auch nicht, aber wenn Sie
im Terminal den Aufwärtspfeil
auf Ihrer Tastatur drücken , werden
Befehle ausgeführt, die Sie zuvor eingegeben haben, sodass Sie sie
nicht erneut eingeben müssen. Also habe ich einfach ein paar Mal nach
oben gedrückt und das ist der, den ich möchte, Podcasts
erstellen, Punkt p-y , Enter
drücken und schon
läuft das Programm. Und jetzt ist er so weit, das ist gut. Jetzt warten wir nur noch darauf, dass Chat
GBT etwas zurückgibt. Dann gehen wir, hat ein paar Sekunden gedauert, aber das sieht ziemlich
gut aus, keine Fehler. Und wenn man das nur durchliest, sieht das netter aus,
irgendwie guter Podcast-Inhalt. Und ich bin immer beeindruckt
, dass es das aus Schlagzeilen übernommen hat und
es dann
in etwas umwandeln kann , das ziemlich natürlich
aussieht. Was wir
als Nächstes tun müssen, ist, dies mithilfe der 11 Labs-API in
Audio umzuwandeln .
6. Konvertierung in Audio: Nun, das läuft soweit gut. Fahren wir also mit dem
nächsten Teil fort, der darin besteht, die Audioausgabe tatsächlich zu
generieren. Und wie bisher werde ich einfach eine Zeile
ausdrucken, um zu
sagen, was passiert. Also Audio verarbeiten, so
etwas. Okay, jetzt gibt es kein
11-Labs-Modul für Python. Stattdessen werden wir ein paar Dinge
benutzen. Wir werden das JSON-Modul verwenden , weil wir Daten im JSON-Format
verarbeiten werden. Und wir werden ein
Anforderungsmodul
importieren, das
sich mit dem tatsächlichen Senden von
Postanfragen über das Internet befasst . Um diese zu importieren, kehren wir
zum Anfang des Programms zurück, importieren JSON und
importieren dann Anfragen. Wenn wir uns nun mit
der 11 Labs-API befassen, gibt es tatsächlich verschiedene
Stimmen, die wir verwenden können. Also müssen wir
die
gewünschte Stimme angeben, indem wir die Sprach-ID angeben. Das alles ist in der
11 Labs API-Dokumentation aufgeführt. Also ich werde es hier nicht durchgehen, aber ich habe schon einen,
schon fertig. Also füge ich das zuerst
zu einer neuen Variablen und wir nennen es Voice ID. Und das ist die ID, an die man sich
nur schwer erinnern kann. Ich habe es eingeklebt. Es ist eigentlich für einen weiblichen
amerikanischen Jungen namens Rachel. Und ich finde, das
klingt sehr natürlich. Deshalb entscheide ich
mich für diesen. Als Nächstes möchten wir
das Anforderungsmodul verwenden , um diese Anfrage tatsächlich zu senden und
die Antwort zu erhalten. Lassen Sie uns dazu eine neue Variable
haben, um die Ausgabe
in der Audioausgabe zu speichern. Wir werden das
Anforderungsmodul verwenden und müssen tatsächlich Postdaten senden. Post ist also die Methode. Und dann gibt es
drei Argumente wir
in der Post-Methode verwenden werden. Das erste Argument
für die Post-Methode ist nur die URL der API. Das ist nur eine Zeichenfolge, und ich
habe sie in der Zwischenablage,
also füge sie ein. Aber wir müssen auch
die Stimmidee der Stimme hinzufügen , die wir wollen. Hängen Sie also die Sprach-ID an. Die nächsten beiden Argumente
sind Daten und Header. Beschäftigen wir uns also zuerst mit Daten. Und die Daten werden
im angrenzenden Format vorliegen. Daten sind also gleich. Und hier verwenden wir das JSON-Modul. Und es hat eine Methode
namens Dumps, die
benachbarte Objekte akzeptiert. In diesem Objekt
fügen wir zwei Dinge ein, Text- und Spracheinstellungen. Der Text ist ziemlich einfach, weil wir ihn
bereits fertig haben. Und das ist die
Ausgabe von Chat GBT. Es ist also Chat-Inhalt. Und dann die Spracheinstellungen. Lass mich das einfach hochstellen. Die Seite mit den Spracheinstellungen
ist ein weiteres Objekt, das
im Fall von 11 Labs
nur zwei Einstellungen enthält, wie wir
den Ton oder die
Ausdruckskraft der Stimme steuern können . Die beiden Einstellungen sind Stabilitäts
- und Ähnlichkeitsschub. Zuallererst Stabilität. Dies sind beide Werte 0-1. Und Stabilität ist das
, wonach es sich anhört. Die Stimme klingt ziemlich
stabil, wenn Sie
einen hohen Wert haben , und viel ausdrucksvoller, wenn
Sie einen niedrigen Wert haben, ich setze sie auf 0,2. Ich habe ein paar Dinge ausprobiert
und ich mag 0.2 sehr. Im folgenden Video erkläre
ich, was
diese bedeuten, und ich werde ein wenig
demonstrieren, wie Sie diese Einstellungen ändern
können. Aber
lassen Sie uns zunächst bei 0,2 bleiben und dann den Ähnlichkeitsschub. Ich habe nicht festgestellt, dass das
einen großen Unterschied macht. Also bleibe ich für diesen einfach
bei Null. Dann fahren wir mit dem
Header-Argument der Header dieser Post-Methode fort. Das dritte Argument
ist ebenfalls ein Objekt
, diesmal mit
drei Eigenschaften. Der erste ist der Inhaltstyp
, der Anwendungs-JSON sein wird, da wir ein
angrenzendes Objekt senden. Wir senden auch einen API-Schlüssel. Das ist die nächste Immobilie. Also benötigen wir in diesem Fall den API-Schlüssel für Bindestriche. Und wir wollen es hier nicht
direkt in das Programm eingeben , aber das ist okay, weil
wir es bereits
als Variable haben , die wir
gleich zu Beginn erstellt haben. Wir können also den
API-Schlüssel für 11 Lampen verwenden, den wir vorbereitet haben. Und die dritte Eigenschaft ist das Format der Daten
, die wir erhalten möchten. Und wir
wollen eigentlich ein Audioformat. Also können wir akzeptieren. Und das wird Audio
Slash Mpeg, MP Zhe sein. Okay, das ist alles was wir brauchen. Und so haben wir die
Postmethode zum Senden bereit. Und als Nächstes müssen
wir uns mit
der Reaktion und dem
Output befassen , den wir zurückbekommen. Ich werde
den Code einfach ein bisschen nach oben verschieben. Und in den
Ergebnissen der 11 Labore wird
es einen
sogenannten Statuscode geben
, der uns sagt, ob
es funktioniert hat oder nicht. Also ich denke, es ist eine gute Idee, sich das
zu schnappen und das Häkchen zu entfernen. Zuallererst. Wenn also die Audioausgabe, das Objekt
und innerhalb die Statuscode-Eigenschaft, dieser Eigenschaft
die Statuscode-Eigenschaft,
200 entspricht, dann bedeutet das, dass
alles funktioniert hat. Also setzen wir dort einfach einen
Platzhalter ein. Tun Sie etwas. Andernfalls wollen wir
etwas ausdrucken , um uns mitzuteilen
, dass es nicht funktioniert hat. Also drucken wir eine Nachricht
vom Audioausgang auf den Bildschirm aus. 11 Lampen wird
also eine Fehlermeldung angezeigt,
falls ein Problem aufgetreten ist. Das
wollen wir ausdrucken. Also Audioausgabe, und das
ist dort eine Texteigenschaft. Wenn also etwas
schief geht, können wir verstehen, ob es daran liegt uns die Credits ausgehen
oder an etwas anderem. Ich habe festgestellt, dass 11 Labs
ziemlich schnell ein paar Credits verbrauchen, da die Audiogenerierung ziemlich intensiv
ist. Wie dem auch sei, das ist für den Fall, dass
etwas schief geht, aber hoffentlich geht
alles gut. In diesem Fall können wir jetzt
in dieser Zeile etwas tun, das Audio,
das wir erhalten haben,
in eine Audiodatei
umwandeln , eine MP3-Datei. Also verwenden wir
den Befehl width mit, und dann öffnen wir eine Audiodatei und
nennen sie test dot mp3. Sie können es nennen,
wie Sie möchten, und wenn es nicht existiert, wird
es automatisch erstellt. Aber wir müssen hier ein
paar Flaggen hinzufügen. W und b. W bedeutet richtig, es befindet sich
also im Schreibmodus. Wir können Inhalte in
die MP3-Datei schreiben, und B bedeutet, dass es sich um
Binärdaten handelt, die Binärdatei. Und dann müssen wir dieser Ausgabedatei einfach
einen Namen zuweisen . Also nennen wir es Ausgabedatei. Mit dieser Datei werden
wir
den Inhalt des Audios schreiben , das
wir von 11 Labors erhalten haben. Also mit dieser Datei, Ausgabedatei, richtig, was werden
wir hineinschreiben? Wir werden den
Inhalt der Audioausgabe schreiben. Also Audioausgabe, und das
hat eine Inhaltseigenschaft. Das sollte
alles sein, was wir brauchen, um die Audiodatei zu erstellen. zum Abschluss Lassen Sie uns zum Abschluss noch eine Zeile
zum Ausdrucken haben , die besagt, dass alles
fertig ist oder unvollständig oder so. Ich werde diese Datei speichern. Und wenn wir es jetzt ausführen und die
Daumen drücken, sollte es funktionieren. Also hier im
Terminal drücke
ich noch einmal den
Aufwärtspfeil auf meiner Tastatur. Erstellen Sie Podcasts mit den
Punkten p-y. Lass uns gehen. Also nach wie vor geht es los und schnappt euch die Sachen im
RSS-Feed schon. Das geht schnell. Es verwendet jetzt Chat GBT,
um das in
einen eher gesprächigen
Diskussionsstil umzuwandeln . Es hat einige Texte,
ist wahrscheinlich nicht identisch mit dem Text
, den wir zuvor hatten, aber es
sieht immer noch ziemlich gut aus. Und so wird das jetzt, wenn Sie möchten,
von der KI-Stimme aufgenommen und hoffentlich als Datei namens
Tech test dot mp3
gespeichert. Okay, das ist gerade fertig und es wurden keine
Fehlermeldungen angezeigt, was großartig ist. Gehen wir nun zu
dem Ordner, in dem
wir gearbeitet haben. Richtig, es gibt eine Datei
namens Test Dot MP3. Es sind 1,2 MB, was gut aussieht. Lass es uns spielen. Hallo
und willkommen zum heutigen Podcast, in dem wir einige der neuesten
Nachrichten aus Japan
besprechen werden . Erster Schritt, es funktioniert. Es funktioniert. Ich hoffe, Sie können hören
, dass es zwei Vokale gibt kein erster Einsatz von mich ist
kein erster Einsatz von
Atomwaffen
erstaunlich realistisch. Ich bin sehr beeindruckt.
Wir können uns den Inhalt im Terminal
ansehen und die Gelegenheit nutzen, zu gehen. Sie liest das tatsächlich. Japan und Südkorea haben für
mich ein Paket im Visier. Ja, klingt wirklich gut. Beeindruckend. Also haben wir unser Programm erstellt. Du solltest sehr
stolz auf dich sein, und es funktioniert. Wir haben eine Audiodatei, das ist es
also wirklich. Aber ich möchte im
nächsten Video darauf eingehen,
nur ein paar Möglichkeiten, wie Sie die Einstellungen hier
anpassen können, um das Gefühl, den
Ton oder die Ausdruckskraft zu ändern. Also, wir sehen uns im nächsten Video.
7. Optimierungseinstellungen: Also funktioniert alles. Das ist großartig. Aber ich möchte Ihnen nur
ein paar Möglichkeiten zeigen, wie Sie kontrollieren
können, was sowohl
aus Chat GBT als auch
Audio als Chat-GPT herauskommt . Und dafür
möchte ich den
Audiobereich nur
vorübergehend löschen, möchte ich den
Audiobereich nur
vorübergehend löschen weil ich
keine
Credits damit verschwenden möchte ,
Audio zu generieren, wenn ich mich auf
den Chat-DBT-Bit konzentriere. Also das reicht vorerst. Die Create-Funktion, die
wir zuvor für Chat
GBT gesehen haben , benötigt mindestens
zwei Argumente. Es gibt mehrere
andere, und Sie können die API-Dokumentation einsehen, um all die verschiedenen
Argumente zu verstehen , die Ihnen
zur Verfügung stehen. Aber der, der
den größten Einfluss hat , den ich
gefunden habe, seine Temperatur. Und du kannst dir
das als
Kreativität vorstellen . Es geht 0-2. Ich denke, die Standardeinstellung ist 1.0. Relativ gesehen bedeutet keine Kreativität, dass Sie jedes
Mal, wenn Sie denselben Befehl ausführen, so ziemlich
dieselbe
oder fast dieselbe Antwort erhalten jedes
Mal, wenn Sie denselben Befehl ausführen, so ziemlich
dieselbe
oder fast dieselbe Antwort . Diese hohe Zahl, die maximal zwei, wird uns
viel Kreativität geben. Und genau das
möchte ich hier zeigen. Verwenden wir also eine Temperatur
von zwei. Spar dir das. Und wir gehen rüber und
führen den Befehl erneut aus. Da haben wir es. Oh, das
ist sehr kreativ. Also fängt es irgendwie an, okay, Willkommen in unserer heutigen Klasse, wir diskutieren über
bla, bla, bla. Aber wie Sie sehen können, wenn wir immer weiter
nach unten
gehen , ist es nur Müll. Das ist also wirklich kreativ. Sie
möchten die Temperatur also wahrscheinlich nie
als Wert von zwei verwenden , die niedrigste 10, wie ich bereits erwähnt habe. Dadurch
erhalten Sie wahrscheinlich eine viel stabilere Leistung und jedes Mal so ziemlich das
Gleiche. Es hängt davon ab, was du
willst. Sie können bei dieser vorhersehbaren Ausgabe bleiben. Die Standardeinstellung, die ich finde,
ist absolut in Ordnung. Ich neige generell
dazu, es leer zu lassen. Ich verwende das
Temperaturargument nicht es sei denn, ich möchte die Kreativität
kontrollieren. Das ist aber nicht sehr hilfreich. Wie dem auch sei, das liegt an dir. Damit kannst du herumspielen. Schauen wir uns jetzt die
Audiosteuerungen an. Was die Audioeinstellungen angeht, gibt es so ziemlich nur zu,
zu den Spracheinstellungen, Stabilitäts - und Ähnlichkeitsverbesserungen,
die wir zuvor gesehen haben. Zuallererst, Steigerung der Ähnlichkeit. Dies ist am effektivsten, wenn Sie eine benutzerdefinierte Stimme
haben
und dies tun können. Ich denke, du
musst vielleicht einen kostenpflichtigen Tarif mit 11 Lampen haben, aber du kannst
Sprachproben zur Verfügung stellen und es wird versuchen, eine KI-Stimme zu erzeugen, die dieser
sehr ähnlich ist. Sie können also einen
Ähnlichkeitsschub verwenden, um es sehr ähnlich
oder weniger ähnlich zu machen. Wenn Sie es sehr hoch haben, kann
es meiner
Meinung nach zu Artefakten kommen, die auftauchen. Ich habe festgestellt, dass es nicht
viel bewirkt , wenn wir die
eingebauten Stimmen verwenden. Eine höhere Zahl klingt vielleicht
etwas klarer, aber laut API-Dokumentation besteht ein gewisses
Risiko, dass
Artefakte auftreten. Also habe ich es einfach
bei Null belassen und es war in Ordnung. Die Stabilitätseinstellung hat
einen größeren Unterschied. Und es ist ein bisschen wie ihr kreatives
Setting von Chat DBT. Es steuert die
Ausdruckskraft der Stimme. Eine höhere Zahl
macht es also stabiler. Ich bin eigentlich ein bisschen
langweilig. Und eine niedrige Zahl ist, die Stimme ist sehr ausdrucksstark. Anstatt meine Credits zu generieren
und zu verbrauchen, habe
ich jetzt zwei Testdateien erstellt. Es ist also viel schneller
für uns,
den Unterschied zwischen
diesen beiden Einstellungen zu hören . Ich habe ein paar
Beispieldateien, die ich hier vorbereitet habe. Und hören wir uns
die erste Bindung mit der größtmöglichen
Stabilität eines Bonds an. Hallo. Dies ist ein Beispiel
der Stimme namens Rachel aus 11 Labors mit einer
Stabilitätseinstellung von eins und einer
Ähnlichkeitsverstärkung von Null. Okay, es klingt ziemlich gut, ziemlich natürlich, aber
auch irgendwie langweilig. Versuchen wir es also mit einer Stabilitätseinstellung von
Null, was das Minimum ist. Hallo. Dies ist ein Beispiel
der Stimme namens Rachel aus 11 Labors mit der
Stabilitätseinstellung Null und einer
Ähnlichkeitsverstärkung von Null. Wow, das
freut sie sehr. Das ist möglicherweise zu ausdrucksstark. Ich habe es mit ein paar Proben gemacht
und bin auf Null gesunken. Gehen wir für eine Sekunde zurück zum
Programm. Ja, die Stabilitätseinstellung von Null ist mir wirklich zu viel. Ich mag 0,2. Ich habe
gesehen, dass andere Leute in Diskussionsforen
etwas zwischen 0,2 und 0,4 empfohlen haben. Also nimm diese und
einen Ähnlichkeitsschub. Du kannst versuchen, damit
herumzuspielen, aber im Allgemeinen ist Null oder sogar
Eins in Ordnung. Es gibt keinen großen Unterschied. Auf diese Weise
können Sie also die Ausgabe von
Chen GBT und dem 11 Labs Audio steuern . Seien Sie vorsichtig, denn die Audioverarbeitung ist
viel intensiver. Und deshalb
werden Sie
Ihre 11 Labs-Credits viel
schneller verbrauchen als die Chat-GBT Credits. Ich empfehle, jedes Mal, wenn Sie
eine neue Audiodatei generieren, eine Kopie davon zu erstellen und die
Einstellungen für Stabilität und Ähnlichkeitsmissbrauch,
die Sie
verwendet haben, aufzuzeichnen Einstellungen für Stabilität und Ähnlichkeitsmissbrauch,
die Sie
verwendet haben, , sodass
Sie diese Kopie immer noch haben, falls sie überschrieben
wird . Sie können in Zukunft auf eine
Beispieldatei zurückgreifen. Wie dem auch sei, ich denke, wir haben alles
getan, was
jetzt noch übrig ist , nur noch einmal
zusammenzufassen, was wir gelernt haben.
8. Wir kommen zum Ende.: Da haben wir es. Sie wissen jetzt, wie
Sie ganz einfach
aus Schlagzeilen
einen KI-gestützten Podcast erstellen können . Und wir haben im Laufe des Kurses hoffentlich viel gelernt
. Lassen Sie uns also kurz
die spezifischen Fähigkeiten zusammenfassen , die wir behandelt haben. Verwenden von Python zum Abrufen von
Inhalten aus einem RSS-Feed. Generierung menschenähnlicher Texte
mithilfe der Chat-GPT-API. Konvertierung von Text in Sprache
mithilfe der 11 Labs API. Erstellen einer MP3-Audiodatei aus der Text-to-Speech-Ausgabe. Ich hoffe, Ihnen hat der
Kurs gefallen und Sie fanden ihn nützlich. Jetzt, wo Sie es abgeschlossen haben, könnten
die erlernten Fähigkeiten in Zukunft für
eine Vielzahl verschiedener
Projekte eingesetzt werden . Sie können natürlich täglich oder
wöchentlich
automatisch
Audiodateien generieren und sie dann auf Ihren
bevorzugten Podcast-Host hochladen. Einige
Beispiele sind Bus Sprout, Simple Cost oder Transistor FM. Sie könnten alternativ
den Code verwenden , den wir entwickelt haben, um andere
Online-Dienste wie die
Bildgenerierung oder
sogar die Videogenerierung zu
verwenden .
Es sollte ziemlich einfach sein, den Code so
zu optimieren eine Vielzahl von Online-APIs
verwendet. Abschließend möchte ich mich bei Ihnen
dafür bedanken , dass Sie an diesem Kurs teilgenommen haben. Es war ein Vergnügen, es dir
beizubringen, und bitte denk daran,
Übung macht den Meister. Ihre
Programmierkenntnisse also weiter und erstellen Sie interessante Projekte. Und ganz wichtig, viel
Spaß dabei. Wenn Sie
Feedback oder Fragen haben, Sie diese gerne
im Diskussionsbereich hinterlassen. Und falls Sie es noch nicht getan haben, denken
Sie bitte darüber nach,
eine Bewertung zu hinterlassen, damit andere Lernende diesen Kurs finden und von ihm
profitieren können. Das war's also für mich. Und ich wünsche dir alles Gute für
deine Programmierabenteuer.