Skip to content

PlaySpeech

PlaySpeech

Source code in Client/Responder/play_speech.py
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class PlaySpeech:
    @staticmethod
    def text_to_speech_and_play(content: str):
        """
        Convert text to speech and play
        Args:
            content (str): The content to be converted to speech

        Returns:

        """
        # Convert text to speech
        with timer(logger, "Text to speech"):
            tts = gTTS(text=content, lang="en")
        mp3_fp = io.BytesIO()
        tts.write_to_fp(mp3_fp)
        mp3_fp.seek(0)
        with timer(logger, "Load audio"):
            # Load the audio into pydub
            audio = AudioSegment.from_file(mp3_fp, format="mp3")

        with timer(logger, "Play audio"):
            # Play the audio
            play(audio)

    @staticmethod
    def play_audio_url(url: str):
        """
        Play audio file from the given
        Args:
            url (str): The URL of the audio file

        Returns:

        """
        response = requests.get(url)
        response.raise_for_status()  # This will raise an exception for HTTP errors
        with NamedTemporaryFile(delete=True, suffix=".mp3") as temp_file:
            temp_file.write(response.content)
            temp_file.flush()  # Make sure all data is written to the file

            # Load the audio into pydub
            audio = AudioSegment.from_file(temp_file.name, format="mp3")

            # Play the audio
            play(audio)

    @staticmethod
    def play_audio_file(file_path: Path):
        """
        Play audio file from the given
        Args:
            file_path (Path): The path of the audio file

        Returns:

        """
        # Load the audio into pydub
        audio = AudioSegment.from_file(file_path, format="mp3")

        # Play the audio
        play(audio)

play_audio_file(file_path) staticmethod

Play audio file from the given Args: file_path (Path): The path of the audio file

Returns:

Source code in Client/Responder/play_speech.py
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
@staticmethod
def play_audio_file(file_path: Path):
    """
    Play audio file from the given
    Args:
        file_path (Path): The path of the audio file

    Returns:

    """
    # Load the audio into pydub
    audio = AudioSegment.from_file(file_path, format="mp3")

    # Play the audio
    play(audio)

play_audio_url(url) staticmethod

Play audio file from the given Args: url (str): The URL of the audio file

Returns:

Source code in Client/Responder/play_speech.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
@staticmethod
def play_audio_url(url: str):
    """
    Play audio file from the given
    Args:
        url (str): The URL of the audio file

    Returns:

    """
    response = requests.get(url)
    response.raise_for_status()  # This will raise an exception for HTTP errors
    with NamedTemporaryFile(delete=True, suffix=".mp3") as temp_file:
        temp_file.write(response.content)
        temp_file.flush()  # Make sure all data is written to the file

        # Load the audio into pydub
        audio = AudioSegment.from_file(temp_file.name, format="mp3")

        # Play the audio
        play(audio)

text_to_speech_and_play(content) staticmethod

Convert text to speech and play Args: content (str): The content to be converted to speech

Returns:

Source code in Client/Responder/play_speech.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
@staticmethod
def text_to_speech_and_play(content: str):
    """
    Convert text to speech and play
    Args:
        content (str): The content to be converted to speech

    Returns:

    """
    # Convert text to speech
    with timer(logger, "Text to speech"):
        tts = gTTS(text=content, lang="en")
    mp3_fp = io.BytesIO()
    tts.write_to_fp(mp3_fp)
    mp3_fp.seek(0)
    with timer(logger, "Load audio"):
        # Load the audio into pydub
        audio = AudioSegment.from_file(mp3_fp, format="mp3")

    with timer(logger, "Play audio"):
        # Play the audio
        play(audio)