Mac OS X-텍스트 음성 변환을위한 음성 변경


10

Mac OS X의 텍스트 음성 변환 기능이 마음에 듭니다. 영어 원어민이 아니기 때문에 Lion이 나온 이후 추가 된 모든 추가 언어에 매우 만족합니다. 그러나 나는 영어와 모국어 (독일어)를 사용합니다. 목소리를 바꾸는 것은 약간의 고통입니다. 편안하기에는 너무 많은 단계가 필요합니다.

이것을 쉽게 할 수있는 방법이 있습니까? 바로 가기를 찾고 있었는데 오른쪽 모서리에 드롭 다운 메뉴가 있으면 아무 문제가 없습니다.

검색에 실패 했으므로 여기에서 SuperUser에 대한 조언을 찾을 수 있기를 바랍니다. 고마워요!

cu 로마


저는 Mac에 있고 자동 언어 감지 기능이있는 텍스트 음성 변환 브라우저 확장 프로그램 인 Talkie를 만들었습니다. 모두 오픈 소스이지만 일부 기능은 상용 배포 Talkie Premium에 있습니다. 브라우저에서 가장 쉽게 사용할 수 있지만 (바로 가기 키 사용) 클립 보드 (프리미엄)를 통해 모든 응용 프로그램에서 사용할 수 있습니다. 당신을 도울 수 있습니다! joelpurra.com/projects/talkie
Joel

답변:


9

이 스크립트에 바로 가기를 할당하기 위해 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 %가 넘는 CPU를 사용할 수 있습니다.

또 다른 옵션은 UI 스크립팅을 사용하여 두 음성 사이를 변경하는 것입니다.

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"

com.apple.speech.voice.prefs.plist에서 SelectedVoiceID 키를 변경해도 작동하지만 변경 사항을 즉시 적용하는 방법을 모르겠습니다.


와우,이 자세한 답변과 많은 옵션을 보여 주셔서 감사합니다. Automator 서비스는 저에게 매우 효과적이며 이제는 해당 서비스에 대해 알고 있습니다. 나는 다른 것들도 추가하고 싶을 수도있다 :)

1
좋은 물건. OSX 10.10부터 : 변경 사항을 ~/Library/Preferences/com.apple.speech.voice.prefs.plist즉시 적용하려면을 실행하십시오 pkill com.apple.speech.speechsynthesisd. 그러면 시스템이 프로세스를 자동으로 다시 시작하여 변경 사항이 적용됩니다.
mklement0

1
OS X 10.10.4에서 UI 스크립팅은 1 행과 2 행 사이에 "activate"행을 삽입 한 경우에만 작동합니다. 그렇지 않으면 "프로세스 \"시스템 환경 설정 \ "창 1의 탭 그룹 1" " 읽어보십시오 ... 이것이 왜 나에게 적용되지만 다른 사람들에게는 적용되지 않는 제안이 있습니까?
Jens Wirth

3

Lauryi 감사합니다.

독일어 및 영어 음성에서 제대로 작동하도록 UI 스크립팅 접근 방식을 확장했습니다. 문제는 시스템 언어가 영어가 아닌 경우 모든 비 시스템 언어가 숨겨져 있다는 것입니다 (현재 선택되어 있지 않은 경우). 선택해야합니다 : 더 많은 음성 표시 .. 먼저 원하는 언어로 이동하십시오. 내 코드에는 약간의 우아함이 없지만 작동합니다. 여기 (업데이트 됨) :

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"

0

~/Library/Preferences/com.apple.speech.voice.prefs.plist필요한 모든 명령 줄 기능을 실제로 추가 하는 bash-script Voice 를 얻는 경우 직접 변경 하지 않아도됩니다.

음성을 사용하여 표준 음성을 Alex로 변경하는 Apple Script는 다음과 같습니다.

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

나는 터미널을 선호하고, 폴리 글로 메뉴 바 침입을 테스트하는 대신 언어 전환 요구에 맞게이 스크립트를 사용했다 (음성 사용). 그것으로, 모든 나는 기본 언어를 변경하면 입력하는 단자에 팝업하는 것입니다 speak swedishspeak french. 이것은 내 워크 플로에 매우 적합합니다. 귀하에게 적합한 솔루션을 찾을 수 있기를 바랍니다.

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

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

스크립트에 "speak.command"로 저장하고 chmod it + x를 입력 한 다음 .bash_profile에 적절한 별칭을 추가하여을 입력하여 호출하십시오 speak.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.