Mac OS X-быстрая смена голоса для преобразования текста в речь

Я люблю текст в речь особенность Mac OS X. Так как я не носитель английского языка я очень рад, что все дополнительные языки, добавленные с Lion вышел. Тем не менее, я использую английский, а также мой родной язык (немецкий). Изменение голоса-это немного больно. Это просто требует слишком много шагов, чтобы быть удобным.

есть ли способ сделать это легко? Я искал ярлыки, может быть, выпадающее меню где-нибудь в правом углу, все было бы штраф.

Так как мой поиск не был успешным, я надеюсь найти некоторые советы здесь на суперпользователя. Большое спасибо!

cu
Роман

2
задан user495470
29.12.2022 6:14 Количество просмотров материала 3506
Распечатать страницу

4 ответа

Я использовал FastScripts, чтобы назначить ярлык для этого сценария:

try
    set old to the clipboard as record
end try
try
    tell application "System Events" to keystroke "c" using command down
    delay 0.05
    say (the clipboard) using "Kyoko"
end try
try
    set the clipboard to old
end try

вы также можете создать службу в Automator:

в 10.7 и 10.8 есть ошибка, когда ярлыки для служб Automator не всегда работают, пока вы не наведете курсор на меню "службы" из строки меню. WorkflowServiceRunner также может использовать более 100% процессора во время разговора текста.

другой вариант заключается в использовании сценариев пользовательского интерфейса для изменения между двумя голоса:

tell application "System Preferences"
    reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        delay 0.1
        if value is "Alex" then
            click menu item "Victoria" of menu 1
        else
            click menu item "Alex" of menu 1
        end if
    end tell
end tell
quit application "System Preferences"

изменение ключа SelectedVoiceID в com.яблоко.речь.голос.преф.plist также работает, но я не знаю, как применить изменения немедленно.

9
отвечен user495470 2022-12-30 14:02

спасибо Lauryi.

я расширил свой подход сценариев пользовательского интерфейса для правильной работы с немецкими и английскими голосами. Проблема в том, что если системный язык не английский, все несистемные языки скрыты (если в данный момент не выбран). Вы должны выбрать: Показать больше голосов.. сначала нужно добраться до нужного языка. Мой код не хватает немного элегантности, но работает. Вот оно (обновлено):

tell application "System Preferences"
    reveal anchor "TTS" of pane "com.apple.preference.speech"
end tell
set tom to 0
tell application "System Events" to tell process "System Preferences"
    tell pop up button 1 of tab group 1 of window 1
        click
        delay 0.2 -- without this the value was sometimes "Loading Voices…"

        if value is "Tom" then
            click menu item "Anna" of menu 1
        else
            click menu item "Mehr Stimmen anzeigen" of menu 1 -- show up all available voice
            set tom to 1
        end if
    end tell
end tell
if tom is 1 then
    delay 0.5
    tell application "System Events" to tell process "System Preferences"
        tell pop up button 1 of tab group 1 of window 1
            click
            delay 0.2 -- without this the value was sometimes "Loading Voices…"
            click menu item "Tom" of menu 1
        end tell
    end tell
end if
quit application "System Preferences"
3
отвечен kantorde 2022-12-30 16:19

прямые изменения ~/Library/Preferences/com.apple.speech.voice.prefs.plist на самом деле не нужны, если вы получаете bash-скрипт голоса который действительно добавляет все функции командной строки вам нужно.

сценарий Apple, чтобы изменить стандартный голос Алекса с помощью голоса будет просто выглядеть так:

on run
    do shell script "voices -d Alex"
end run

Я предпочитаю терминал, и вместо того, чтобы тестировать вторжение в меню полиглота, я сделал этот (по общему признанию простой-глупый) сценарий оболочки (который использует голоса) для моих нужд переключения языка. С ним, все, что я сделать, чтобы изменить язык по умолчанию в терминал типа speak swedish или speak french. Это прекрасно вписывается в мой рабочий процесс. Я надеюсь, что вы можете найти решение, которое соответствует вашим.

# Choose a voice in one of some selected languages
# Use "voices" from https://github.com/mklement0/voices#manual-installation

if [[  = "" ]]
then
    echo "ERROR. No language specified. Type a language as in 'speak hebrew'"
fi
if [[  = "swedish" ||  = "Swedish" ]]
then
    voices -d Klara
fi
if [[  = "english" ||  = "English" ]]
then
    voices -d Daniel
fi
if [[  = "american" ||  = "American" ]]
then
    voices -d Alex
fi
if [[  = "french" ||  = "French" ]]
then
    voices -d Aurelie
fi
if [[  = "spanish" ||  = "Spanish" ]]
then
    voices -d Jorge
fi

Я сохраняю его в своих сценариях как " говорить.command", chmod it +x, и добавьте соответствующий псевдоним my .файл, чтобы вызвать его, введя speak.

0
отвечен Josef Lilljegren 2022-12-30 18:36

Я написал инструмент строка состояния для этого:

https://github.com/Fredmf/polyglott

Apperantly он по-прежнему работает в Сьерра -

-2
отвечен Fred Flügge 2022-12-30 20:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх