Я знаю, как добавить функцию преобразования текста в речь в GoldenDict в Linux, но я всюду искал решение для Windows и ничего не нашел.

1 ответ1

0

То же решение должно работать в Windows, но вам нужно что-то эквивалентное espeak .

Вот фрагмент PowerShell, который с помощью классов .NET читает некоторый текст:

Add-Type -AssemblyName System.speech
$speak = New-Object System.Speech.Synthesis.SpeechSynthesizer
$speak.Speak('Hello.')

Вот эквивалентная команда, которая может быть запущена в командной строке Windows (cmd.exe):

PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('hello');"

Используя приведенную выше команду (и заменив 'hello' на '% GDWORD%') и шаги, упомянутые в посте выше, мы можем достичь того же.

Вот полные шаги:

  1. Откройте GoldenDict и нажмите F3, чтобы открыть окно Словари .

  2. На вкладке Источники выберите вкладку Программы .

  3. Нажмите кнопку « Добавить» , выберите « Аудио» для столбца « Тип» , введите некоторое имя (например, "tts") в столбце « Имя» и следующую команду для столбца « Командная строка» :

    PowerShell -Command "Add-Type –AssemblyName System.Speech; (New-Object System.Speech.Synthesis.SpeechSynthesizer).Speak('%GDWORD%');"
    
  4. Не забудьте установить флажок « Включено» .

  5. Нажмите ОК

Это использует голос по умолчанию в Windows. Если вы хотите использовать женский голос, используйте следующую команду:

PowerShell -Command "Add-Type –AssemblyName System.Speech; $s=(New-Object System.Speech.Synthesis.SpeechSynthesizer); $s.SelectVoiceByHints(2); $s.Speak('%GDWORD%');"

Настроить голос легко, если вы программист .NET и знаете PowerShell.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .