Преобразование текста в речь в GoldenDict

704
Mohammad Dehghan

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

0

1 ответ на вопрос

0
Mohammad Dehghan

То же решение должно работать в 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.