Mac OS X - Metin-Konuşma seslerini hızla değiştirin


10

Metni Mac OS X'in Konuşma özelliğine bayılıyorum. Ana dili İngilizce olan biri olmadığım için Lion çıktığından beri eklenen tüm ek dillerden çok memnunum. Ancak, anadilim (ingilizce) kadar ingilizce kullanıyorum. Ses değiştirmek biraz acı verici. Rahat olmak için çok fazla adım gerekiyor.

Bunu kolaylaştırmanın bir yolu var mı? Kısayollar arıyordum, belki sağ köşedeki bir açılır menü, her şey iyi olurdu.

Aramam başarılı olmadığından, burada SuperUser'da bazı tavsiyeler bulacağımı umuyorum. Çok teşekkürler!

cu Roman


Mac'liyim ve Talkie'yi oluşturdum: otomatik dil algılamalı bir metin-konuşma tarayıcı uzantısı. Hepsi açık kaynak, ancak bazı özellikler Talkie Premium ticari dağıtımında. Tarayıcıda kullanımı en kolay (kısayol tuşlarıyla), ancak pano (premium) üzerinden herhangi bir uygulamadan kullanabilirsiniz. Size yardımcı olabilir! joelpurra.com/projects/talkie
Joel Purra

Yanıtlar:


9

Bu komut dosyasına bir kısayol atamak için FastScripts kullandım:

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'da bir hizmet de oluşturabilirsiniz:

10.7 ve 10.8'de, Automator hizmetleri için kısayolların, menü çubuğundan hizmetler menüsünün üzerine gelinceye kadar her zaman çalışmadığı bir hata var. WorkflowServiceRunner ayrıca metin konuşurken% 100'den fazla CPU kullanabilir.

Başka bir seçenek, iki ses arasında geçiş yapmak için UI komut dosyası kullanmaktır:

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'deki SelectedVoiceID anahtarını değiştirmek de işe yarıyor, ancak değişiklikleri hemen nasıl uygulayacağımı bilmiyorum.


Vay canına, bu çok ayrıntılı cevap için ve bana çok fazla seçenek gösterdiğiniz için çok teşekkürler. Automator servisi benim için harika çalışıyor, ayrıca şimdi bu servisleri biliyorum. Ben de başka bazılarını eklemek isteyebilirsiniz :)

1
Harika şeyler. OSX 10.10'dan itibaren: Değişiklikleri ~/Library/Preferences/com.apple.speech.voice.prefs.plisthemen uygulamak için pkill com.apple.speech.speechsynthesisd, sistemin otomatik olarak işlemi yeniden başlatmasına neden olan değişiklikler gerçekleşir.
mklement0

1
OS X 10.10.4'ümde, kullanıcı arabirimi komut dosyanız yalnızca satır 1 ve 2 arasına "etkinleştir" satırını eklersem çalışır. Aksi takdirde hatayı alıyorum: "İşlem 1" penceresinin 1. sekme grup 1 \ "Sistem Tercihleri ​​\" okunmalı ... Bunun neden benim için geçerli olduğunu, ancak başkalarının değil?
Jens Wirth

3

Çok teşekkür ederim Lauryi.

Almanca ve İngilizce seslerle düzgün çalışmak için UI komut dosyası yazma yaklaşımınızı genişlettim. Sorun, sistem diliniz İngilizce olmadığında, tüm sistem dışı diller gizlidir (şu anda seçili değilse). Seçmeniz gereken: daha fazla ses göster .. ilk önce istediğiniz dile ulaşmak için. Kodumda biraz zarafet yok, ama çalışıyor. İşte (güncellendi):

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

Gereksinim duyduğunuz tüm komut satırı işlevlerini gerçekten ekleyen bash-script Voices'i~/Library/Preferences/com.apple.speech.voice.prefs.plist alırsanız, doğrudan değişikliklere gerek yoktur.

Sesleri kullanarak standart sesi Alex olarak değiştirmek için bir Apple Script şöyle görünecektir:

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

Terminali tercih ediyorum ve çok dilli menü çubuğu saldırılarını test etmek yerine, bu (kuşkusuz basit-aptal) kabuk betiğini (sesler kullanıyor) benim dil değiştirme ihtiyaçları için yaptım. Bununla birlikte, varsayılan dili değiştirmek için tüm yaptığım speak swedishveya yazmak için terminale pop etmektir speak french. Bu benim iş akışımla mükemmel uyum sağlıyor. Umarım size uyan bir çözüm bulabilirsiniz.

# 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

Komutlarıma "speak.command" olarak kaydediyorum, chmod ve + x olarak yazıyorum speak.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.