Flutter语音识别插件speech_to_text_ultra_tg的使用

发布于 1周前 作者 eggper 来自 Flutter

Flutter语音识别插件speech_to_text_ultra_tg的使用

Author

Souvik Das
LinkedIn

Edited by

Thiago Carvalho
LinkedIn

Speech To Text Ultra

本Flutter插件旨在解决语音识别过程中突然中断的不便。通过手动控制暂停和播放功能,用户现在可以无中断地朗读段落,确保无缝且不间断的语音识别体验。提升您的Flutter应用,实现更流畅的语音交互,使用户能够轻松有效地沟通。

安装

  1. 在您的pubspec.yaml文件中添加该插件的最新版本(并运行dart pub get):

    dependencies:
      speech_to_text_ultra_tg: ^0.0.6
    
  2. 导入插件并在您的Flutter应用中使用它:

    import 'package:speech_to_text_ultra_tg/speech_to_text_ultra_tg.dart';
    

示例

以下是一个简单的示例,展示如何在Flutter应用中使用speech_to_text_ultra_tg插件:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late SpeechToTextUltra2 speechService;

  [@override](/user/override)
  void initState() {
    super.initState();
    speechService = SpeechToTextUltra2(
      ultraCallback: (liveText, finalText, isListening) {
        // 打印实时文本
        // print('Live Text: $liveText');
        if (finalText.isNotEmpty) {
          print(finalText); // 打印最终文本
        }
        // 打印是否正在监听
        // print('Is Listening: $isListening');
      },
      language: 'en-US', // 设置语言为英语(美国)
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('语音到文本示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  speechService.startListening(); // 开始监听
                },
                child: Text('开始监听'),
              ),
              ElevatedButton(
                onPressed: () {
                  speechService.stopListening(); // 停止监听
                },
                child: Text('停止监听'),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

更多关于Flutter语音识别插件speech_to_text_ultra_tg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter语音识别插件speech_to_text_ultra_tg的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用speech_to_text_ultra_tg插件的示例代码。这个插件可以帮助你实现语音识别功能。请注意,这个示例假设你已经有一个Flutter项目,并且已经配置好了开发环境。

首先,你需要在pubspec.yaml文件中添加speech_to_text_ultra_tg依赖:

dependencies:
  flutter:
    sdk: flutter
  speech_to_text_ultra_tg: ^最新版本号  # 请替换为实际的最新版本号

然后,运行flutter pub get来获取依赖。

接下来,你可以在你的Flutter项目中导入并使用该插件。以下是一个简单的示例,展示了如何初始化插件并开始语音识别:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Speech to Text Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: SpeechToTextPage(),
    );
  }
}

class SpeechToTextPage extends StatefulWidget {
  @override
  _SpeechToTextPageState createState() => _SpeechToTextPageState();
}

class _SpeechToTextPageState extends State<SpeechToTextPage> {
  late SpeechToTextUltraTg _speechToText;
  bool _isListening = false;
  String _text = '';

  @override
  void initState() {
    super.initState();
    _speechToText = SpeechToTextUltraTg();
    _speechToText.setLogLevel(SpeechToTextLogLevel.info);
    _speechToText.initialize().then((_) {
      setState(() {});
    }).catchError((e) {
      print('Error initializing: $e');
    });
  }

  @override
  void dispose() {
    _speechToText.stop().then((_) {
      return _speechToText.close();
    });
    super.dispose();
  }

  Future<void> _listen() async {
    setState(() {
      _isListening = true;
    });

    try {
      var result = await _speechToText.listen(
        localeId: 'en-US',
        onResult: (result, localeId) {
          setState(() {
            _text = result.recognizedWords!.join(' ');
          });
        },
        onError: (error) {
          print('Error: $error');
        },
        onStatus: (status) {
          print('Status: $status');
        },
        cancelOnError: true,
        listenFor: Duration(seconds: 10), // 监听10秒,你可以根据需要调整时间
      );

      if (result != null) {
        setState(() {
          _text = result.recognizedWords!.join(' ');
        });
      }
    } catch (e) {
      print('Error listening: $e');
    } finally {
      setState(() {
        _isListening = false;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Speech to Text Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              _text,
              style: TextStyle(fontSize: 24),
              textAlign: TextAlign.center,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: _isListening ? null : _listen,
              child: Text(_isListening ? 'Stopping...' : 'Start Listening'),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个简单的Flutter应用,其中包含一个按钮和一个文本显示区域。当用户点击按钮时,应用将开始监听语音输入,并将识别到的文本显示在屏幕上。

请注意,speech_to_text_ultra_tg插件可能有一些特定的配置要求或限制,例如需要特定的权限(如麦克风权限)。确保你已经在AndroidManifest.xmlInfo.plist文件中添加了必要的权限声明。

此外,由于插件可能会更新,建议查阅最新的官方文档以获取最新的使用指南和API参考。

回到顶部