|
""" 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 |
|
|