Flutter语音识别插件azure_speech_recognition_null_safety的使用

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

Flutter语音识别插件 azure_speech_recognition_null_safety 的使用

概述

Azure Speech Recognition for Flutter 是一个用于在 Flutter 应用中集成 Azure 语音识别服务的插件。该插件支持 Android 和 iOS 平台。

重要提示: 使用此插件之前,您需要在 Azure 认知服务页面上创建一个账户,并获取订阅密钥和服务器区域。

安装

pubspec.yaml 文件中添加最新版本的 azure_speech_recognition_null_safety

dependencies:
  azure_speech_recognition_null_safety: ^<insert_latest_version_here>

初始化

导入包

首先,在 Dart 文件中导入包:

import 'package:azure_speech_recognition_null_safety/azure_speech_recognition_null_safety.dart';

初始化设置

默认语言设置为 "en-EN",但您可以根据需要选择其他支持的语言。分割静音超时默认值为 1000 毫秒(必须是 100 到 5000 之间的整数)。

AzureSpeechRecognition.initialize("your_subscription_key", "your_server_region", lang: "it-IT", timeout: "3000");

识别类型

简单语音识别

执行语音识别直到检测到静音为止。返回最终转录文本并提供部分结果更新。

AzureSpeechRecognition.simpleVoiceRecognition();

连续语音识别

调用方法可以在开启和关闭语音识别之间切换。注意:必须手动停止识别以避免内存泄漏。

AzureSpeechRecognition.continuousRecording();

示例程序

以下是一个完整的示例,展示了如何初始化和使用插件进行语音识别。

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

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

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

class _MyAppState extends State<MyApp> {
  AzureSpeechRecognition? _speechAzure;

  void activateSpeechRecognizer(){
    // 必须初始化
    AzureSpeechRecognition.initialize("your_subscription_key", "your_server_region", lang: "it-IT", timeout: "3000");

    _speechAzure?.setFinalTranscription((text) {
      // 处理最终转录文本
      print("Final Transcription: $text");
    });

    _speechAzure?.setRecognitionStartedHandler(() {
      // 开始识别时调用
      print("Recognition Started");
    });
  }

  [@override](/user/override)
  void initState() {
    super.initState();
    _speechAzure = AzureSpeechRecognition();
    activateSpeechRecognizer();
  }

  // 启动简单语音识别的方法
  Future recognizeVoice() async {
    try {
      await AzureSpeechRecognition.simpleVoiceRecognition();
    } on PlatformException catch (e) {
      print("启动识别失败: '${e.message}'.");
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Azure Speech Recognition Demo')),
        body: Center(
          child: ElevatedButton(
            onPressed: recognizeVoice,
            child: Text('开始语音识别'),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用azure_speech_recognition_null_safety插件进行语音识别的代码示例。这个插件可以让你使用Azure的语音识别服务来将语音转换为文本。

首先,确保你已经在pubspec.yaml文件中添加了依赖:

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

然后运行flutter pub get来安装依赖。

接下来,你需要配置Azure认知服务的语音识别密钥和区域。这些信息可以从Azure门户获取。

以下是一个完整的示例,展示如何使用azure_speech_recognition_null_safety插件:

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

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

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

class SpeechRecognitionPage extends StatefulWidget {
  @override
  _SpeechRecognitionPageState createState() => _SpeechRecognitionPageState();
}

class _SpeechRecognitionPageState extends State<SpeechRecognitionPage> {
  final String azureSubscriptionKey = 'YOUR_AZURE_SUBSCRIPTION_KEY';
  final String azureServiceRegion = 'YOUR_AZURE_SERVICE_REGION'; // e.g., "westus"

  late SpeechRecognition _speechRecognition;
  String _recognizedText = '';

  @override
  void initState() {
    super.initState();
    _speechRecognition = SpeechRecognition(
      subscriptionKey: azureSubscriptionKey,
      serviceRegion: azureServiceRegion,
    );
    _speechRecognition.initialize();
  }

  @override
  void dispose() {
    _speechRecognition.dispose();
    super.dispose();
  }

  Future<void> startRecognition() async {
    try {
      final result = await _speechRecognition.recognizeSpeechFromMicrophone();
      setState(() {
        _recognizedText = result;
      });
    } catch (e) {
      print('Error recognizing speech: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Azure Speech Recognition Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              'Recognized Text:',
              style: TextStyle(fontSize: 20),
            ),
            SizedBox(height: 10),
            Text(
              _recognizedText,
              style: TextStyle(fontSize: 24),
              textAlign: TextAlign.center,
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: startRecognition,
              child: Text('Start Recognition'),
            ),
          ],
        ),
      ),
    );
  }
}

代码说明:

  1. 依赖导入:确保在pubspec.yaml中添加了azure_speech_recognition_null_safety插件。
  2. Azure配置:在代码中用实际的Azure订阅密钥和服务区域替换YOUR_AZURE_SUBSCRIPTION_KEYYOUR_AZURE_SERVICE_REGION
  3. 初始化:在initState方法中初始化SpeechRecognition实例。
  4. 识别逻辑startRecognition方法启动语音识别,并将结果更新到UI。
  5. UI:一个简单的UI,包含一个按钮用于启动语音识别,并显示识别到的文本。

请确保你已经在Azure门户创建了认知服务资源,并获取了正确的密钥和区域。如果你还没有Azure账户,可以先注册一个。

希望这个示例能帮你成功地在Flutter应用中使用Azure的语音识别服务!

回到顶部