10

Google Colab notebook - input and output, OpenAI TTS API

 9 months ago
source link: https://serebrov.github.io/html/2023-11-09-google-colab-input-and-output-openai-tts.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Google Colab notebook - input and output, OpenAI TTS API

Posted on 2023, Nov 09 2 mins read

Running OpenAI TTS API in Google Colab

The example below runs OpenAI TTS API in a Google Colab notebook. The process involves some input and output:

  • Prompt the user for API key
  • Run the API method
  • Save result into a file

I have a notebook with two cells.

First: Setup cell

# @title Notebook Setup
# @markdown Please, run this cell first. You'll be prompted for your OpenAI API Keys.
# @markdown https://platform.openai.com/api-keys
!pip install openai tiktoken > /dev/null 2>&1

from getpass import getpass
from openai import OpenAI

# Prompt for API key and create a client
api_key = getpass('OpenAI API Key: ')
client = OpenAI(api_key=api_key)

For input we use getpass.

Second: Main cell

# @markdown This cell can be run multiple times to generate audio samples. All results will be saved to your Google Drive in the OpenAI_TTS_Samples folder.

import io
import os
import time

from IPython.display import Audio, display
from google.colab import drive

# Mount Google Drive to /content/gdrive path.
drive.mount('/content/gdrive')

# Output folder is OpenAI_TTS_Samples, it will be created
# if it does not exist.
out_path = "/content/gdrive/MyDrive/OpenAI_TTS_Samples/"
try:
    os.mkdir(out_path)
except FileExistsError:
   pass

voices = ("alloy", "echo", "fable", "onyx", "nova", "shimmer")
input="""
Today is a wonderful day to learn Vim!
"""

# Loop through voices and generate a sample for each voice
for voice in voices:
  response = client.audio.speech.create(
    model="tts-1-hd",
    voice=voice,
    input=input
  )

  # Prepare file name - YYYY-MM-DD-HH-MM-SS_voice.mp3
  timestr = time.strftime("%Y-%m-%d-%H-%M-%S")
  speech_file_name = f"{timestr}_{voice}.mp3"
  speech_file_path = out_path + speech_file_name

  # Save generated audio to the file.
  response.stream_to_file(speech_file_path)

  # Display files in the notebook as <audio> element
  display(speech_file_name, Audio(speech_file_path, autoplay=False))

Here we use Google Colab’s drive library to save files to Google Drive and the display.

Resources:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK