feat : .voices folder for tts

This commit is contained in:
martin legrand 2025-04-04 12:34:00 +02:00
parent 95f43be2af
commit a4f28cec5d
2 changed files with 16 additions and 4 deletions

View File

@ -307,6 +307,6 @@ goodbye!
return thought return thought
if __name__ == "__main__": if __name__ == "__main__":
provider = Provider("server", "deepseek-r1:1.5b", "192.168.1.20:3333") provider = Provider("ollama", "deepseek-r1:1.5b", "127.0.0.1:11434")
res = provider.respond(["user", "Hello, how are you?"]) res = provider.respond(["user", "Hello, how are you?"])
print("Response:", res) print("Response:", res)

View File

@ -1,3 +1,4 @@
import os
import re import re
import platform import platform
import subprocess import subprocess
@ -34,8 +35,19 @@ class Speech():
self.pipeline = KPipeline(lang_code=self.lang_map[language]) self.pipeline = KPipeline(lang_code=self.lang_map[language])
self.voice = self.voice_map[language][voice_idx] self.voice = self.voice_map[language][voice_idx]
self.speed = 1.2 self.speed = 1.2
self.voice_folder = ".voices"
self.create_voice_folder(self.voice_folder)
def create_voice_folder(self, path: str = ".voices") -> None:
"""
Create a folder to store the voices.
Args:
path (str): The path to the folder.
"""
if not os.path.exists(path):
os.makedirs(path)
def speak(self, sentence: str, voice_number: int = 1 , audio_file: str = 'sample.wav'): def speak(self, sentence: str, voice_number: int = 1):
""" """
Convert text to speech using an AI model and play the audio. Convert text to speech using an AI model and play the audio.
@ -45,11 +57,11 @@ class Speech():
""" """
if not self.pipeline: if not self.pipeline:
return return
sentence = self.clean_sentence(sentence)
print("using voice: ", self.voice)
if voice_number >= len(self.voice_map[self.language]) or voice_number < 0: if voice_number >= len(self.voice_map[self.language]) or voice_number < 0:
pretty_print("Invalid voice number, using default voice", color="error") pretty_print("Invalid voice number, using default voice", color="error")
voice_number = 0 voice_number = 0
sentence = self.clean_sentence(sentence)
audio_file = f"{self.voice_folder}/sample_{self.voice_map[self.language][voice_number]}.wav"
self.voice = self.voice_map[self.language][voice_number] self.voice = self.voice_map[self.language][voice_number]
generator = self.pipeline( generator = self.pipeline(
sentence, voice=self.voice, sentence, voice=self.voice,