2

ファイル名には長すぎる 30 文字から 800 文字以上の範囲のテキスト選択からテキスト読み上げオーディオ ファイルを作成するために使用される自動化アクションで、文字列の切り捨て/トリミングについて支援を求めます。

要するに、文字列を 30 文字に切り詰めて、それをファイル名として「テキストから音声ファイルへ」アクションに渡そうとしています。

基本的なワークフローは次のとおりです。

テキストを選択 サービス メニューから次の Automator アクションを開始

  1. 「変数の値を設定」して入力 (選択したテキストなど) し、TextToSpeech として定義します。
  2. 「変数の値を設定」に入力 (選択したテキストなど) し、FileName として定義
  3. 「変数の値を取得」ファイル名
  4. 「アップルスクリプトを実行」

    on run {input, parameters}
        set theResult to input as string
        set finalResult to input as string
        set txtLength to (length of theResult)
        if txtLength > 30 then
            set finalResult to (characters 1 thru 30 of theResult) as string
        end if
        return finalResult
    end run
    
  5. 「変数の値を設定」入力 (選択したテキストなど) し、FileName として定義します。

  6. 「変数の値を取得」TextToSpeech
  7. 名前を付けて保存: 「ファイル名」に設定された「テキストから音声ファイルへ」
  8. 「MPEGオーディオにエンコード」

どんな支援/提案も大歓迎です!

よろしく、

ゼファー

4

2 に答える 2

0

うまくいったのは次のとおりです。

テキストを選択

サービス メニューから次の Automator アクションを開始します

「変数の値を設定」して入力 (選択したテキストなど) し、TextToSpeech として定義します。

「アップルスクリプトを実行」

on run {input, parameters}
    set theResult to input as string
    set finalResult to input as string
    set txtLength to (length of theResult)
    if txtLength > 50 then
        set finalResult to characters 1 thru 50 of theResult as string
    end if
    return finalResult as string
end run

「変数の値を設定」入力 (選択したテキストなど) し、FileName として定義します。

「変数の値を取得」 TextToSpeechし、このアクションの入力を無視します

[名前を付けて保存] を [ファイル名] に設定し、保存場所を設定した [音声ファイルへのテキスト]。

「MPEGオーディオにエンコード」

結果: 選択したテキストの最初の 50 文字に設定されたファイル名を持つ、目的の声で話された選択したテキストのオーディオ ファイル。

(ワークフローの一部として取得していた重複するファイル名の数を減らすために、文字数を増やしました。)

@regulus6633:あなたの答えはよりコンパクトでエレガントですが、applescriptが入力を取得して結果を返す方法についてもっと学ぶ必要があります。再度、感謝します。

于 2013-10-06T15:10:07.103 に答える