{
  "name": "Generate natural voices with Google Text-to-Speech, Drive & Airtable",
  "nodes": [
    {
      "id": "2eb04401-8f1d-40c9-a832-aee4b71ed051",
      "name": "Upload file",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        420,
        40
      ]
    },
    {
      "id": "07d8710d-bbb3-4cf7-8e9e-5601a27bee00",
      "name": "Create a record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1360,
        20
      ]
    },
    {
      "id": "58e6cfb8-06f4-4a76-b425-c5c351fb29d7",
      "name": "Convert to File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        220,
        40
      ]
    },
    {
      "id": "6d3aed5e-4770-4cc3-a3b1-91c9c0e3f453",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -880,
        -460
      ],
      "parameters": {
        "width": 460,
        "height": 1160,
        "content": "## Try It Out! 🗣️\n### This n8n template shows you how to use Google's AI to turn text into natural-sounding speech. Experiment with all of the Chirp 3 HD voices.\n\n## The uses are endless! Try creating"
      }
    },
    {
      "id": "5a80d6b6-236b-48d2-bd52-97b361e7d2d6",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        280
      ],
      "parameters": {
        "width": 460,
        "height": 140,
        "content": "### Geo Restrictions!\nPlease note at time of writing, Google TTS is restricted to certain countries and regions."
      }
    },
    {
      "id": "91db268c-9c73-4d22-a680-0cf155d173a8",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -360,
        -320
      ],
      "parameters": {
        "width": 320,
        "height": 320,
        "content": "## 1. Input Your Script, Select the Language and Voice\n[Scripting and Prompting Tips](https://cloud.google.com/text-to-speech/docs/chirp3-hd#scripting-and-prompting-tips)\n\nThe Chirp 3 HD voices observ"
      }
    },
    {
      "id": "df31181c-5b54-4b8d-a1a5-3bbf92160d02",
      "name": "On form submission2",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -340,
        40
      ]
    },
    {
      "id": "96e92471-78e8-4a3d-bb86-3034876fef53",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -160,
        40
      ]
    },
    {
      "id": "3232d9e3-a1ff-407b-8aa0-121c420121f9",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        1000,
        40
      ]
    },
    {
      "id": "5feb467f-73c6-49de-bbeb-d946ab041f24",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1180,
        180
      ]
    },
    {
      "id": "591bfd72-ba48-49da-b374-f071ad451574",
      "name": "Get Status",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        820,
        40
      ]
    },
    {
      "id": "126d1809-86cd-447e-b8d3-5a33cd993a76",
      "name": "Request TTS ",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        20,
        40
      ]
    },
    {
      "id": "069111f8-b712-424d-9428-2baa8a9d8b1b",
      "name": "Request Duration",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        600,
        40
      ]
    },
    {
      "id": "c6a310e0-ab35-4e70-b0e8-49cd59380dd6",
      "name": "Get Duration",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1180,
        20
      ]
    },
    {
      "id": "943bfe16-c82a-4de2-b56b-df4cfeb756e7",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -320
      ],
      "parameters": {
        "width": 500,
        "height": 320,
        "content": "## 2. Request and Return the TTS Audio. Convert the Base64 String into an Audio File.\n[Read more about the Convert to File node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.conv"
      }
    },
    {
      "id": "7e231d99-67b9-434d-ad92-4c2e6c3b817a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        -320
      ],
      "parameters": {
        "width": 680,
        "height": 320,
        "content": "## 3. Find the Duration of the Audio File\n[Read more about Looping in n8n](https://docs.n8n.io/flow-logic/looping/)\n\nWe can use the fal.ai API to get metadata about our media files. This API uses a qu"
      }
    },
    {
      "id": "3da2e908-ee34-4114-ad72-c580d30ef7e5",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        -320
      ],
      "parameters": {
        "width": 320,
        "height": 320,
        "content": "## 4. Update our Database with Our New Audio File\n[Airtable](https://www.airtable.com)\n\nWe can keep track of our media assets in a database to make it easier to use those assets to create content."
      }
    }
  ],
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Get Duration",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "Get Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Status": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Request TTS ",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload file": {
      "main": [
        [
          {
            "node": "Request Duration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Duration": {
      "main": [
        [
          {
            "node": "Create a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Request TTS ": {
      "main": [
        [
          {
            "node": "Convert to File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File": {
      "main": [
        [
          {
            "node": "Upload file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a record": {
      "main": [
        []
      ]
    },
    "Request Duration": {
      "main": [
        [
          {
            "node": "Get Status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission2": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}