如何比较Flutter中的语音识别?

时间:2020-10-26 10:09:24

标签: flutter speech-recognition text-to-speech speech-to-text

我是颤振开发的初学者。我编写了一个代码,在其中使用Speech_to_text和flutter_tts在应用程序中提供命令和获取用户命令。但是,当我尝试将用户语音命令与我的结果进行比较时,它会说“不正确,正确,正确”。我只是想根据我的其他条件给我答案。这是代码:

       class TestScreen extends StatefulWidget {
  @override
 _TestScreenState createState() => _TestScreenState();
 }

 class _TestScreenState extends State<TestScreen> {
stt.SpeechToText _speech;
bool _isListening = false;
String _text = '';
final flutterTts = FlutterTts();
void initState() {
super.initState();
_speech = stt.SpeechToText();
speak('What is this');
}

speak(text) async {
await flutterTts.setLanguage("en-US");
await flutterTts.setPitch(10);
await flutterTts.speak(text);
}

  @override
  Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Center(
      child: Text(
        'Test',
      ),
    ),
  ),
   body: ListView(
     children: <Widget>[
       Container(
        child: Image.asset(
          'assets/images/apple.jpg',
          width: 500.0,
          height: 240.0,
          fit: BoxFit.contain,
        ),
      ),
      Container(
        child: FloatingActionButton(
          onPressed: _listen,
          child: Icon(_isListening ? Icons.mic : Icons.mic_none),
        ),
      ),
    ],
  ),
);

}

  void _listen() async {
if (!_isListening) {
  bool available = await _speech.initialize(
    onStatus: (val) => print('onStatus: $val'),
    onError: (val) => print('onError: $val'),
  );
  if (available) {
    setState(() => _isListening = true);
    _speech.listen(
      onResult: (val) => setState(() {
        _text = val.recognizedWords;
        if (_text == 'Apple') {
          speak('Correct');
        } else {
          speak('Wrong ');
        }
      }),
    );
  }
} else {
  setState(() => _isListening = false);
  _speech.stop();
 }
 }
 }

0 个答案:

没有答案