https://github.com/richardrigutins/my-transcripts
Web app that converts speech to a text transcript and lets you save the generated transcripts to OneDrive using Microsoft Graph
https://github.com/richardrigutins/my-transcripts
azure blazor blazor-server cognitive-services dotnet dotnet-core graph hack-together hacktogether microsoft-graph microsoft-graph-sdk speech-to-text
Last synced: 2 months ago
JSON representation
Web app that converts speech to a text transcript and lets you save the generated transcripts to OneDrive using Microsoft Graph
- Host: GitHub
- URL: https://github.com/richardrigutins/my-transcripts
- Owner: richardrigutins
- License: mit
- Created: 2023-03-09T17:09:24.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-06-11T20:38:10.000Z (almost 2 years ago)
- Last Synced: 2024-06-12T05:11:46.694Z (almost 2 years ago)
- Topics: azure, blazor, blazor-server, cognitive-services, dotnet, dotnet-core, graph, hack-together, hacktogether, microsoft-graph, microsoft-graph-sdk, speech-to-text
- Language: C#
- Homepage:
- Size: 271 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MyTranscripts
__MyTranscripts__ is a Blazor Server web application that leverages Azure Cognitive Services and Microsoft Graph to provide a simple way to transcribe audio files and store them in OneDrive.
[](https://github.com/microsoft/hack-together)
## Features
- Transcribe audio files to text using Azure Cognitive Services Speech to Text
- Store transcripts in OneDrive as .txt files using Microsoft Graph
- Set reminders to review transcripts in Microsoft To Do using Microsoft Graph
## Prerequisites
- An [Azure subscription](https://azure.microsoft.com/free/) with permissions to create the required resources
- An [Azure Cognitive Services](https://docs.microsoft.com/azure/cognitive-services/cognitive-services-apis-create-account) resource or [Speech Services](https://docs.microsoft.com/azure/cognitive-services/speech-service/get-started) resource
- An [Azure Active Directory App Registration](https://docs.microsoft.com/azure/active-directory/develop/quickstart-register-app) with the following permissions:
- `Files.ReadWrite.All` (Read and write files in OneDrive)
- `User.Read` (User profile)
- `Tasks.ReadWrite` (Read and write tasks in Microsoft To Do)
- A Microsoft account that has access to [OneDrive](https://onedrive.live.com/about/en-us/) and [To Do](https://todo.microsoft.com/)
- (Optional) An [Azure Key Vault](https://docs.microsoft.com/azure/key-vault/general/quick-create-portal) resource
## Azure setup
1. Create the Azure Cognitive Services resource or Speech Services resource. Make sure to copy the key and region for later use.
2. Create the Azure Active Directory App Registration, and create a client secret for the app registration. Make sure to copy the client ID and client secret for later use.
3. Add the `Files.ReadWrite.All`, `User.Read`, and `Tasks.ReadWrite` permissions to the app registration.
4. Add the redirect URIs `http://localhost:5297/signin-oidc` and `https://localhost:7074/signin-oidc` to the app registration.
5. (Optional) Create the Azure Key Vault resource. Make sure to copy the key vault name for later use.
## Application setup
1. Clone the repository.
2. Replace the `{YOUR_SPEECH_SERVICE_REGION}` and `{YOUR_SPEECH_SERVICE_SUBSCRIPTION_KEY}` placeholders in `appsettings.json` respectively with your Azure Cognitive Services region and key.
3. Replace the `{YOUR_TENANT_ID}`, `{YOUR_CLIENT_ID}`, and `{YOUR_CLIENT_SECRET}` placeholders in `appsettings.json` respectively with your app registration tenant ID, client ID, and client secret. Set the Tenant ID to `common` if you want to allow users from any tenant to sign in to the application.
4. (Optional) Set the `KeyVaultName` value in `appsettings.json` to the name of your Azure Key Vault. You can use the key vault to store your Azure Cognitive Services key and endpoint and your Microsoft Graph application registration client ID and client secret instead of storing them in `appsettings.json`. If you choose to use the key vault, make sure to create the secrets in the key vault with the same names as the values in `appsettings.json`, and to make sure your application has access to the key vault.
5. Run the application, and sign in with a Microsoft account that has access to OneDrive.
## Usage
1. Click the bottom-right `+` button to open the upload dialog.
2. Select an audio file to upload.
3. Select the language of the audio file.
4. Click the `Start` button to upload the file and start the transcription.
5. The transcription progress will be displayed on the main page.
6. Once the transcription is complete, click the `Save` button to open the save dialog.
7. Enter a name for the transcript.
8. Click the `Save` button to upload the transcript to OneDrive as a .txt file.
9. (Optional) Set a reminder to review the transcript by clicking the `Set reminder` button. The reminder will be created in Microsoft To Do.
## Current limitations
- Only .wav files are supported
- The application has only been tested with short-medium length audio files (less than 5 minutes)
## Deploying to Azure
This repository contains an automated workflow that will deploy the application to Azure App Service. To deploy the application to Azure, follow these steps:
1. Fork the repository.
2. Create an Azure App Service resource.
3. Set the publish profile for the Azure App Service resource in the repository secrets as `AZURE_PUBLISH_PROFILE`.
4. Set the Aure App Service name in the repository secrets as `AZURE_APP_SERVICE_NAME`.
The application will be deployed to the Azure App Service when a commit is pushed to the `main` branch.
## Contributing
Contributions are welcome! Please open an issue or submit a pull request.