मुख्य सामग्री पर जाएँ
CrossFly 100% ओपन सोर्सGitHub पर फ़ॉलो करें
CrossFlyCrossFly
शुरू करें

यह पृष्ठ पुर्तगाली से मशीन-अनुवादित है और इसमें त्रुटियाँ हो सकती हैं। पुर्तगाली संस्करण प्रामाणिक है।

Text-to-Speech (TTS) और Speech-to-Text (STT) का उपयोग कैसे करें

उद्देश्य। डिवाइस से किसी पाठ को बुलवाना (TTS) और उपयोगकर्ता की वाणी को पाठ में लिप्यंतरित करना (STT)। समर्थन: Android और iOS।

उपयोग की गई APIs

  • Device.textToVoice(String text) — text को वाणी के रूप में संश्लेषित करके चलाता है। वही स्ट्रिंग अल्पविराम से अलग किए गए chave:valor युग्मों के माध्यम से इंजन को कॉन्फ़िगर करने के लिए भी काम आती है।
    • locale:por_BRA — भाषा कोड (उदा.: por_BRA, eng_USA_f00)।
    • speech:0.75 — गति गुणक (1.0 = सामान्य, 0.5 = धीमा, 2.0 = तेज़)।
    • languages — logcat में उपलब्ध भाषाओं की सूची देता है (डिबग)। quit — TTS इंजन बंद कर देता है।
  • Device.voiceToText(VoiceToTextListener listener) — वाणी की पहचान शुरू करता है; परिणाम कॉलबैक के माध्यम से आते हैं।
  • Device.VoiceToTextListener — onStart(), onFinish(), onResult(String text), onError(int code, String msg)।
  • Device.soundToSpeechTimeout (स्थैतिक, ms, डिफ़ॉल्ट 5000) — पहचान का टाइमआउट।

हाँ, textToVoice कॉन्फ़िगरेशन स्ट्रिंग स्वीकार करता है। पहला कॉल locale/speech को कॉन्फ़िगर कर सकता है (उदा.: "locale:por_BRA,speech:0.75"); सामान्य पाठ वाले अगले कॉल सामग्री बोलते हैं। voiceToText के कॉलबैक paint thread के बाहर आते हैं → UI अपडेट करते समय Component.onUI(...) का उपयोग करें। Android पर पहली बार चलाने में HD भाषा पैकेज इंस्टॉल करने के लिए कहा जा सकता है।

पूर्ण उदाहरण (कॉपी करें, पेस्ट करें और चलाएँ)

package com.exemplo;

import dev.crossfly.ui.*;                   // Window, Component, Button, Label
import dev.crossfly.ui.layout.*;            // VerticalLayout
import dev.crossfly.device.*;               // Device, Device.VoiceToTextListener

/** चलाने योग्य मुख्य स्क्रीन। launcher (classname) की ओर संकेत करें और चलाएँ: gradlew :lwjgl3:run */
public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      Label resultado = new Label("");
      add(LAY_AUTO, resultado);

      Button falar = new Button("Falar (TTS)");
      falar.onAction(c ->
      {
         // TTS — भाषा/गति कॉन्फ़िगर करें और फिर बोलें
         Device.textToVoice("locale:por_BRA,speech:0.9");     // कॉन्फ़िगरेशन (वैकल्पिक, पहली बार)
         Device.textToVoice("Olá! Bem-vindo ao aplicativo.");  // टेक्स्ट बोलता है
         resultado.setText("Falando...");
      });
      add(LAY_AUTO, falar);

      Button ouvir = new Button("Transcrever (STT)");
      ouvir.onAction(c ->
      {
         // STT — उपयोगकर्ता के भाषण को ट्रांसक्राइब करें (callbacks paint thread के बाहर)
         Device.voiceToText(new Device.VoiceToTextListener()
         {
            public void onStart()  { Component.onUI(() -> resultado.setText("Ouvindo...")); }
            public void onFinish() { Component.onUI(() -> resultado.setText("Pronto")); }
            public void onResult(String text)
            {
               Component.onUI(() -> resultado.setText("Reconhecido: " + text));
            }
            public void onError(int code, String msg)
            {
               Component.onUI(() -> resultado.setText("Erro: " + msg));
            }
         });
      });
      add(LAY_AUTO, ouvir);
   }
}

नीचे दिया गया अंश केवल मुख्य भाग दिखाता है। चलाने के लिए, इसे ऊपर दिए गए MainWindow ढांचे में रखें।

न्यूनतम अंश

// स्रोत में सत्यापित: Device.java (textToVoice पंक्ति 387, voiceToText पंक्ति 340, VoiceToTextListener पंक्ति 397)
import dev.crossfly.device.*;              // Device, Device.VoiceToTextListener
import dev.crossfly.ui.*;                  // Component (onUI)

// 1) TTS — भाषा/गति कॉन्फ़िगर करें और फिर बोलें
Device.textToVoice("locale:por_BRA,speech:0.9");   // कॉन्फ़िगरेशन (वैकल्पिक, पहली बार)
Device.textToVoice("Olá! Bem-vindo ao aplicativo."); // टेक्स्ट बोलता है

// 2) STT — उपयोगकर्ता के भाषण को ट्रांसक्राइब करें (callbacks paint thread के बाहर)
Device.voiceToText(new Device.VoiceToTextListener() {
   public void onStart()  { Component.onUI(() -> mostrarStatus("Ouvindo...")); }
   public void onFinish() { Component.onUI(() -> mostrarStatus("Pronto")); }
   public void onResult(String text) {
      Component.onUI(() -> preencherCampo(text));   // पहचाना गया टेक्स्ट
   }
   public void onError(int code, String msg) {
      Component.onUI(() -> mostrarErro(msg));
   }
});

और गहराई से जानें

क्या यह पृष्ठ उपयोगी था?