franc-audio-to-text
Version:
<!-- demo --> [DEMO WITH NEXTJS](https://next-transcriber.vercel.app) ## Installation ```bash npm install franc-audio-to-text ``` ## Usage with Typescript ```typescript import TranscribeAudioToText from "franc-audio-to-text"; ```
47 lines (39 loc) • 1.41 kB
text/typescript
import { AssemblyAI,Transcript } from 'assemblyai';
class TranscribeAudioToText {
private client: AssemblyAI;
constructor(apiKey: string) {
this.client = new AssemblyAI({ apiKey });
}
async createTranscript(audioUrl: string): Promise<string> {
const config = {
audio_url: audioUrl
};
try {
if (audioUrl === null || audioUrl === undefined) {
throw new Error('Audio URL is null or undefined');
}
const transcript: Transcript = await this.client.transcripts.create(config);
if (transcript.text !== null && transcript.text !== undefined) {
// Splitting the text into sentences at every two 2 sentences (.) and adding a line break after every second sentence
let paragraphedText = '';
let sentenceCount = 0;
const sentences = transcript.text.split('.');
sentences.forEach((sentence) => {
if (sentenceCount === 2) {
paragraphedText += `${sentence}.\n\n`;
sentenceCount = 0;
} else {
paragraphedText += `${sentence}.`;
sentenceCount += 1;
}
});
return paragraphedText;
} else {
throw new Error('Transcript text is null or undefined');
}
} catch (error) {
throw new Error(`Error occurred: ${error}`);
}
}
}
export default TranscribeAudioToText;