TsgcAIOpenAIChatBot

To build a ChatBot with voice commands, the following steps are required:

 

  1. The Microphone Audio must be captured, so a speech to text system is needed to get the text that will be sent to OpenAI. 
    1. Capturing the Microphone Audio is done using the component TsgcAudioRecorderMCI.
    2. Once we've captured the audio, this is sent to the OpenAI whisper api to convert the audio file to text.
  2. Once we get the speech to text, now we send the text to OpenAI using the ChatCompletion API.
  3. The response from OpenAI must be converted now to Speech using one of the following components:
    1. TsgcTextToSpeechSystem: (currently only for Windows) uses the Windows Speech To Text from Operating System.
    2. TsgcTextToSpeechGoogle: sends the response from OpenAI to the Google Cloud Servers and an mp3 file is returned which is played by the TsgcAudioPlayerMCI.
    3. TsgcTextToSpeechAmazon: ends the response from OpenAI to the Amazon AWS Servers and an mp3 file is returned which is played by the TsgcAudioPlayerMCI.

 

Properties

 

 

 

 

 

 

Events

 

Code Example

Create a new ChatBot, using the default Text-To-Speech from Microsoft Windows. Use Start to Start the recording of the audio and Stop to Stop the recording and send the audio to the OpenAI API and return a response from ChatGPT.


// ... create the chatbot component
sgcChatBot := TsgcAIOpenAIChatBot.Create(nil);
sgcChatBot.OpenAIOptions.ApiKey := 'your_openapi_api_key';
sgcChatBot.ChatBotOptions.Transcription.Language := 'en';
// ... create audio recorder and tex-to-speech
sgcAudioRecorder := TsgcAudioRecorderMCI.Create(nil);
sgcTextToSpeech := TsgcTextToSpeechSystem.Create(nil);
// ... assign audio components to chatbot
sgcChatBot.AudioRecorder := sgcAudioRecorder;
sgcChatBot.TextToSpeech := sgcTextToSpeech;
// ... start the chatbot, speak with a microphone to capture the audio and stop to process the audio
sgcChatBot.Start;
... speak
sgcChatBot.Stop;