I can't convert my Text-To-Speech in Python 3.11

45 Views Asked by At

When i run my program it gives me error in this code

import os

from gtts import gTTS
from io import BytesIO
import torch
import sounddevice as sd
import soundfile as sf


def speaker_gtts(text):
    lang = os.getenv('LANG')
    with BytesIO() as f:
        gTTS(text=text, lang=lang, slow=False).write_to_fp(f)
        f.seek(0)
        data, fs = sf.read(f)
        sd.play(data, fs, blocking=True)


models_urls = ['https://models.silero.ai/models/tts/en/v3_en.pt',
               'https://models.silero.ai/models/tts/ru/v3_1_ru.pt']

model_ru = 'silero_models/ru/model.pt'
model_en = 'silero_models/en/model.pt'

device = torch.device('cpu')
torch.set_num_threads(4)
local_file = model_ru

if not os.path.isfile(local_file):
    torch.hub.download_url_to_file(models_urls[0],
                                   local_file)  

model = torch.package.PackageImporter(local_file).load_pickle("tts_models", "model")
model.to(device)

sample_rate = 48000
speaker='kseniya'   #aidar, baya, kseniya, xenia, eugene
en_speaker = 'en_6' # от 0 до 117


def speaker_silero(text):
    audio = model.apply_tts(text=text,
                                speaker=speaker,
                                sample_rate=sample_rate)

    sd.play(audio, blocking=True)

And then it gives error in console

line 29, in speaker_silero
    audio = model.apply_tts(text=text, speaker=speaker, sample_rate=sample_rate)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<torch_package_0>.multi_acc_v3_package.py", line 303, in apply_tts
AssertionError: `speaker` should be in en_0, en_1, en_2, en_3, en_4, en_5, en_6, en_7, en_8, en_9, en_10, en_11....en_117

I tried changing speaker and did some research online but it didn't work for me I am using PyCharm Python 3.11 i also tried it on 3.8 and 3.12 but didn't work

0

There are 0 best solutions below