扑:文本语音阵

问题描述 投票:2回答:2

我有一个Android应用程序将文本转换为语音。阵列上的每个单词/串是在被选择时将其转换为语音的按钮。我期待在扑实现这一点。

private TextToSpeech tts; 

GridView的网格;

String[] words = {

        "Flutter",
        "Dart",
        "React,
        "Java"
};


@Override

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    tts =new TextToSpeech(this, this);
    setContentView(R.layout.activity_main);
    grid = (GridView) findViewById(R.id.grid);

任何人都可以提供达特/颤振的解决方案?

谢谢。

flutter
2个回答
2
投票

您可能会发现tts包扑有用:

https://pub.dartlang.org/packages/tts

下面是简单的例子

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

void main() {
  runApp(new Scaffold(
    body: new Center(
      child: new RaisedButton(
        onPressed: speak,
        child: new Text('Say Hello'),
      ),
    ),
  ));
}

speak() async {
  Tts.speak('Hello World');
}

虽然你可以在这里找到一个更深入的例子:

https://pub.dartlang.org/packages/tts#-example-tab-

至于接线此一起:

任何人都可以提供达特/颤振的解决方案?

下面是一个使用列表来呈现按钮与onPressed行动speak的话沿着列表中的每个字符串一个简单的例子:

@override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(
        title: new Text("The App"),
      ),
      body: new Center(
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: _buildWords(),
        ),
      ),
    );
  }

  List<String> words = ['hello', 'world', 'flutter', 'is', 'awesome'];

  List<Widget> _buildWords() {
    return words.map((String word) {
      return new RaisedButton(
        child: new Text(word),
        onPressed: () => Tts.speak(word),
      );
    }).toList();
  }

1
投票

因为它是不符合达特2.0不能使用TTS包:

去“flutter_tts”,因为它的工作与飞镖2.0

https://pub.dartlang.org/packages/flutter_tts

     FlutterTts flutterTts = new FlutterTts();

     Future _speak() async{
        var result = await flutterTts.speak("Hello World");
        if (result == 1) setState(() => ttsState = TtsState.playing);
     }

     Future _stop() async{
       var result = await flutterTts.stop();
       if (result == 1) setState(() => ttsState = TtsState.stopped);
     }

     List<dynamic> languages = await flutterTts.getLanguages;

     await flutterTts.setLanguage("en-US");

     await flutterTts.setSpeechRate(1.0);

     await flutterTts.setVolume(1.0);

     await flutterTts.setPitch(1.0);

     await flutterTts.isLanguageAvailable("en-US");
© www.soinside.com 2019 - 2024. All rights reserved.