2014-04-19 4 views
14

나는 음성을 인식하고이를 발음 텍스트로 변환하는 안드로이드 응용 프로그램을 만들고 싶습니다. (사실 발음 또는 특수 단어와 사용자 발음 사이의 발음을 비교합니다). 텍스트에 대한 연설을 만드는 것이 가능하다는 것을 알고 있습니다. 사용자가 말하는 모든 단어를 변환하고 싶습니다.음성을 발음으로 변환하는 가장 좋은 방법

API가 있습니까? 그렇지 않다면 구현 방법을 알려주십시오.

+0

확인 http://ispikit.com –

+2

는 내가 원하는 게 아니에요. 안드로이드 라이브러리는 무료가 아닙니다. 나는 더 유연한 방법을 찾고 있습니다. 어려움은 중요하지 않습니다. –

+1

무료 라이브러리를 원한다면 질문에 가리 키길 원할 수 있습니다. –

답변

2

난 그냥 연설 텍스트하기위한 코드을 제공합니다. 그것은 데모입니다. 나는 이것이 당신을 도울 지 모른다. 하지만 난 내 응용 프로그램이 사용하고 있습니다. 그것을 사용해보십시오.

SpeechtoText.java

public class SpeechtoText extends Activity { 
protected static final int RESULT_SPEECH = 1; 
private ImageButton btnSpeak; 
private TextView txtText; 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    txtText = (TextView) findViewById(R.id.txtText); 
    btnSpeak = (ImageButton) findViewById(R.id.btnSpeak); 
    btnSpeak.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent intent = new Intent(
        RecognizerIntent.ACTION_RECOGNIZE_SPEECH); 
      intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL, "en-US"); 
      try { 
       startActivityForResult(intent, RESULT_SPEECH); 
       txtText.setText(""); 
      } catch (ActivityNotFoundException a) { 
       Toast t = Toast.makeText(getApplicationContext(), 
         "Ops! Your device doesn't support Speech to Text", 
         Toast.LENGTH_SHORT); 
       t.show(); 
      } 
     } 
     }); 
    } 
@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
    case RESULT_SPEECH: { 
     if (resultCode == RESULT_OK && null != data) { 
      ArrayList<String> text = data 
        .getStringArrayListExtra(RecognizerIntent.EXTRA_RESULTS); 
      txtText.setText(text.get(0)); 
     } 
     break; 
    } 
    } 
} 

}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:layout_above="@+id/textView1" 
android:layout_toLeftOf="@+id/textView1" 
android:gravity="center" 
android:orientation="vertical" > 
<ImageButton 
    android:id="@+id/btnSpeak" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:contentDescription="@string/speak" 
    android:src="@android:drawable/ic_btn_speak_now" /> 
    <TextView 
    android:id="@+id/txtText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_marginRight="10dp" 
    android:layout_marginTop="10dp" 
    android:textAppearance="?android:attr/textAppearanceLarge" /> 
</LinearLayout>