deepgram_speech_to_text 2.1.0 copy "deepgram_speech_to_text: ^2.1.0" to clipboard
deepgram_speech_to_text: ^2.1.0 copied to clipboard

A Deepgram client for Dart and Flutter, supporting all Speech-to-Text and Text-to-Speech features on every platform.

example/deepgram_speech_to_text_example.dart

import 'dart:io';
import 'package:deepgram_speech_to_text/deepgram_speech_to_text.dart';

void main() async {
  // Get your API key from the Deepgram console if you don't have one https://console.deepgram.com/
  String apiKey = "YOUR_API_KEY";

  // You can pass optional query parameters in :
  // - the constructore for all requests
  // - the method for a specific request
  // reference : https://developers.deepgram.com/reference/listen-file
  Map<String, dynamic> params = {
    'model': 'nova-2-general',
    'detect_language': true,
    'filler_words': false,
    'punctuation': true,
    //...
  };

  Deepgram deepgram = Deepgram(apiKey, baseQueryParams: params);

  // check if the API key is valid
  final isValid = await deepgram.isApiKeyValid();
  print('API key is valid: $isValid');

  // -------------------- From a file --------------------
  File audioFile = File('audio.wav');

  final res1 = await deepgram.transcribeFromFile(audioFile);
  print(res1.transcript);

  // -------------------- From a URL --------------------
  final res2 = await deepgram.transcribeFromUrl('https://somewhere/audio.wav');
  print(res2.transcript);

  // -------------------- From raw data --------------------
  final res = await deepgram.transcribeFromBytes(List.from([1, 2, 3, 4, 5]));
  print(res.transcript);

  // -------------------- From a stream  --------------------
  // For example : from a microphone https://pub.dev/packages/record (other packages would work too as long as they provide a stream)
  // final audioStream = await AudioRecorder().startStream(RecordConfig(
  //   encoder: AudioEncoder.pcm16bits,
  //   sampleRate: 16000,
  //   numChannels: 1,
  // ));

  Stream<List<int>> audioStream = audioFile.openRead(); // mic.stream ...

  Stream<DeepgramSttResult> resStream =
      deepgram.transcribeFromLiveAudioStream(audioStream);

  resStream.listen((res) {
    print(res.transcript);
  });

  // If you prefer to have more control over the stream:

  final DeepgramLiveTranscriber transcriber =
      deepgram.createLiveTranscriber(audioStream);

  transcriber.start();

  transcriber.stream.listen((json) {
    print(json);
  });
  transcriber.close();
  // after that you can call start() again, no need to create a new transcriber :)

  // -------------------- Text to Speech --------------------
  final dg = Deepgram(apiKey);
  final res3 = await dg.speakFromText('Hello, how are you?');
  // then use res as you like
  res3.data; // Uint8List of audio data
  res3.contentType; // 'audio/wav'
}
5
likes
140
pub points
76%
popularity

Publisher

unverified uploader

A Deepgram client for Dart and Flutter, supporting all Speech-to-Text and Text-to-Speech features on every platform.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

http, universal_file, web_socket_channel

More

Packages that depend on deepgram_speech_to_text