Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Alex_Fedor
32 / 32 / 5
Регистрация: 20.01.2015
Сообщений: 233
#1

Не на всех телефонах работает text to speech - Программирование Android

15.03.2016, 21:10. Просмотров 221. Ответов 1
Метки нет (Все метки)

Странно попытался установить приложение на другие телефон, а на них не работает text to speech. Такое чуство, что не хватает железных ресурсов. На самсунге звук есть , но как с зажеванной ленты, на китайце вообще ничего нет. На моем Alcatel все на ура, правда проц у аппарата помощнее. Вот код, все по образцу и подобию.
Подскажите плз куда копать.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
package com.example.easyenglish;
 
import java.util.List;
import java.util.Locale;
 
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.speech.RecognizerIntent;
import android.speech.tts.TextToSpeech;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
 
public class ControllActivity extends Activity implements OnClickListener,OnEditorActionListener,TextToSpeech.OnInitListener{
    TextView tvEntWordControll;
    EditText etEntWordControll;
    ImageButton btnSoundCotroll,btnSayControll,btnExitControll;
    final String MY_LOG="myLog";
    String wordControll;
    InputMethodManager imm;
    private TextToSpeech tts;
    private static final int SPEECH_REQUEST_CODE = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.controll);
        imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
        tvEntWordControll=(TextView) findViewById(R.id.tvEntWordControll);
        etEntWordControll=(EditText) findViewById(R.id.etEntWordControll);
        btnExitControll=(ImageButton)findViewById(R.id.btnExitControll);
        btnSayControll=(ImageButton) findViewById(R.id.btnSayControll);
        btnSoundCotroll=(ImageButton) findViewById(R.id.btnSoundCotroll);
        btnExitControll.setOnClickListener(this);
        btnSayControll.setOnClickListener(this);
        btnSoundCotroll.setOnClickListener(this);
        etEntWordControll.setOnEditorActionListener(this);
        tts = new TextToSpeech(this, this);
        Intent intent=getIntent();
        wordControll=intent.getStringExtra("wordControll");
        wordControll.toLowerCase();//преобразуем строку к нижнему регистру
    }
//=====================================================================================================
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.btnExitControll:
            finish();
            break;
        case R.id.btnSayControll:
            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            //intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                   // RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US");
        // Start the activity, the intent will be populated with the speech text
            startActivityForResult(intent, SPEECH_REQUEST_CODE);
            
            break;
        case R.id.btnSoundCotroll:
            tts.setSpeechRate((float) 0.5);
            tts.speak(wordControll, TextToSpeech.QUEUE_FLUSH, null);
            break;
            
        default:
            break;
        }
    }
//========================================================================================================  
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        // TODO Auto-generated method stub
        if(actionId == EditorInfo.IME_ACTION_DONE){//если клацнули ентерпроверяем на равенство введенное слово
            imm.hideSoftInputFromWindow(etEntWordControll.getWindowToken(), 0);// скрываем клавиатуру
            String equalEntWord=etEntWordControll.getText().toString().toLowerCase();//вытаскием чаво наклацали
            String flipEqualEntWord="";
            for (int i = equalEntWord.length()-1; i >= 0; i--) {
                flipEqualEntWord+=equalEntWord.charAt(i);//переворачиваем строку 
            }
            if(wordControll.equals(equalEntWord) || wordControll.equals(flipEqualEntWord)){//сравниваем чаво наклацали с образцом
                //tvEntWordControll.setText(" ВЕРНО");
                Toast.makeText(this, "ВЕРНО ПОПРОБУЙ НАОБОРОТ", Toast.LENGTH_LONG).show();
            }
            else {
                Toast.makeText(this, "НЕВЕРНО", Toast.LENGTH_LONG).show();
            }
            return true;
        }
        return false;
    }
@Override
public void onInit(int status) {
    // TODO Auto-generated method stub
    if (status == TextToSpeech.SUCCESS) {
         
        int result = tts.setLanguage(Locale.US);
 
        if (result == TextToSpeech.LANG_MISSING_DATA
                || result == TextToSpeech.LANG_NOT_SUPPORTED) {
            Log.e("TTS", "This Language is not supported");
        } else {
            btnSoundCotroll.setEnabled(true);
            //speakOut();
        }
 
    } else {
        Log.e("TTS", "Initilization Failed!");
    }
    
}
//============================================================================================================
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == SPEECH_REQUEST_CODE && resultCode == RESULT_OK) {
        List<String> results = data.getStringArrayListExtra(
                RecognizerIntent.EXTRA_RESULTS);
        String spokenText = results.get(0);
        // Do something with spokenText
       etEntWordControll.setText(spokenText);
        if(wordControll.equals(spokenText) ){//сравниваем чаво наклацали с образцом
            //tvEntWordControll.setText(" ВЕРНО");
            Toast.makeText(this, "ВЕРНО", Toast.LENGTH_LONG).show();
        }
        else {
            Toast.makeText(this, " НЕВЕРНО", Toast.LENGTH_LONG).show();
        }
    }
    
}
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2016, 21:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не на всех телефонах работает text to speech (Программирование Android):

Не на всех телефонах работает adMob - Программирование Android
В эмуляторе + на 1 телефоне с android 2.3 все работает, но на двух телефонах с android 4 и выше не работает. При этом есть такое сообщение ...

По-разному работает на разных телефонах - Программирование Android
Делаю программу на Android Studio. И вот такая проблема, что на моём телефоне часть программы не работает, а на другом - работает. В чём...

Кнопка подробнее работает не во всех браузерах и не на всех телефонах - JavaScript
Привет, как исправить можно эту проблему ? на сайте http://u21.it-elit.org/FONAR/ кнопка подробнее работает не во всех браузерах и...

Text-to-speech и VB.NET - Visual Basic .NET
Раньше написал программу для слепых на VB с использованием DirectSS. Теперь хочу сделать тоже самое но на VB.NET в учебных целях. Обыскал...

Как использовать java-sdk text-to-speech от IBM или любой пример с github - Java EE
Есть IntelliJ и некоторый минимальный опыт его использования (простейшее приложение, сборка jar) Программу создавал до сих пор через...

.NET 4.x Что лучше использовать для распознования русского языка System.Speech или Microsoft.Speech? - C#
Здравствуйте, у меня проблемы со speech recognition c# в Windows 7, что мне лучше использовать System.Speech или Microsoft.Speech? Как я...

1
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
16.03.2016, 17:04 #2
я бы сделал проверку поддержки
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
TextToSpeech tts;
tts=new TextToSpeech(MainActivity.this, new TextToSpeech.OnInitListener() {
 
            @Override
            public void onInit(int status) {
                // TODO Auto-generated method stub
                if(status == TextToSpeech.SUCCESS){
                    int result=tts.setLanguage(Locale.US);
                    if(result==TextToSpeech.LANG_MISSING_DATA ||
                            result==TextToSpeech.LANG_NOT_SUPPORTED){
                        Log.e("error", "This Language is not supported");
                    }
                    else{
                        ;
                    }
                }
                else
                    Log.e("error", "Initilization Failed!");
            }
        });
 
 
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2016, 17:04
Привет! Вот еще темы с ответами:

Не работает выборка типа <pole1> like '%<text>%' or <pole2> like '%<text>%' - C#
прошу прощения за может глупый вопрос, но играюсь уже второй день и не могу понять в чем дело Пишу прикладную програму на c# VS2010...

На вход программе подаются сведения о телефонах всех сотрудников некоторого учреждения - PascalABC.NET
На вход программе подаются сведения о телефонах всех сотрудников некоторого учреждения. В первой строке сообщается количество сотрудников...

результат выборки из БД: rs.next(); String text=rs.getString('text'); <input type=text name=name value=<%=text%>> - Java
Возникла проблема в текстовое поле надо вывести результат выборки из БД rs.next(); String text=rs.getString('text'); &lt;input...

WI-FI на ноутбуке работает, а на телефонах нет интернета - Wi-Fi - Wi-Fi
Добрый день! У меня такая проблема, есть роутер Zyxel Keenetic lite. Подключен модем zyxel p660ru2 интернет раздается на комп нормально....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.