vais_speech 0.0.4

  • Readme
  • Changelog
  • Example
  • Installing
  • new55

VAIS Speech #

Build Status

For easy integration with VAIS Speech service.

Features #

  • Streaming recognition (up to 1 minutes)
  • Offline record audio and recognition (up to 1 hour)

Installation #

Add this to your package's pubspec.yaml file

dependencies:
  vais_speech: [Current version]

How to use? #

VAIS Speech has 2 parts :

  • Record Audio ( Offline and Streaming Support )
  • Uploaded audio following status
  • Get text by speech

Before started

Android :

Set up permission related to record in AndroidManifest.xml, as below

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
iOS :

The same with iOS in Info.plist

	<key>NSAppleMusicUsageDescription</key>
	<string>App need to use music because of retrieving your need uploading file.</string>
	<key>UIBackgroundModes</key>
	<array>
		<string>audio</string>
		<string>fetch</string>
	</array>
Flutter side :

Initialize VAIS instance to use :

final vaisSpeech = VaisSpeech(<YOUR_TOKEN>)

Record Audio:

VAIS Speech have 2 modes to use and you need to decide which mode should be use :

  • Offline mode (default)
  • Streaming mode

  1. Get VAIS Speech Audio and initialize it before recording
final vaisSpeechAudio = vaisSpeech.vaisSpeechAudio; // Get VAIS Speech Audio
await vaisSpeechAudio.init(...) // then initilize it

More about .init() function :

| Function | Properties | | ------ | ------ | | Future init(String path, {AudioFormat audioFormat, int sampleRate = 16000, RecordMode recordMode = RecordMode.Offline}) | path : Your recording path - recordMode : Your recording mode | #

  1. Add Listener to observer your recording. E.g: duration, settings, streaming text (if your are in streaming mode) ...) This method should be call before starting.
vaisSpeechAudio.addListener(listener);
FunctionProperties
addListener(VaisSpeechCallback listener)see more VaisSpeechCallback
VaisSpeechCallbackThis callback includes 3 methods : onGeneratedSpeechText / onDurationChanged / onConnectionChanged
  • onGeneratedSpeechText : Fired when there's some texts are translated (Streaming mode only)
  • onConnectionChanged : Fired when the connection with our services is closed (Streaming mode only)
  • onDurationChanged : duration of your recording (for show duration for e.g).

  1. Start Recording : Simply call .start to start recording
    await vaisSpeechAudio.start();

  1. Pause Recording (Offline mode Only) : You will get an Exception when call it in Streaming Mode
    await vaisSpeechAudio.pause();

  1. Resume Recording (Offline mode Only) : You will get an Exception when call it in Streaming Mode
    await vaisSpeechAudio.resume();

  1. Stop Recording :
    await vaisSpeechAudio.stop();

Upload Recorded Audio:

After recording, call .startAsr() to upload your local Audio. This function will return a AudioId

    await vaisSpeechAudio.startAsr(...);
FunctionProperties
Futurepath : your located audio file - finalName (optional) your custom audio name

Following status of the Recorded Audio:

    var audioStatus = await vaisSpeechAudio.getProgress(...);
FunctionProperties
Futureaudio : your audio id after uploading. This will be return a AudioStatus model
AudioStatusIncludes: CREATED, QUEUED, PROCESSING, DONE, ERROR

Get transcript of the Recorded Audio:

    final transcript = await vaisSpeechAudio.getTranscript()..data;
FunctionProperties
Futureaudio : your audio id after uploading. This will be return a TranscriptResponse model, you should .data to get a transcript list

0.0.1 #

  • Describe initial release.

0.0.2 #

  • Add Optional singleUtterance to .addListener() function (default is true):
    void addListener(VaisSpeechCallback listener, {bool singleUtterance = true}) {}

Notice : Only available with streaming mode

0.0.3 #

  • Update Document in README.md

0.0.4 #

  • Release Streaming mode for iOS

example/lib/main.dart

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:toast/toast.dart';
import 'package:vais_speech/model/lyric/lyric.dart';
import 'package:vais_speech/vais_speech.dart';
import 'package:vais_speech_example/record.dart';

void main() {
  VaisSpeech vaisSpeech = VaisSpeech('<YOUR_API_KEY>');

  return runApp(MyApp(vaisSpeech: vaisSpeech));
}

class MyApp extends StatefulWidget {
  final VaisSpeech vaisSpeech;

  const MyApp({Key key, this.vaisSpeech}) : super(key: key);

  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final GlobalKey<NavigatorState> navigatorKey = GlobalKey();

  List<String> _transcript;

  @override
  Widget build(BuildContext context) {
    final mContext = context;
    return MaterialApp(
      navigatorKey: navigatorKey,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('VAIS Speech Demo'),
        ),
        body: Center(
          child: Column(
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: RaisedButton(
                  child: Text('Offline Record'),
                  onPressed: () {
                    navigatorKey.currentState?.push(MaterialPageRoute(builder: (context) => RecordScreen(
                        vaisSpeech: widget.vaisSpeech,
                        vaisSpeechAudio: widget.vaisSpeech.vaisAudio,
                        isOfflineMode: true)
                    ));
                  },
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: RaisedButton(
                  child: Text('Streaming Record'),
                  onPressed: () {
                    navigatorKey.currentState?.push(MaterialPageRoute(builder: (context) => RecordScreen(
                        vaisSpeech: widget.vaisSpeech,
                        vaisSpeechAudio: widget.vaisSpeech.vaisAudio,
                        isOfflineMode: false)
                    ));
                  }
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: RaisedButton(
                    child: Text('Get Progress'),
                    onPressed: () async {
                      String _audioId = "";
                      if (_audioId.isEmpty) {
                        print("Fill your audio id first");
                        return;
                      }
                      var progress = await widget.vaisSpeech.getProgress(_audioId);
                      print("Your Process now : ${progress.toString()}");
                    }
                ),
              ),
              Padding(
                padding: const EdgeInsets.all(8.0),
                child: RaisedButton(
                    child: Text('Get Transcript'),
                    onPressed: () async {
                      String _audioId = "";
                      if (_audioId.isEmpty) {
                        print("Fill your audio id first");
                        return;
                      }
                      var transcript = await widget.vaisSpeech.getTranscript(_audioId);
                      setState(() {
                        _transcript = transcript.data.map((item) => "${item.text}\n").toList();
                      });
                    }
                ),
              ),
              Flexible(
                child: Text(_transcript?.toString() ?? ""),
              )
            ],
          ),
        ),
      ),
    );
  }
}

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  vais_speech: ^0.0.4

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:vais_speech/vais_speech.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
31
Health:
Code health derived from static analysis. [more]
99
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
50
Overall:
Weighted score of the above. [more]
55
Learn more about scoring.

We analyzed this package on Mar 31, 2020, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.7.1
  • pana: 0.13.6
  • Flutter: 1.12.13+hotfix.8

Health suggestions

Fix lib/model/audio/audio_response.dart. (-0.50 points)

Analysis of lib/model/audio/audio_response.dart reported 1 hint:

line 4 col 8: Unused import: 'package:vais_speech/model/base_response.dart'.

Fix lib/vais_speech_audio.dart. (-0.50 points)

Analysis of lib/vais_speech_audio.dart reported 1 hint:

line 30 col 25: The value of the field '_offlineController' isn't used.

Format lib/controller/offline_controller.dart.

Run flutter format to format lib/controller/offline_controller.dart.

Fix additional 15 files with analysis or formatting issues.

Additional issues in the following files:

  • lib/controller/streaming_controller.dart (Run flutter format to format lib/controller/streaming_controller.dart.)
  • lib/model/audio/audio.dart (Run flutter format to format lib/model/audio/audio.dart.)
  • lib/model/audio/created_audio_response.dart (Run flutter format to format lib/model/audio/created_audio_response.dart.)
  • lib/model/base_response.dart (Run flutter format to format lib/model/base_response.dart.)
  • lib/model/lyric/lyric.dart (Run flutter format to format lib/model/lyric/lyric.dart.)
  • lib/model/s3/signature.dart (Run flutter format to format lib/model/s3/signature.dart.)
  • lib/model/s3/signature_response.dart (Run flutter format to format lib/model/s3/signature_response.dart.)
  • lib/model/status.dart (Run flutter format to format lib/model/status.dart.)
  • lib/proto/generated/cloud_speech.pb.dart (Run flutter format to format lib/proto/generated/cloud_speech.pb.dart.)
  • lib/proto/generated/cloud_speech.pbenum.dart (Run flutter format to format lib/proto/generated/cloud_speech.pbenum.dart.)
  • lib/proto/generated/cloud_speech.pbjson.dart (Run flutter format to format lib/proto/generated/cloud_speech.pbjson.dart.)
  • lib/repository/network.dart (Run flutter format to format lib/repository/network.dart.)
  • lib/vais.dart (Run flutter format to format lib/vais.dart.)
  • lib/vais_helper.dart (Run flutter format to format lib/vais_helper.dart.)
  • lib/vais_speech.dart (Run flutter format to format lib/vais_speech.dart.)

Maintenance issues and suggestions

Make sure dartdoc successfully runs on your package's source files. (-10 points)

exitCode: 255 stdout: parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/controller/streaming_controller.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/controller/offline_controller.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/status.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/s3/signature_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/s3/signature.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/audio/audio.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/audio/created_audio_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/audio/audio_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/base_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/page_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/lyric/lyric_response.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/model/lyric/lyric.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/proto/generated/cloud_speech.pbenum.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/proto/generated/cloud_speech.pb.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/proto/generated/cloud_speech.pbjson.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/proto/generated/cloud_speech.pbgrpc.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/repository/network.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_helper.dart... parsing /tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais.dart... [...] Generating docs for library cloud_speech.pb from package:vais_speech/proto/generated/cloud_speech.pb.dart... Generating docs for library cloud_speech.pbenum from package:vais_speech/proto/generated/cloud_speech.pbenum.dart... Generating docs for library cloud_speech.pbgrpc from package:vais_speech/proto/generated/cloud_speech.pbgrpc.dart... Generating docs for library cloud_speech.pbjson from package:vais_speech/proto/generated/cloud_speech.pbjson.dart... Generating docs for library created_audio_response from package:vais_speech/model/audio/created_audio_response.dart... Generating docs for library lyric from package:vais_speech/model/lyric/lyric.dart... Generating docs for library lyric_response from package:vais_speech/model/lyric/lyric_response.dart... Generating docs for library network from package:vais_speech/repository/network.dart... Generating docs for library offline_controller from package:vais_speech/controller/offline_controller.dart... Generating docs for library page_response from package:vais_speech/model/page_response.dart... Generating docs for library signature from package:vais_speech/model/s3/signature.dart... Generating docs for library signature_response from package:vais_speech/model/s3/signature_response.dart... Generating docs for library status from package:vais_speech/model/status.dart... Generating docs for library streaming_controller from package:vais_speech/controller/streaming_controller.dart... Generating docs for library vais_helper from package:vais_speech/vais_helper.dart... Generating docs for library vais_speech from package:vais_speech/vais.dart... Generating docs for library vais_speech from package:vais_speech/vais_speech.dart... Generating docs for library vais_speech_audio from package:vais_speech/vais_speech_audio.dart... Validating docs... Documented 21 public libraries in 16.2 seconds stderr: Documenting vais_speech... warning: private API of package:Dart is reexported by libraries in other packages: from E: (file:///flutter/bin/cache/pkg/sky_engine/lib/collection/collections.dart:13:28) referred to by collection: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/collection.dart:1:1) referred to by dart.pkg.collection.wrappers: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/wrappers.dart:7:9) warning: private API of package:Dart is reexported by libraries in other packages: from K: (file:///flutter/bin/cache/pkg/sky_engine/lib/collection/maps.dart:374:27) referred to by collection: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/collection.dart:1:1) referred to by dart.pkg.collection.wrappers: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/wrappers.dart:7:9) warning: private API of package:Dart is reexported by libraries in other packages: from V: (file:///flutter/bin/cache/pkg/sky_engine/lib/collection/maps.dart:374:30) referred to by collection: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/collection.dart:1:1) referred to by dart.pkg.collection.wrappers: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/collection-1.14.11/lib/wrappers.dart:7:9) warning: ambiguous reexport of dart-ui.hashList, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.hashList: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/hash_codes.dart:114:5) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) Use {@canonicalFor dart:ui.hashList} in the desired library's documentation to resolve the ambiguity and/or override dartdoc's decision, or structure your package so the reexport is less ambiguous. The symbol will still be referenced in all candidates -- this only controls the location where it will be written and which library will be displayed in navigation for the relevant pages. The flag --ambiguous-reexport-scorer-min-confidence allows you to set the threshold at which this warning will appear. warning: ambiguous reexport of dart-ui.hashValues, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.hashValues: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/hash_codes.dart:42:5) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.VoidCallback, canonicalization candidates: (cupertino, foundation, material, painting, rendering, scheduler, widgets) -> widgets (confidence 0.000) from dart-ui.VoidCallback: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/window.dart:8:9) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) foundation: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) scheduler: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.AccessibilityFeatures, canonicalization candidates: (rendering, semantics) -> semantics (confidence 0.000) from dart-ui.AccessibilityFeatures: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/window.dart:1208:7) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) semantics: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.FontWeight, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.FontWeight: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:17:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Locale, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.Locale: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/window.dart:248:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Offset, canonicalization candidates: (cupertino, gestures, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.Offset: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:119:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) gestures: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Radius, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.Radius: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:895:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Rect, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.Rect: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:621:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.RRect, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.RRect: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:1018:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.RSTransform, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.RSTransform: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:1645:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Size, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.Size: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/geometry.dart:347:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextBox, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextBox: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1220:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextDecoration, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextDecoration: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:358:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextPosition, canonicalization candidates: (cupertino, material, painting, rendering, services, widgets) -> widgets (confidence 0.000) from dart-ui.TextPosition: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1364:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) services: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextRange, canonicalization candidates: (cupertino, material, painting, rendering, services, widgets) -> widgets (confidence 0.000) from dart-ui.TextRange: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1410:7) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) services: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.AppLifecycleState, canonicalization candidates: (cupertino, material, scheduler, widgets) -> widgets (confidence 0.000) from dart-ui.AppLifecycleState: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/window.dart:154:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) scheduler: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.Brightness, canonicalization candidates: (cupertino, material, services) -> services (confidence 0.000) from dart-ui.Brightness: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/window.dart:1272:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) services: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.FontStyle, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.FontStyle: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:8:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.PlaceholderAlignment, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.PlaceholderAlignment: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1619:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextAffinity, canonicalization candidates: (cupertino, material, painting, rendering, services, widgets) -> widgets (confidence 0.000) from dart-ui.TextAffinity: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1322:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) services: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextAlign, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextAlign: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:317:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextBaseline, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextBaseline: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:349:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextDecorationStyle, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextDecorationStyle: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:417:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: ambiguous reexport of dart-ui.TextDirection, canonicalization candidates: (cupertino, material, painting, rendering, widgets) -> widgets (confidence 0.000) from dart-ui.TextDirection: (file:///flutter/bin/cache/pkg/sky_engine/lib/ui/text.dart:1208:6) cupertino: 1.010 - embeds package name (+1.000), name is long (+0.01000) material: 1.010 - embeds package name (+1.000), name is long (+0.01000) painting: 1.010 - embeds package name (+1.000), name is long (+0.01000) rendering: 1.010 - embeds package name (+1.000), name is long (+0.01000) widgets: 1.010 - embeds package name (+1.000), name is long (+0.01000) warning: no canonical library found for audio.Audio.hashCode, not linking, from audio.Audio.hashCode: (file:///flutter/bin/cache/pkg/sky_engine/lib/core/object.dart:94:20) warning: no canonical library found for audio.Audio.runtimeType, not linking, from audio.Audio.runtimeType: (file:///flutter/bin/cache/pkg/sky_engine/lib/core/object.dart:116:21) warning: no canonical library found for audio.Audio.noSuchMethod, not linking, from audio.Audio.noSuchMethod: (file:///flutter/bin/cache/pkg/sky_engine/lib/core/object.dart:111:20) warning: no canonical library found for audio.Audio.toString, not linking, from audio.Audio.toString: (file:///flutter/bin/cache/pkg/sky_engine/lib/core/object.dart:99:19) warning: no canonical library found for audio.Audio.==, not linking, from audio.Audio.==: (file:///flutter/bin/cache/pkg/sky_engine/lib/core/object.dart:62:26) warning: no canonical library found for cloud_speech.pbgrpc.SpeechClient.$createCall, not linking, from cloud_speech.pbgrpc.SpeechClient.$createCall: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/grpc-2.1.3/lib/src/client/client.dart:30:20) warning: no canonical library found for cloud_speech.pbgrpc.SpeechServiceBase.$addMethod, not linking, from cloud_speech.pbgrpc.SpeechServiceBase.$addMethod: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/grpc-2.1.3/lib/src/server/service.dart:97:8) warning: no canonical library found for cloud_speech.pbgrpc.SpeechServiceBase.$lookupMethod, not linking, from cloud_speech.pbgrpc.SpeechServiceBase.$lookupMethod: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/grpc-2.1.3/lib/src/server/service.dart:107:17) warning: no canonical library found for cloud_speech.pbgrpc.SpeechServiceBase.$onMetadata, not linking, from cloud_speech.pbgrpc.SpeechServiceBase.$onMetadata: (file:///tmp/pub-cache-dirZIUWYA/hosted/pub.dartlang.org/grpc-2.1.3/lib/src/server/service.dart:105:8) warning: vais_speech has no library level documentation comments, from vais_speech: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais.dart:1:9) error: failed to write file at: vais_speech/vais_speech-library.html for symbol vais_speech: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech.dart:1:1) conflicting with file already generated by vais_speech: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais.dart:1:9) Dartdoc generates a path and filename to write to for each symbol. vais_speech conflicts with another symbol in the generated path, and therefore can not be written out. Changing the name, library name, or class name (if appropriate) of one of the conflicting items can resolve the conflict. Alternatively, use the @nodoc tag in one symbol's documentation comments to hide it. warning: unresolved doc reference [speechText], from vais_speech_audio.VaisSpeechAudio.addListener: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart:106:8) warning: unresolved doc reference [onConnection], from vais_speech_audio.VaisSpeechAudio.addListener: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart:106:8) warning: unresolved doc reference [Paused], from vais_speech_audio.VaisSpeechAudio.pause: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart:147:10) warning: unresolved doc reference [Paused], from vais_speech_audio.VaisSpeechAudio.resume: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart:156:10) warning: unresolved doc reference [started], from vais_speech_audio.VaisSpeechAudio.start: (file:///tmp/pub-dartlang-dartdocIMVEIN/pkg/lib/vais_speech_audio.dart:117:10) found 43 warnings and 1 error Unhandled exception: dartdoc encountered 1 errors while processing. #0 Dartdoc.generateDocs (package:dartdoc/dartdoc.dart:202:7)

Support latest dependencies. (-10 points)

The version constraint in pubspec.yaml does not support the latest published versions for 1 dependency (xml).

The package description is too short. (-20 points)

Add more detail to the description field of pubspec.yaml. Use 60 to 180 characters to describe the package, what it does, and its target use case.

Package is pre-v0.1 release. (-10 points)

While nothing is inherently wrong with versions of 0.0.*, it might mean that the author is still experimenting with the general direction of the API.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.1.0 <3.0.0
byte_array ^0.1.6 0.1.6
file ^5.0.4 5.1.0
fixnum ^0.10.11 0.10.11
flutter 0.0.0
grpc ^2.1.3 2.1.3
http ^0.12.0+4 0.12.0+4
json_annotation ^3.0.0 3.0.1
path ^1.5.1 1.6.4
protobuf ^1.0.1 1.0.1
wakelock ^0.1.3+4 0.1.4+1
xml ^3.5.0 3.7.0 4.1.0
Transitive dependencies
async 2.4.1
charcode 1.1.3
collection 1.14.11 1.14.12
convert 2.1.1
crypto 2.1.4
googleapis_auth 0.2.11+1
http2 1.0.0
http_parser 3.1.4
intl 0.16.1
meta 1.1.8
pedantic 1.9.0
petitparser 3.0.2
sky_engine 0.0.99
source_span 1.7.0
string_scanner 1.0.5
term_glyph 1.1.0
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_test