{"id":15717151,"url":"https://github.com/wonderingaboutai/text-to-speech","last_synced_at":"2026-04-15T15:33:49.997Z","repository":{"id":241169606,"uuid":"804484897","full_name":"WonderingAboutAI/Text-to-Speech","owner":"WonderingAboutAI","description":"This simple MacOS app can generate voiceover copy of a specified word count with OpenAI's GPT-4 model and record it with OpenAI and ElevenLabs voices. Supports play, pause, and save to MP3. ","archived":false,"fork":false,"pushed_at":"2024-05-26T16:24:03.000Z","size":32,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-30T21:22:24.611Z","etag":null,"topics":["elevenlabs","elevenlabs-api","macos","macos-app","macosx","openai-api","openai-gpt4","openai-whisper","swift","swiftui"],"latest_commit_sha":null,"homepage":"https://wonderingabout.ai","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WonderingAboutAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-22T17:16:56.000Z","updated_at":"2024-11-12T17:54:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"701c24d0-2076-48e6-b471-81157210caf7","html_url":"https://github.com/WonderingAboutAI/Text-to-Speech","commit_stats":null,"previous_names":["wonderingaboutai/text-to-speech"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/WonderingAboutAI/Text-to-Speech","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WonderingAboutAI%2FText-to-Speech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WonderingAboutAI%2FText-to-Speech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WonderingAboutAI%2FText-to-Speech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WonderingAboutAI%2FText-to-Speech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WonderingAboutAI","download_url":"https://codeload.github.com/WonderingAboutAI/Text-to-Speech/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WonderingAboutAI%2FText-to-Speech/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270859063,"owners_count":24658148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elevenlabs","elevenlabs-api","macos","macos-app","macosx","openai-api","openai-gpt4","openai-whisper","swift","swiftui"],"created_at":"2024-10-03T21:48:54.169Z","updated_at":"2026-04-15T15:33:49.930Z","avatar_url":"https://github.com/WonderingAboutAI.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Text-to-Speech\n\n## Text-to-Speech Editor for MacOS\n\nThis MacOS desktop application lets you generate an audio script using OpenAI's GPT4-Turbo model and record spoken audio using AI voices from OpenAI and ElevenLabs. It provides an intuitive interface for testing a wide variety of AI voices and generating audio content.\n\n**Requires API kets from OpenAI and ElevanLabs.**\n\n### Features\n\n- **Generate Audio Script**: Prompt GPT4-Turbo to create an audio script with or without SSML. **Warning:** Neither OpenAI nor ElevenLabs consistently supports SSML, although sometimes GPT4 will recognize it.\n- **Edit and Save Scripts**: Edit scripts and export them as text files. \n- **Try Voices**: Choose from a variety of voices provided by OpenAI and ElevenLabs to find the one that best suits your needs.\n- **Playback Audio**: Listen to the generated audio directly within the app, with controls for play, pause, and stop.\n- **Save MP# files**: Save audio recordings as MP3s to use in your projects.\n\n### Getting Started\n\n### API keys\n\nTo use this app, you will need to get API keys from OpenAI and ElevenLabs.\n\n### OpenAI \n\nVisit [OpenAI's websiteOpenAI](https://www.openai.com)\n\nSign up for an account or log in if you already have one.\n\nNavigate to the API key page and follow the instructions to generate a new API key.\n\nFor more information, consult [OpenAI's official documentation.](https://platform.openai.com/docs/api-reference)\n\n\n⚠️ **Please take precautions to keep your API key secure per OpenAI's guidance:**\n\nRemember that your API key is a secret! Do not share it with others or expose it in any client-side code (browsers, apps). Production requests must be routed through your backend server where your API key can be securely loaded from an environment variable or key management service.\n\n\n### ElevenLabs\n\nVisit [ElevenLabs' website](https://elevenlabs.io)\n\nSign up for an account or log in if you already have one.\n\nOnce logged in, navigate to your profile. You can access your API key by clicking on your profile picture, then selecting \"Profile + API key\" from the menu.\n\nFor more information, consult [OpenAI's official documentation.](https://platform.openai.com/docs/api-reference)\n\nOn the profile page, click on the eye icon to reveal your xi-api-key. This is the API key you will use to authenticate API requests.\n\n### Package dependencies\n\nBefore you can run this application, you'll need to add the following package dependency to your project:\n\n- **SwiftOpenAI**: https://github.com/jamesrochabrun/SwiftOpenAI \n\nThis package defines functions for accessing GPT4-Turbo and the Whisper TTS model through OpenAI's API\n\nLogic for the **ElevenLabs API** is built into the app itself and was adapted from this iOS package: https://swiftpackageindex.com/ArchieGoodwin/ElevenlabsSwift\n\n**Do not add this dependency**, it does not support MacOS.\n\n\n### Installation\nClone the repository: \u003chttps://github.com/KarenSpinner/Text-to-Speech\u003e\n\nOpen your project in Xcode.\n\nAdd the **SwiftOpenAI package dependency** mentioned above through Xcode’s Swift Package Manager integration.\n\nInitialize the **OpenAI service** using your API key. You can do this from ContentView.swift:\n\n```\nlet apiKey = openAI // Replace with your actual API key\nservice = OpenAIServiceFactory.service(apiKey: apiKey)\n```\n\nInitialize the **ElevenLabs service** using your API key. You can do this from Edit and Record_ElevenLabs.swift:\n\n```\npublic class ElevenlabsSwift {\n    private var elevenLabsAPI: String\n    \n    public required init(elevenLabsAPI: String) {\n        self.elevenLabsAPI = elevenLabsAPI\n    }\n ```\n\nRun the application through Xcode. Once started, the main interface allows you to:\n\n- Generate and edit a voiceover script.\n- Select OpenAI and ElevenLabs voices.\n- Generate the speech to hear the playback.\n- Play, pause, and stop generated audio.\n- Save the generated audio as an MP3 file.\n\n### License\n\nDistributed under the MIT License. See LICENSE for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwonderingaboutai%2Ftext-to-speech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwonderingaboutai%2Ftext-to-speech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwonderingaboutai%2Ftext-to-speech/lists"}