تحويل النص الى صوت بإستخدام فلاتر يدعم اللغه العربيه والانجليزية

تحويل النص الى صوت بإستخدام فلاتر يدعم اللغه العربيه والانجليزية

تحويل النص الى صوت بإستخدام فلاتر يدعم اللغه العربيه والانجليزية

في هذا المقال والذي يعد من دروس الذكاء الاصطناعي باستخدام تفنية flutter سوف نقدم لكم شرح لكيفية تحويل النص الى صوت بمعنى ان تقوم بكتابة اي اسم تريدة وبعدها انقر على تشغيل لكي يتم تشغل الصوت بالكلمات التي قدمت بكتابها مع امكانية اختيار لغة للصوت سواء كان الصوت باللغه الانجليزية او العربيه والامر بسيط جدا فيوجد مكتبة من مكتبات فلاتر تقوم بتنفيذ هذه العملية لنا بكل سهوله وفي هذ المقال سوف نشرح لكم كيف تقوم بتنفيذها بكل سهوله لديك في تطبيقك .


سواء كنت تستهدف iOS أو Android ، أو الويب ، أو Windows ، أو macOS ، أو Linux ، أو تدمجها كمجموعة أدوات واجهة المستخدم لمنصة من اختيارك ، نعتقد أن Flutter سيساعدك على إنشاء تطبيقات جميلة وسريعة مع تطوير منتج وقابل للتوسيع ومفتوح نموذج.

نود أن نوفر للمصممين حرية التعبير عن رؤيتهم الإبداعية بالكامل ، غير المقيدة بقيود الإطار الأساسي. نظرًا لإمكانيات التركيب المعقدة والتصميم متعدد الطبقات لـ Flutter ، يمكنك التحكم الكامل في كل بكسل على الشاشة. يمكنك تراكب وتحريك الرسومات والفيديو والنص وعناصر التحكم دون قيود. سواء كنت تقوم بالتطوير لنظام iOS (Cupertino) أو Android (Material) ، فإن Flutter يتميز بمجموعة كاملة من الأدوات المصغّرة التي توفر تجارب مثالية للبكسل إلى جانب إمكانيات التغيير والتبديل أو إنشاء أنماط مرئية جديدة تمامًا.


add flutter_tts  package


dependencies:

  flutter_tts: ^3.5.0



How to Add TS_SERVICE in manifest


عليك بإضافة الاكود التاليه بداخل ملفات الاندرويد وتحديد بداخل ملف manifest كما هو موضح بالصورة .


How to Add TS_SERVICE in manifest

manifest.xml


    <queries>
        <intent>
            <action android:name="android.intent.action.TTS_SERVICE" />
        </intent>
    </queries>


How to convert text to sound in Flutter


الان سوف نقوم بعمل متغير يحمل النص واخر يحمل درجة الصوت وحدة الصوت واللغه والكلمات التي توجد بالنص وبعدها قمنا بعمل TextField وقمنا بالحصول على الcontroller الخاص وفمنا بعمل methodes مسؤولين عن تشغيل الصوت وايقافه وايضا الحصول على مستوى الصوت وحدة الصوت وغيره , وعند تشغيل المقطع الصوتي يتم استخدام الامر المسؤول عن عملية التشغيل والامر ايضا يتضمن اللغه والتي نقوم بتحديدها في البداية ويمكنك استخدام العربيه عن طريق الرمز ar لكي يتم قراءة النصوص باللغة العربيه .

How to convert text to sound in Flutter

ui.dart


import 'dart:ffi';
import 'dart:io';
import 'dart:math';
import 'package:credit_card_type_detector/credit_card_type_detector.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_tts/flutter_tts.dart';
import 'package:image_picker/image_picker.dart';

class FullPage extends StatefulWidget {
  const FullPage({Key? key}) : super(key: key);

  @override
  State<FullPage> createState() => _FullPageState();
}

class _FullPageState extends State<FullPage> with TickerProviderStateMixin {

  FlutterTts flutterTts = FlutterTts();
  TextEditingController textEditingController = TextEditingController();
  double volume = 1.0;
  double pitch = 1.0;
  double speechRate = 0.5;
  List<String>? list;
  String languageEn = 'en-US';
  String languageAr = 'ar';

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

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      // backgroundColor: Colors.black,
      appBar: AppBar(
        title: Text('Full Page'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(15.0),
        child: Center(
          child: Column(
            children: [
          Row(
          children: [
            Expanded(
              child: TextField(
                controller: textEditingController,
                decoration: InputDecoration(
                  labelText: 'Text to Speech',
                  border: OutlineInputBorder(),
                ),
              ),
            ),
            SizedBox(width: 5),
            RaisedButton(
              child: Text('Speak'),
              onPressed: _speak,
            ),
            SizedBox(width: 10),
            RaisedButton(
              child: Text('stop'),
              onPressed: _stop,
            ),
            ],
          ),
          SizedBox(height: 20),
          Row(
            children: [
              Expanded(
                child:Slider(
                    value: volume,
                    min: 0.0,
                    max: 1.0,
                    onChanged: (value) {
                      setState(() {
                        volume = value;
                      });
                    }),
              ),
              Text('volume')
            ],
          ),
          SizedBox(height: 10),
          Row(
            children: [
              Expanded(
                child: Slider(
                    value: pitch,
                    min: 0.0,
                    max: 1.0,
                    onChanged: (value) {
                      setState(() {
                        pitch = value;
                      });
                    }),
              ),
              Text('pitch')
            ],
          ),
          SizedBox(height: 10),
          Row(
            children: [
              Expanded(
                child: Slider(
                    value: speechRate,
                    min: 0.0,
                    max: 1.0,
                    onChanged: (value) {
                      setState(() {
                        speechRate = value;
                      });
                    }),
              ),
              Text('speechRate')
            ],
          ),
          ],
        ),
    ),
      ),);
  }

  void _initSetting() {
    flutterTts.setVolume(volume);
    flutterTts.setPitch(pitch);
    flutterTts.setSpeechRate(speechRate);
    flutterTts.setLanguage(languageAr);
  }

  void _speak() async {
    _initSetting();
    await flutterTts.speak(textEditingController.text);
  }

  void _stop() async {
    await flutterTts.stop();
  }
  
}


android sdk manager تحميل flutter developers applications create app android android studio mac


تعليقات