我是颤振开发的初学者。我编写了一个代码,在其中使用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();
}
}
}