| """ Brian speech module for autogpt """ |
| import os |
|
|
| import requests |
| from playsound import playsound |
|
|
| from autogpt.speech.base import VoiceBase |
|
|
|
|
| class BrianSpeech(VoiceBase): |
| """Brian speech module for autogpt""" |
|
|
| def _setup(self) -> None: |
| """Setup the voices, API key, etc.""" |
| pass |
|
|
| def _speech(self, text: str, _: int = 0) -> bool: |
| """Speak text using Brian with the streamelements API |
| |
| Args: |
| text (str): The text to speak |
| |
| Returns: |
| bool: True if the request was successful, False otherwise |
| """ |
| tts_url = ( |
| f"https://api.streamelements.com/kappa/v2/speech?voice=Brian&text={text}" |
| ) |
| response = requests.get(tts_url) |
|
|
| if response.status_code == 200: |
| with open("speech.mp3", "wb") as f: |
| f.write(response.content) |
| playsound("speech.mp3") |
| os.remove("speech.mp3") |
| return True |
| else: |
| print("Request failed with status code:", response.status_code) |
| print("Response content:", response.content) |
| return False |
|
|