Форум программистов, компьютерный форум CyberForum.ru

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

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

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

15.03.2016, 21:10. Просмотров 170. Ответов 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();
        }
    }
    
}
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2016, 21:10     Не на всех телефонах работает text to speech
Посмотрите здесь:

Android Размер изображения на разных телефонах
Несколько атрибутов text у button Android
Intent (image+text) Android
Edit text и фокус Android
Не на всех телефонах работает adMob Android
Android Приложение работает не во всех версиях Андроид
Android Plain Text в файл
Отправка СМС в телефонах с двумя картами Android
Запретить поворот экрана на телефонах и позволить его на планшетах Android
Android Text View issue
Android Добавление Text To Speach в приложение
По-разному работает на разных телефонах Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 724
16.03.2016, 17:04     Не на всех телефонах работает text to speech #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!");
            }
        });
 
 
    }
Yandex
Объявления
16.03.2016, 17:04     Не на всех телефонах работает text to speech
Ответ Создать тему
Опции темы

Текущее время: 07:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru