Как зарегистрировать голос для TTS в windows 11?

У меня возникли проблемы с использованием 2 дополнительных голосов, в моем случае я пытаюсь использовать Pablo (испанский - Испания) и George (английский - GB). Я разрабатываю приложение на python/Django, спереди я отправляю JSON с языком (в данном случае с каким голосом я хочу прочитать текст) и текстом, сзади получаю и обрабатываю его, вызывая соответствующий голос, читающий текст. вот часть кода:

import win32com.client, pythoncom
from .translator import translate_text


def check_voices():

    pythoncom.CoInitialize()

    try:
        speaker = win32com.client.Dispatch('SAPI.SpVoice')
        voices = speaker.GetVoices()

        for voice in voices:
            print(f"Voice: {voice.GetDescription()}, Id: {voice.Id}")
    finally:
        # Finalizar COM
        pythoncom.CoUninitialize()


def sound_rate(speaker):
    speaker.Rate = -1  # rango -10(lento) - 10(rapido)


def sound_volume(speaker):
    speaker.Volume = 100    # rango 0(bajo) - 100(alto)


def text_to_speech(language, text):

    pythoncom.CoInitialize()

    try:
        speaker = win32com.client.Dispatch('SAPI.SpVoice')
        voices = speaker.GetVoices()

        check_voices()

        if language.startswith('en-'):
            text = translate_text(text, from_code='es', to_code='en')        

        language_map = {
            'es-ES-female': 'Microsoft Helena Desktop - Spanish (Spain)',
            'es-ES-male': 'Microsoft Pablo Desktop - Spanish (Spain)',
            'en-UK-female': 'Microsoft Hazel Desktop - English (Great Britain)',
            'en-UK-male': 'Microsoft George Desktop - English (Great Britain)',
        }


        voice_name = language_map.get(language)
        for voice in voices:
            if voice.GetDescription() == voice_name:
                speaker.Voice = voice
                break

        speaker.Speak(text)

    except Exception as e:
        print(f"An error occurred: {e}")

    finally:
       pythoncom.CoUninitialize()

По какой-то причине я не могу использовать эти два голоса Pablo и George, я пытаюсь установить оба из них с помощью powershell в режиме администратора, но все еще не работает. Также я пытаюсь прописать их непосредственно в реестре windows, но тоже ничего не получается.

enter image description here enter image description here enter image description here enter image description here

я пытаюсь найти путь к голосам и нахожу их в C:\Windows\Speech_OneCore\Engines\TTS\es-ES оба. но я копирую и вставляю эти файлы в C:\Windows\Speech\Engines\TTS\es-ES

Когда я запускаю свое приложение и пытаюсь использовать эти два голоса, я вижу эту ошибку:

[19/Jul/2024 09:11:22] "GET / HTTP/1.1" 200 1580
[19/Jul/2024 09:11:23,062] - Broken pipe from ('127.0.0.1', 55799)
Not Found: /favicon.ico
[19/Jul/2024 09:11:23,099] - Broken pipe from ('127.0.0.1', 55804)
<QueryDict: {}>
Voice: Microsoft Helena Desktop - Spanish (Spain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0
Voice: Microsoft Zira Desktop - English (United States), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
Voice: Microsoft George Desktop - English (Great Britain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN_GB_GEORGE_11.0
Voice: Microsoft Hazel Desktop - English (Great Britain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0
Voice: Microsoft Pablo Desktop - Spanish (Spain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_PABLO_11.0
[19/Jul/2024 09:11:31] "POST /submit/ HTTP/1.1" 200 93
An error occurred: (-2147352567, 'Ocurrió una excepción.', (0, None, 'Clase no registrada\r\n', None, 0, -2147221164), None)
<QueryDict: {}>
Voice: Microsoft Helena Desktop - Spanish (Spain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_HELENA_11.0
Voice: Microsoft Zira Desktop - English (United States), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-US_ZIRA_11.0
Voice: Microsoft George Desktop - English (Great Britain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN_GB_GEORGE_11.0
Voice: Microsoft Hazel Desktop - English (Great Britain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_EN-GB_HAZEL_11.0
Voice: Microsoft Pablo Desktop - Spanish (Spain), Id: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Speech\Voices\Tokens\TTS_MS_ES-ES_PABLO_11.0
An error occurred: (-2147352567, 'Ocurrió una excepción.', (0, None, 'Clase no registrada\r\n', None, 0, -2147221164), None)
[19/Jul/2024 09:11:39] "POST /submit/ HTTP/1.1" 200 93

Может ли кто-нибудь помочь мне решить эту проблему? Спасибо

Примечание: Я использую Django == 5.0.6 и Python == 3.10.6

Я полагаю, что голоса устанавливаются с помощью опции "Add Voices" в разделе Settings - Time & Language - Speech.

Снимок экрана настроек

Голоса установлены здесь: enter image description here

Но все еще не работает

Вернуться на верх