Laut aussprechen: Erstellen eines einfachen Sprachsynthesizers mit NLP und Python

Feb 03 2023
Einleitung Sprachsynthese ist die künstliche Erzeugung menschlicher Sprache. Dabei handelt es sich um die Umwandlung von Text in Sprache mithilfe der Text-to-Speech-Technologie (TTS).

Einführung

Sprachsynthese ist die künstliche Erzeugung menschlicher Sprache. Dabei handelt es sich um die Umwandlung von Text in Sprache mithilfe der Text-to-Speech-Technologie (TTS). In den letzten Jahren besteht ein wachsendes Interesse an der Verwendung von NLP-Techniken zur Verbesserung der Natürlichkeit und Ausdruckskraft von Sprachsynthesizern. In diesem Artikel zeige ich Ihnen, wie Sie mit NLP in Python einen einfachen Sprachsynthesizer erstellen.

Anforderungen

Bevor wir beginnen, müssen die folgende Software und Bibliotheken auf Ihrem Computer installiert sein:

  • Python 3
  • gTTS
  • NLTK

pip install gTTS

pip install nltk

Der erste Schritt beim Aufbau eines Sprachsynthesizers mit NLP ist die Textverarbeitung. Ziel der Textverarbeitung ist es, die Texteingabe vorzuverarbeiten und in eine für die TTS-Konvertierung geeignete Form umzuwandeln. In diesem Beispiel werde ich die folgenden Textverarbeitungsschritte durchführen:

  • Tokenisierung: Teilen Sie die Texteingabe in Wörter und Sätze auf.
  • Entfernen von Stoppwörtern: Entfernen Sie Stoppwörter, bei denen es sich um häufige Wörter wie „der“, „und“, „von“ usw. handelt, die keine große Bedeutung haben.
  • Wortstammbildung: Reduzieren Sie Wörter auf ihren Stamm, den Kernteil des Wortes, der seine Bedeutung enthält. Dieser Schritt ist nützlich, um den Wortschatz zu verkleinern und die Natürlichkeit der Sprache zu verbessern.

import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from nltk.stem import PorterStemmer

nltk.download('punkt')
nltk.download('stopwords')

# Tokenize the text into words
text = "Hello, this is a sample text for speech synthesizer."
tokens = word_tokenize(text)

# Remove stop words
stop_words = set(stopwords.words("english"))
tokens = [token for token in tokens if token.lower() not in stop_words]

# Stem the words using Porter stemmer
stemmer = PorterStemmer()
tokens = [stemmer.stem(token) for token in tokens]

# Join the processed tokens back into a single text
text = ' '.join(tokens)

Text-zu-Sprache-Konvertierung

Der nächste Schritt besteht darin, den verarbeiteten Text mithilfe einer TTS-Engine in Sprache umzuwandeln. In diesem Beispiel verwende ich die gTTS-Bibliothek, eine einfache und benutzerfreundliche TTS-Bibliothek für Python. Hier ist der Code, der die TTS-Konvertierung durchführt:

from gtts import gTTS
import os

# Convert text to speech
tts = gTTS(text=text, lang='en')

# Save the speech
tts.save("speech.mp3")

# Play the speech
os.system("mpg321 speech.mp3")

Abschluss

In diesem Artikel habe ich Ihnen gezeigt, wie Sie mit NLP in Python einen einfachen Sprachsynthesizer erstellen. Durch die Kombination von Textverarbeitungstechniken der NLP- und TTS-Technologie können Sie einen Sprachsynthesizer erstellen, der aus der Texteingabe hochwertige Sprache generiert. Mit einigen zusätzlichen Modifikationen können Sie sogar einen Sprachsynthesizer erstellen, der Sprache in mehreren Sprachen oder mit einem bestimmten Akzent oder Tonfall erzeugt. Die Möglichkeiten sind endlos!