Перетворення тексту на аудіо та аудіо на текст за допомогою Google Cloud: Повний посібник

pic

Архітектура GCP (зображення створене автором цієї публікації)

Технології перетворення тексту в мову (Text-to-Speech, TTS) та мови в текст (Speech-to-Text, STT) революціонізували наш спосіб взаємодії з машинами. Від віртуальних асистентів до автоматичного субтитрування, ці інструменти дозволяють створювати більш доступні та інтерактивні досвіди.

У цій статті ми детально розглянемо, як реалізувати веб-додаток за допомогою Flask та API Text-to-Speech і Speech-to-Text від Google Cloud, що дозволяє конвертувати текст в аудіо і навпаки. Ми крок за кроком розберемо ключові концепти, які стоять за цими технологіями.

🌐 Що таке перетворення тексту в мову і мови в текст?

Text-to-Speech (TTS):

Перетворення тексту в мову трансформує текстовий контент в аудіо за допомогою моделей глибокого навчання. Google Cloud надає передове API, яке дозволяє:

  • Налаштування голосу: Вибір з різних тонів голосу та статей.
  • Регулювання швидкості та тону: Зміна швидкості читання для кращого користувацького досвіду.
  • Підтримка багатьох мов: Включаючи різні акценти.
  • Аудіоформати: Такі як MP3, LINEAR16 та OGG_OPUS для різних випадків використання та пристроїв.

Метою TTS є надання більш природного користувацького досвіду в додатках, таких як голосові асистенти, автоматизоване читання та послуги доступності.

Speech-to-Text (STT):

З іншого боку, перетворення мови в текст здійснюється з високою точністю. Ця технологія використовується в:

  • Реальному субтитруванні: Корисно для конференцій та мультимедійного контенту.
  • Голосових командах: Дозволяє взаємодіяти з комп'ютерними системами за допомогою голосу.
  • Аналізі дзвінків: Перетворює розмови в текст для покращення обслуговування клієнтів.

API Speech-to-Text від Google може аналізувати аудіо на різних мовах, застосовувати оптимізовані моделі та генерувати високоточні транскрипції.

⚙️ Вимоги до проекту

Для завершення цього проекту вам знадобиться:

  1. Обліковий запис Google Cloud: Потрібно мати обліковий запис з активованим рахунком для доступу до сервісів Google Cloud.
  2. Активовані Google API: Переконайтеся, що активували потрібні API:
  • API Text-to-Speech:
gcloud services enable texttospeech.googleapis.com
  • API Speech-to-Text:
gcloud services enable speech.googleapis.com
  1. Cloud Shell: Розробницьке середовище на базі Linux, попередньо налаштоване Google Cloud.

pic

Середовище Cloud Shell на GCP (зображення створене автором цієї публікації)

  1. Python 3.11 або вищий: Попередньо встановлений в Cloud Shell.
  2. Системні залежності: Встановіть ffmpeg для обробки аудіо.

⚙️ Інсталяція

Слідуйте цим крокам для налаштування та запуску проекту в Cloud Shell:

Клонування репозиторію:

git clone https://github.com/vilcajoel/speech-text-and-text-to-speech-gcp.git  
cd speech-text-and-text-to-speech-gcp

Створення віртуального середовища:

python3 -m venv venv  
source venv/bin/activate

Встановлення системних залежностей:

sudo apt-get update && sudo apt-get install -y ffmpeg

Встановлення залежностей Python:

pip install -r requirements.txt

Зміст файлу requirements.txt:

Flask==3.0.0  
google-cloud-texttospeech==2.14.1  
google-cloud-speech==2.21.0  
gunicorn==21.2.0

Запуск додатку:

python app.py

Додаток буде доступний за адресою: http://127.0.0.1:5000

🌐 Як використовувати додаток

Перетворення тексту в аудіо:

  1. Введіть текст у поле введення.
  2. Виберіть стать голосу (нейтральний, чоловічий або жіночий).
  3. Регулюйте швидкість мовлення.
  4. Натисніть "Перетворити в аудіо" і послухайте відтворення.

Перетворення аудіо в текст:

  1. Натисніть кнопку "Почати запис".
  2. Запишіть свій голос і натисніть "Зупинити запис".
    Отримайте транскрипцію на екрані.

pic

Зображення веб-додатку, створеного за допомогою Flask (зображення створене автором цієї публікації)

Пояснення коду крок за кроком

Цей код реалізує веб-додаток за допомогою Flask, щоб конвертувати текст в аудіо за допомогою API Google Cloud Text-to-Speech, та аудіо в текст за допомогою API Google Cloud Speech-to-Text. Повний код ви можете знайти в цьому репозиторії на GitHub: https://github.com/joelvilcat/speech-text-and-text-to-speech-gcp

Пояснення основних функцій:

  1. text_to_speech(input_text, ssml_gender, speaking_rate)
def text_to_speech(input_text, ssml_gender, speaking_rate):  
 client = texttospeech.TextToSpeechClient()  
 synthesis_input = texttospeech.SynthesisInput(text=input_text)  
 voice = texttospeech.VoiceSelectionParams(  
 language_code="es-ES",  
 ssml_gender=ssml_gender  
 )  

 audio_config = texttospeech.AudioConfig(  
 audio_encoding=texttospeech.AudioEncoding.MP3,  
 speaking_rate=float(speaking_rate)  
 )  

 response = client.synthesize_speech(  
 input=synthesis_input, voice=voice, audio_config=audio_config  
 )  

 audio_base64 = base64.b64encode(response.audio_content).decode("utf-8")  
 return audio_base64

Ця функція приймає текстовий вхід і конвертує його в аудіо за допомогою API Google Cloud Text-to-Speech. Створюється екземпляр TextToSpeechClient, щоб підключитися до TTS API. Вхідний текст передається об'єкту SynthesisInput. Параметри голосу налаштовуються через VoiceSelectionParams, такі як language_code="es-ES" (іспанська з Іспанії) та стать голосу. AudioConfig вказує формат аудіо (MP3) та швидкість мовлення. Відповідь від API повертається у вигляді аудіо-стрічки в base64, яку можна легко вбудувати в веб-інтерфейс.

  1. audio_to_text(audio_content)
def audio_to_text(audio_content):  
 client = speech.SpeechClient()  
 audio = speech.RecognitionAudio(content=audio_content)  
 config = speech.RecognitionConfig(  
 encoding=speech.RecognitionConfig.AudioEncoding.MP3,  
 sample_rate_hertz=48000,  
 language_code="es-ES"  
 )  
 response = client.recognize(config=config, audio=audio)  
 transcript = [result.alternatives[0].transcript for result in response.results]  
 return transcriptp

Ця функція обробляє аудіофайл і конвертує його в текст за допомогою API Google Cloud Speech-to-Text. Ініціалізується SpeechClient, щоб підключитися до API, потім обробляється аудіоконтент за допомогою RecognitionAudio. RecognitionConfig вказує формат файлу (MP3), частоту дискретизації (48000 Гц) та мову для транскрипції (іспанська з Іспанії). Після відправлення запиту функція витягує найбільш вірогідну транскрипцію з відповіді API і повертає її.

Хочете більше? Натисніть кнопку 👏 50 разів, і станеться щось чудове.

pic

Якщо ви хочете дізнатися більше про захоплюючий світ Data Engineering та як він доповнює інші ролі в технологічній індустрії, слідкуйте за мною тут на Medium! Ви також можете зв'язатися зі мною на LinkedIn, щоб залишатися в курсі нових матеріалів і обговорень про дані, хмарні технології та як перетворювати інформацію на цінність для компаній.

Слідкуйте за Joel Vilca для більше навчального контенту та цікавих матеріалів!

Перекладено з: Convert Text to Audio and Audio to Text with Google Cloud: Complete Guide

Leave a Reply

Your email address will not be published. Required fields are marked *