如何为印地语添加文本到语音?

时间:2016-09-01 13:07:09

标签: android text-to-speech

我的应用程序包含两个字符串和两个按钮,一个英文字符串和印地语字符串,当我点击英语发言按钮时,英语字符串发音,当我来到印地语字符串时它是<强烈>没有回应提到的单词。

这是我的 MainActivity 外观,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="ravi.texttospeech.MainActivity">

<TextView
    android:id="@+id/englishString"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!"
    android:textSize="25dp" />

<TextView
    android:id="@+id/hindiString"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/englishString"
    android:text="नमस्ते दुनिया"
    android:textSize="25dp" />

<Button
    android:id="@+id/englishButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/hindiString"
    android:text="Speak English Text" />

<Button
    android:id="@+id/hindiButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/englishButton"
    android:text="Speak Hindi Text" />

以下是我的 activity_main

window.localStorage

And here is how my app look like

3 个答案:

答案 0 :(得分:6)

我在您的代码中完成了一些修改

 hindiButton.setOnClickListener(new View.OnClickListener() {
        @TargetApi(Build.VERSION_CODES.LOLLIPOP)
        @Override
        public void onClick(View view) {
            loadSpeakingLanguages(hindiString.getText().toString());
            textToSpeech.setLanguage(Locale.forLanguageTag("hin"));
        }
    });

它对我来说很好。

您需要使用 ISO 639 3个字母的单词或ISO 639 2个字母的单词

查看此link

中的 ISO国家/地区名称及相应的代码

注意:此方法仅适用于棒棒糖和下一版本

答案 1 :(得分:1)

尝试一下:-

        $(document).ready(function () {
            $('.add-form-modal').submit(processFormAdd);
//
            function processFormAdd() {
                //Stop form from submitting normally
                event.preventDefault();

                target_name = $("#newtarget_name").val();
                disabled = $("#newdisabled").val();
                iduser = $("#newiduser").val();
                modificatedate = $("#newmodificatedate").val();

                const inputFile = document.getElementById("data");
                var file = inputFile.files[0];
                let formData = new FormData();
                formData.append('data', file); // En la posición 0; es decir, el primer elemento

                var url = "<?php echo url_for('/views/staff/docum/new_version.php?iddoc='); ?>" + iddoc;
                // hay que mirar la BBDD como se llaman las columnas (o en admin.class.php)
                var options = {'idfile': iddoc, 'target_name': target_name, 'disabled': disabled, 'iduser': iduser, 'modificatedate': modificatedate, 'target_file': formData};


                if (inputFile.files.length > 0) {
                    // Send the data using post
                    var posting = $.post(url, options);
                    // Put the results in a div
                    posting.done(function (data, textStatus, jQxhr) {
                        alert("Ajax success data perform " + data);
                        $('#errorsAdd').html('<div class="alert alert-success"> Información añadida con exito </div>').delay(2000).fadeOut("slow");

                        $('.add-form-modal')[0].reset();
                        setTimeout(function () {
                            location.reload();
                        }, 3000);

                    }).fail(function (jqXhr, textStatus, errorThrown) {
                        $('#info').html('<div class="alert alert-error"> Error al procesar la información </div>').fadeOut(5000);
                        alert("Ajax show throws: " + errorThrown);
                        if (console && console.log) {
                            console.log("La solicitud a fallado: " + textStatus);
                        }
                    });
                } else {
                    // El usuario no ha seleccionado archivos
                    alert("Selecciona un archivo");
                }
            }
        });

答案 2 :(得分:0)

setLanguage(new Locale("hi","IN"))