Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

macOS 13 TTS Voice環境に変更

Posted on 11月 12, 2022 by Takaaki Naganoya

macOS 13でTTS(Text To Speech)キャラクタが追加され、日本語環境では各種読み上げ機能で「O-Ren」(女性)と「Hattori」(男性)というSiriの音声が使えるようになりました。

macOS 13の「システム設定」(System Settings.app)の「アクセシビリティ」>「読み上げコンテンツ」で、「システムの声」(TTS読み上げキャラクタ)を選択、追加できるわけですが……

ただし、AppleScriptのsayコマンド(音声読み上げ、音声ファイルへのレンダリング)で、「Hattori」「O-Ren」が使えるというわけではありません。逆に、OSのサービス経由で音声名称を取得すると、

{"Kyoko", "Kyoko(拡張)", "Otoya", "Otoya(拡張)"}

などと結果が返ってくるものの、”Kyoko(拡張)”, “Otoya(拡張)”をsayコマンドで指定するとエラーになります。

say "こんにちは" using "Kyoko(拡張)"
--> AppleScript Execution Error
AppleScript名:TTS Voiceを言語で抽出.scpt
— Created 2017-03-28 by Takaaki Naganoya
— 2017 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aLoc to (current application’s NSLocale’s currentLocale()’s identifier()) as string
–>  "ja_JP"

set vList to getTTSVoiceNameWithLanguage(aLoc) of me
–>  {"Kyoko", "Otoya"}–macOS 12まで
–>  {"Kyoko", "Kyoko(拡張)", "Otoya", "Otoya(拡張)"}–macOS 13

on getTTSVoiceNameWithLanguage(voiceLang)
  set outArray to current application’s NSMutableArray’s new()
  
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@", voiceLang)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceName") as list
  
  
return aResList
end getTTSVoiceNameWithLanguage

★Click Here to Open This Script 

TTS Voiceの環境に合わせて何かこれらのTTS Voiceのファミリー名称などを返すようにしないとダメなのかも???

AppleScript名:TTS Voiceを言語で抽出 v2.scpt
— Created 2017-03-28 by Takaaki Naganoya
— Modified 2022-11-12 by Takaaki Naganoya
— 2022 Piyomaru Software
use AppleScript version "2.4"
use scripting additions
use framework "Foundation"
use framework "AppKit"

set aLoc to (current application’s NSLocale’s currentLocale()’s identifier()) as string
–>  "ja_JP"

set vList to getTTSVoiceNameWithLanguage(aLoc) of me
–>  {"Kyoko", "Otoya"}–macOS 12まで
–>  {"Kyoko", "Otoya"}–macOS 13

on getTTSVoiceNameWithLanguage(voiceLang)
  set outArray to current application’s NSMutableArray’s new()
  
  
set aList to current application’s NSSpeechSynthesizer’s availableVoices()
  
set bList to aList as list
  
  
repeat with i in bList
    set j to contents of i
    
set aDIc to (current application’s NSSpeechSynthesizer’s attributesForVoice:j)
    (
outArray’s addObject:aDIc)
  end repeat
  
  
set aPredicate to current application’s NSPredicate’s predicateWithFormat_("VoiceLocaleIdentifier == %@", voiceLang)
  
set filteredArray to outArray’s filteredArrayUsingPredicate:aPredicate
  
set aResList to (filteredArray’s valueForKey:"VoiceNameRoot") –Voice Rootを取得
  
  
–要素をユニーク化
  
set theSet to current application’s NSOrderedSet’s orderedSetWithArray:aResList
  
return (theSet’s array()) as list
end getTTSVoiceNameWithLanguage

★Click Here to Open This Script 

More from my site

  • Frameworkを任意のパスからloadして実行するじっけんFrameworkを任意のパスからloadして実行するじっけん
  • Finder上で選択中のファイルをJPEG形式で指定フォルダに書き出し(自動補正つき)Finder上で選択中のファイルをJPEG形式で指定フォルダに書き出し(自動補正つき)
  • CoreImageで指定画像をautoAdjustmentFiltersCoreImageで指定画像をautoAdjustmentFilters
  • Numbersで選択範囲のデータを切り捨てNumbersで選択範囲のデータを切り捨て
  • Pagesで選択中のテキストボックスの一番近くにある白い文字のボックスのテキストを取得Pagesで選択中のテキストボックスの一番近くにある白い文字のボックスのテキストを取得
  • Numbersで選択中の範囲を横方向に逆順に並べて、選択範囲に再設定Numbersで選択中の範囲を横方向に逆順に並べて、選択範囲に再設定
(Visited 427 times, 3 visits today)
Posted in System Text to Speech | Tagged 13.0savvy | 3 Comments

3 thoughts on “<span>macOS 13 TTS Voice環境に変更</span>”

  1. 1/31/23
    1:14 AM
    2023年1月31日
    1:14 AM

    Reply

    返信なし says:

    こんにちは

    私の日本語はひどいです。しかし、あなたのコードは素晴らしく、「enhanced」と「premium」の音声を使用する方法を見つけるのに役立ちました

    use framework "Foundation"

    prononcer("モントリオール、ラヴァル、ガティノー", "com.apple.voice.enhanced.ja-JP.Kyoko")
    prononcer("Montréal, Laval, Gatineau", "com.apple.voice.premium.fr-CA.Amelie")

    on prononcer(texte, nom_voix)
    set voix to current application's NSSpeechSynthesizer's new
    set voix's voice to nom_voix
    set voix's volume to 0.5
    if voix's startSpeakingString:texte then
    repeat while voix's isSpeaking as boolean
    delay 1
    end repeat
    end if
    end prononcer

    • 2/1/23
      3:27 PM
      2023年2月1日
      3:27 PM

      Reply

      Takaaki Naganoya says:

      I wish I could detect if each TTS voice character is installed…

  2. 2/2/23
    6:00 AM
    2023年2月2日
    6:00 AM

    Reply

    返信なし says:

    完璧でなくても、考えられる解決策が1つあります:

    set voix_installes to {}
    set texte to do shell script "say -v ? | awk -F \" \" '{print $1}'"
    set noms_voix to paragraphs of texte
    repeat with nom_voix in noms_voix
    if nom_voix contains "(Enhanced)" or nom_voix contains "(Premium)" then
    set voix_installes to voix_installes & nom_voix
    end if
    end repeat
    voix_installes

    私のコンピュータでは、インストールしたフランス語と日本語の音声が正しく一覧表示されます:

    {"Amélie (Enhanced)", "Amélie (Premium)", "Aude (Enhanced)", "Audrey (Enhanced)", "Audrey (Premium)", "Aurélie (Enhanced)", "Chantal (Enhanced)", "Kyoko (Enhanced)", "Nicolas (Enhanced)", "Otoya (Enhanced)", "Thomas (Enhanced)"}

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • 開発機としてM2 Mac miniが来たのでガチレビュー
  • macOS 13.6.5 AS系のバグ、一切直らず
  • CotEditorで2つの書類の行単位での差分検出
  • Apple純正マウス、キーボードのバッテリー残量取得
  • macOS 15, Sequoia
  • 初心者がつまづきやすい「log」コマンド
  • 指定のWordファイルをPDFに書き出す
  • Adobe AcrobatをAppleScriptから操作してPDF圧縮
  • Pages本執筆中に、2つの書類モード切り替えに気がついた
  • メキシカンハットの描画
  • 与えられた文字列の1D Listのすべての順列組み合わせパターン文字列を返す v3(ベンチマーク用)
  • 2023年に書いた価値あるAppleScript
  • Pixelmator Pro v3.6.4でAppleScriptからの操作時の挙動に違和感が
  • AdobeがInDesign v19.4からPOSIX pathを採用
  • Safariで「プロファイル」機能を使うとAppleScriptの処理に影響
  • Numbersで選択範囲のセルの前後の空白を削除
  • Cocoa Scripting Course 続刊計画
  • macOS 14.xでScript Menuの実行速度が大幅に下がるバグ
  • NaturalLanguage.frameworkでNLEmbeddingの処理が可能な言語をチェック
  • AppleScriptによる並列処理

Tags

10.11savvy (1102) 10.12savvy (1243) 10.13savvy (1392) 10.14savvy (587) 10.15savvy (438) 11.0savvy (283) 12.0savvy (208) 13.0savvy (181) 14.0savvy (131) 15.0savvy (108) CotEditor (64) Finder (51) iTunes (19) Keynote (115) NSAlert (61) NSArray (51) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (53) NSDictionary (28) NSFileManager (23) NSFont (21) NSImage (41) NSJSONSerialization (21) NSMutableArray (63) NSMutableDictionary (22) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (119) NSURL (98) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (75) Pages (54) Safari (44) Script Editor (27) WKUserContentController (21) WKUserScript (20) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • Beginner
  • Benchmark
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • check sum
  • Clipboard
  • Cocoa-AppleScript Applet
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • diff
  • drive
  • Droplet
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Localize
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • parallel processing
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC