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.
- 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
- An Azure subscription with permissions to create the required resources
- An Azure Cognitive Services resource or Speech Services resource
- An Azure Active Directory App Registration 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 and To Do
- (Optional) An Azure Key Vault resource
- Create the Azure Cognitive Services resource or Speech Services resource. Make sure to copy the key and region for later use.
- 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.
- Add the
Files.ReadWrite.All
,User.Read
, andTasks.ReadWrite
permissions to the app registration. - Add the redirect URIs
http://localhost:5297/signin-oidc
andhttps://localhost:7074/signin-oidc
to the app registration. - (Optional) Create the Azure Key Vault resource. Make sure to copy the key vault name for later use.
- Clone the repository.
- Replace the
{YOUR_SPEECH_SERVICE_REGION}
and{YOUR_SPEECH_SERVICE_SUBSCRIPTION_KEY}
placeholders inappsettings.json
respectively with your Azure Cognitive Services region and key. - Replace the
{YOUR_TENANT_ID}
,{YOUR_CLIENT_ID}
, and{YOUR_CLIENT_SECRET}
placeholders inappsettings.json
respectively with your app registration tenant ID, client ID, and client secret. Set the Tenant ID tocommon
if you want to allow users from any tenant to sign in to the application. - (Optional) Set the
KeyVaultName
value inappsettings.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 inappsettings.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 inappsettings.json
, and to make sure your application has access to the key vault. - Run the application, and sign in with a Microsoft account that has access to OneDrive.
- Click the bottom-right
+
button to open the upload dialog. - Select an audio file to upload.
- Select the language of the audio file.
- Click the
Start
button to upload the file and start the transcription. - The transcription progress will be displayed on the main page.
- Once the transcription is complete, click the
Save
button to open the save dialog. - Enter a name for the transcript.
- Click the
Save
button to upload the transcript to OneDrive as a .txt file. - (Optional) Set a reminder to review the transcript by clicking the
Set reminder
button. The reminder will be created in Microsoft To Do.
- Only .wav files are supported
- The application has only been tested with short-medium length audio files (less than 5 minutes)
This repository contains an automated workflow that will deploy the application to Azure App Service. To deploy the application to Azure, follow these steps:
- Fork the repository.
- Create an Azure App Service resource.
- Set the publish profile for the Azure App Service resource in the repository secrets as
AZURE_PUBLISH_PROFILE
. - 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.
Contributions are welcome! Please open an issue or submit a pull request.