Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gurucharan94/az-podcast-transcriber
A podcast transcription service built on Azure that transcribes any new episode of your podcast and displays synchronized transcripts alongside your audio making your podcast more accessible.
https://github.com/gurucharan94/az-podcast-transcriber
accessibility artificial-intelligence azure azure-cognitive-services azure-functions podcast transcription
Last synced: 3 months ago
JSON representation
A podcast transcription service built on Azure that transcribes any new episode of your podcast and displays synchronized transcripts alongside your audio making your podcast more accessible.
- Host: GitHub
- URL: https://github.com/gurucharan94/az-podcast-transcriber
- Owner: GuruCharan94
- License: mit
- Created: 2019-06-03T05:59:20.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-10T00:37:07.000Z (about 2 years ago)
- Last Synced: 2024-04-16T04:41:23.753Z (9 months ago)
- Topics: accessibility, artificial-intelligence, azure, azure-cognitive-services, azure-functions, podcast, transcription
- Language: C#
- Homepage:
- Size: 1.44 MB
- Stars: 10
- Watchers: 3
- Forks: 5
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Az Podcast Transcriber
A podcast transcription service built on Azure that transcribes any new episode of your podcast and displays synchronized transcripts alongside your audio making your podcast more accessible. Read this [blog post](https://www.gurucharan.in/azure/accessibility-ai-and-abstractions-how-i-built-a-podcast-transcription-service-on-azure-in-a-week/) to learn more.
![Overview](https://www.gurucharan.in/assets/images/hanselminutes-clone/v1.jpg)
## Contributing
Please read [the contribution guidlines](./CONTRIBUTING.md) for details on submitting pull requests.
## Code of Conduct
Please read [our Code of Conduct](./CODE_OF_CONDUCT.md) as well.
## License
This project is licensed under the MIT License - see the [LICENSE.md](./LICENSE.md) file for details
## Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes and also deploying this on Azure.
### Prerequisites
- Familiarize yourself with [Azure Batch Transcription Concepts](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/batch-transcription)
- You will need an active Azure Subscription.
- Ensure you have dotnet core 2.2 or higher version on your machine.
- You will need Visual Studio 2017 or higher with the dotnet core and Azure workloads.
- Use [Azure Shell](https://shell.azure.com/) that has the Azure CLI and Powershell tools installed.### Deploying Azure Infrastructure
- Login in to Azure Shell and clone the repo.
- Run the below commands to deploy required infrastructure on Azure.
```powershell
cd src/AzPodcastTranscriber.Infra
./deploy.ps1 - SubscriptionName "" - ResourceGroupName ""
```### Deploy Code to Azure
- Clone the repository on your machine.
- Restore Nuget Packages and Build the solution.
- Right click --> Publish the Functions.
- Right click --> Publish the Web Project to Azure Web App.### Running the Azure Functions locally
- **Run the below commands to ignore changes to prevent accidentally committing your config secrets.** Read more about the command [here](https://stackoverflow.com/questions/13630849/git-difference-between-assume-unchanged-and-skip-worktree#).
``` bash
git update-index --skip-worktree ./src/AzPodcastTranscriber.Functions/local.settings.json
git update-index --skip-worktree ./src/AzPodcastTranscriber.Web/appsettings.json
```- **Copy Relevant settings to `local.settings.json` file from Azure.**
- Set the Azure Functions as startup project and run it locally by pressing F5. Make a HTTP Post request to `OnRSSFeedUpdated` function with payload structure as below running on `http://localhost:port/api/OnRSSFeedUpdated```` json
{
"title": "Your favourite podcast episode",
"primaryLink": "https://www.my-epidosde-link.mp3",
"publishDate": "2019-05-30T00:00:00"
}
```- You can check if the audio file is uploaded to storage account.
- Testing the transcription webhook is tricky because the `localhost` URL is not publicly accessible.
- Once a transcription is completed, make a request to the `OnTranscriptionCompleted` function running locally on `http://localhost:port/api/OnTranscriptionCompleted.` with below payload.``` json
{
"id": "GUID-That-you-can-get-from-transcription-api",
}
```### Running the Web App locally
- Update relevant Cosmos DB Details in the `appsettings.json` file of the Web Project.
- Set the `AzPodcastTranscriber.Web` project as startup project and run it. You will be able to see completed transcriptions.