gpt4 book ai didi

string - 使用 Automator "Run Applescript"变量

转载 作者:行者123 更新时间:2023-12-04 04:39:14 29 4
gpt4 key购买 nike

在用于从 30 个左右字符到 800 个以上的文本选择创建文本到语音音频文件的自动操作中请求截断/修剪字符串的帮助,这对于文件名来说太长了。

简而言之,我试图将一个字符串截断为 30 个字符,并将其作为文件名传递给“文本到音频文件”操作。

基本工作流程是:

选择文字
通过服务菜单启动以下 Automator 操作

  • “设置变量值”以输入(例如选定的文本)并定义为 TextToSpeech
  • “设置变量值”输入(例如选定的文本)并定义为文件名
  • “获取变量的值”文件名
  • “运行 AppleScript”
    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
  • “设置变量值”输入(例如所选文本)并定义为文件名
  • “获取变量的值”TextToSpeech
  • “文本到音频文件”与另存为:设置为“文件名”
  • “编码为 MPEG 音频”

  • 非常感谢任何帮助/建议!

    问候,

    和风

    最佳答案

    通常,您可以使用代码末尾的“return”命令从applescript 传递到下一个操作所需的任何内容。在您的情况下,尽管自动操作“文本到音频文件”不接受 fileName 变量,因此如果您想要那么多控制,则需要另一种方法。幸运的是,可以使用简单的“say”命令在 Applescript 代码中轻松替换自动机操作。

    因此,创建您的自动化服务并接收所选文本。然后添加一个applescript 操作并使用以下代码作为代码。然后添加“编码为 MPEG 音频”操作。

    对于 applescript 代码,只需使用您选择的值修改 voiceName 和 saveFolder 变量。 saveFolder 路径必须以冒号 (:) 结尾。请注意,我使用 26 而不是 30,因为我们将“.aif”添加到文件名的末尾...总共有 30 个字符。

    on run {input, parameters}
    set voiceName to "Jill"
    set saveFolder to path to desktop as text

    set selectedText to item 1 of input
    if (length of selectedText) > 26 then
    set fileName to text 1 thru 26 of selectedText
    else
    set fileName to selectedText
    end if
    set fileName to fileName & ".aif"
    set filePath to saveFolder & fileName

    say selectedText using voiceName saving to file filePath

    return {POSIX path of filePath}
    end run

    如果您需要确定您的保存文件夹,请使用它来获取路径。运行此代码并将结果复制/粘贴到上面的 saveFolder 变量中。
    (choose folder) as text

    关于string - 使用 Automator "Run Applescript"变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19192197/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com