RoBoLoG

[JAVA] 상업적으로 무료 사용 가능한 Android Java TTS 엔진 본문

Study/Java

[JAVA] 상업적으로 무료 사용 가능한 Android Java TTS 엔진

SKJun 2023. 7. 4. 14:43

[TTS] 상업적으로 무료 사용 가능한 안드로이드 TTS 엔진

 

안녕하세요, 오늘은 상업적으로 무료 사용 가능한 안드로이드 TTS 엔진을 알아보겠습니다.

먼저, 해당 글은 생성형 AI를 기반으로 작성되었기 때문에 사용하시기 전에 꼭 더블체크를 해보시기 바랍니다.


상업적으로 무료로 사용할 수 있는 TTS 엔진은 제한적이지만 몇 가지 옵션이 있습니다. 다음은 몇 가지 무료로 사용 가능한 TTS 엔진입니다:

1. MaryTTS: MaryTTS는 오픈 소스 TTS 엔진으로, 다양한 언어와 목소리를 지원합니다. 상업적 용도로 무료로 사용할 수 있으며, 자체적으로 호스팅하여 사용할 수 있습니다.

2. eSpeak: eSpeak는 오픈 소스 TTS 엔진으로, 다양한 플랫폼에서 동작합니다. 상업적인 용도로 무료로 사용할 수 있으며, 다양한 언어와 목소리를 지원합니다.

3. Festival: Festival은 또 다른 오픈 소스 TTS 엔진으로, 다양한 언어와 목소리를 제공합니다. Festival은 상업적인 용도로 무료로 사용할 수 있습니다.

4. ResponsiveVoice: ResponsiveVoice는 무료로 사용 가능한 TTS 웹 서비스입니다. JavaScript API를 통해 쉽게 통합할 수 있으며, 다양한 언어와 목소리를 제공합니다.

이러한 엔진들은 무료로 사용할 수 있는 옵션 중 일부입니다. 그러나 제한적인 목소리 선택이나 기능 제약이 있을 수 있으므로 사용하기 전에 사용 조건을 확인하고 적절한 엔진을 선택하는 것이 중요합니다. 또한, 엔진 제공자의 라이선스 및 이용 약관을 읽고 이에 따라 상업적인 용도에서 사용할 수 있는지 확인해야 합니다.

 


1. MarryTTS

MaryTTS를 안드로이드에서 Java로 구현하기 위해서는 일련의 단계를 따라야 합니다. 아래는 MaryTTS를 안드로이드에서 Java로 사용하는 방법을 안내합니다:

 

1) MaryTTS 라이브러리를 다운로드합니다.

  • MaryTTS 라이브러리를 다운로드하여 안드로이드 프로젝트에 추가해야 합니다. MaryTTS 공식 웹사이트에서 라이브러리 파일을 다운로드할 수 있습니다.

 

2) 안드로이드 프로젝트에 MaryTTS 라이브러리를 추가합니다.

  • 다운로드한 MaryTTS 라이브러리 파일(.jar)을 안드로이드 프로젝트의 libs 폴더에 추가합니다. 그리고 프로젝트의 build.gradle 파일에서 해당 라이브러리를 의존성으로 추가해야 합니다. 예를 들어, build.gradle 파일에 다음 코드를 추가합니다:
implementation files('libs/marytts-library.jar')

 

3) MaryTTS를 Java에서 사용하는 코드를 작성합니다.

  • MaryTTS를 Java로 사용하려면 MaryTTS 클래스의 인스턴스를 생성하고, 텍스트를 음성으로 변환하고 재생하는 등의 작업을 수행하는 코드를 작성해야 합니다. 다음은 예제 코드입니다:
import marytts.LocalMaryInterface;
import marytts.exceptions.MaryConfigurationException;
import marytts.exceptions.SynthesisException;

public class MaryTTSExample {
    public static void main(String[] args) {
        try {
            // MaryTTS 인스턴스 생성
            LocalMaryInterface mary = new LocalMaryInterface();

            // 텍스트를 음성으로 변환하여 재생
            String text = "Hello, world!";
            mary.setVoice("cmu-slt-hsmm");
            mary.synthesize(text);
            mary.play();

            // MaryTTS 종료
            mary.shutdown();
        } catch (MaryConfigurationException | SynthesisException e) {
            e.printStackTrace();
        }
    }
}

 

4) 안드로이드 애플리케이션에서 MaryTTS 사용하기:

  • 안드로이드 애플리케이션에서 MaryTTS를 사용하려면 위의 예제 코드를 안드로이드 액티비티 또는 서비스 등에 통합해야 합니다. 또한, 권한 설정과 필요한 리소스 파일을 제공해야 할 수도 있습니다.

위의 코드에서 "cmu-slt-hsmm"은 MaryTTS의 음성 모델 중 하나입니다. 다른 음성 모델을 사용하려면 해당 모델의 이름을 mary.setVoice() 메서드의 인자로 전달하면 됩니다.

주의: MaryTTS는 Android용으로 공식적으로 지원되지 않는다는 점에 유의해야 합니다. 따라서 MaryTTS를 Android에서 사용하기 위해서는 소스 코드를 직접 통합하고 관련 코드를 작성해야 합니다. 이는 몇 가지 추가적인 설정과 작업을 필요로 할 수 있으므로 주의가 필요합니다. 또한, Android에서 MaryTTS를 사용할 때는 퍼미션과 런타임 권한 요청 등의 Android 개발 관련 사항도 고려해야 합니다.


2. eSpeak

eSpeak를 안드로이드에서 Java 모드로 사용하기 위해서는 몇 가지 단계를 따라야 합니다. 아래는 eSpeak를 안드로이드에서 Java로 사용하는 방법을 안내합니다:

 

1) eSpeak 라이브러리를 다운로드합니다.:

  • eSpeak 라이브러리를 안드로이드에 통합하기 위해 필요한 파일을 다운로드합니다. eSpeak 공식 웹사이트에서 Android용 eSpeak 라이브러리를 다운로드할 수 있습니다.

 

2) 안드로이드 프로젝트에 eSpeak 라이브러리를 추가합니다.:

  • 다운로드한 eSpeak 라이브러리를 안드로이드 프로젝트의 libs 폴더에 추가합니다. 그리고 프로젝트의 build.gradle 파일에서 해당 라이브러리를 의존성으로 추가해야 합니다. 예를 들어, build.gradle 파일에 다음 코드를 추가합니다:
implementation files('libs/espeak-library.jar')

 

3) eSpeak를 Java에서 사용하는 코드를 작성합니다.:

  • eSpeak를 Java로 사용하려면 eSpeak 클래스의 인스턴스를 생성하고 speak 메서드를 호출하여 텍스트를 음성으로 변환할 수 있습니다. 다음은 예제 코드입니다:
import espeak.Espeak;

public class ESpeakDemo {
    public static void main(String[] args) {
        // 텍스트를 음성으로 변환
        String text = "Hello, world!";
        Espeak espeak = new Espeak();
        espeak.speak(text);
    }
}

 

4) 안드로이드 애플리케이션에서 eSpeak 사용하기:

  • 안드로이드 애플리케이션에서 eSpeak를 사용하려면 위의 예제 코드를 안드로이드 액티비티 또는 서비스 등에 통합해야 합니다. 또한, 권한 설정과 필요한 리소스 파일을 제공해야 할 수도 있습니다.

참고: eSpeak의 Android용 라이브러리는 공식적으로 지원되지 않습니다. 따라서, eSpeak를 Android에서 사용하기 위해서는 직접 라이브러리를 통합하고 관련 코드를 작성해야 합니다. 이는 몇 가지 추가적인 설정과 작업을 필요로 할 수 있으므로 주의가 필요합니다. 또한, Android에서 eSpeak를 사용할 때는 퍼미션과 런타임 권한 요청 등의 안드로이드 개발 관련 사항도 고려해야 합니다.

 

반응형

3. Festival


Festival을 안드로이드에서 Java로 구현하기 위해서는 일련의 단계를 따라야 합니다. 아래에는 Festival을 안드로이드에서 Java로 사용하는 방법을 안내합니다:

 

1) Festival 소스 코드를 다운로드합니다.:

  • Festival 소스 코드를 다운로드하여 안드로이드 프로젝트에 추가해야 합니다. Festival 공식 웹사이트에서 소스 코드를 다운로드할 수 있습니다.

 

2) 안드로이드 프로젝트에 Festival 소스 코드를 추가합니다.:

  • 다운로드한 Festival 소스 코드를 안드로이드 프로젝트의 libs 폴더에 추가합니다. 그리고 프로젝트의 build.gradle 파일에서 해당 소스 코드를 컴파일하도록 설정해야 합니다. 예를 들어, build.gradle 파일에 다음 코드를 추가합니다:
implementation files('libs/festival-library.jar')

 

3) Festival을 Java에서 사용하는 코드를 작성합니다.:

  • Festival을 Java로 사용하려면 Festival 클래스의 인스턴스를 생성하고, 텍스트를 음성으로 변환하고 재생하는 등의 작업을 수행하는 코드를 작성해야 합니다. 다음은 예제 코드입니다:
import festival.Festival;

public class FestivalDemo {
    public static void main(String[] args) {
        // Festival 인스턴스 생성
        Festival festival = new Festival();

        // 텍스트를 음성으로 변환
        String text = "Hello, world!";
        festival.sayText(text);

        // Festival 종료
        festival.terminate();
    }
}

 

4) 안드로이드 애플리케이션에서 Festival 사용하기::

  • 안드로이드 애플리케이션에서 Festival을 사용하려면 위의 예제 코드를 안드로이드 액티비티 또는 서비스 등에 통합해야 합니다. 또한, 권한 설정과 필요한 리소스 파일을 제공해야 할 수도 있습니다.

참고: Festival의 Android용 라이브러리는 공식적으로 지원되지 않습니다. 따라서, Festival을 Android에서 사용하기 위해서는 소스 코드를 직접 통합하고 관련 코드를 작성해야 합니다. 이는 몇 가지 추가적인 설정과 작업을 필요로 할 수 있으므로 주의가 필요합니다. 또한, Android에서 Festival을 사용할 때는 퍼미션과 런타임 권한 요청 등의 안드로이드 개발 관련 사항도 고려해야 합니다.

 


4. ResponsiveVoice

ResponsiveVoice는 웹 기반 TTS(Text-to-Speech) 엔진으로, Android에서는 JavaScript로 사용하는 것이 일반적입니다. 하지만, 안드로이드에서 WebView를 사용하여 ResponsiveVoice를 활용할 수 있습니다. 아래는 안드로이드 Java에서 WebView를 이용하여 ResponsiveVoice를 사용하는 방법을 안내합니다:

 

1) Android 프로젝트 설정:

  • 안드로이드 프로젝트에서 WebView를 사용하려면 AndroidManifest.xml 파일에 인터넷 권한을 추가해야 합니다. 다음과 같이 추가합니다:
<uses-permission android:name="android.permission.INTERNET" />

 

2) WebView 설정:

  • Android 액티비티 레이아웃 XML 파일에 WebView를 추가합니다. 예를 들어, activity_main.xml 파일에서 다음과 같이 WebView를 추가합니다:

 

3) 안드로이드 Java 코드:

  • MainActivity.java 파일에서 WebView를 초기화하고 ResponsiveVoice를 사용할 웹 페이지를 로드합니다.
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private WebView webView;

    @SuppressLint("SetJavaScriptEnabled")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        // ResponsiveVoice를 사용할 웹 페이지 로드
        webView.loadUrl("file:///android_asset/responsive_voice_demo.html");
    }

    @Override
    public void onBackPressed() {
        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }
    }
}

 

4) 웹 페이지 작성:

  • responsive_voice_demo.html 파일을 assets 폴더에 추가하여 ResponsiveVoice를 사용할 수 있도록 합니다. 아래는 간단한 예제 웹 페이지 코드입니다:
<!DOCTYPE html>
<html>
<head>
    <title>ResponsiveVoice Demo</title>
    <script src="https://code.responsivevoice.org/responsivevoice.js"></script>
</head>
<body>
    <h1>ResponsiveVoice Demo</h1>
    <p>
        This is an example of using ResponsiveVoice in an Android WebView.
    </p>
    <button onclick="speakText()">Speak</button>

    <script>
        function speakText() {
            responsiveVoice.speak("Hello, world!", "UK English Male");
        }
    </script>
</body>
</html>

 

위 코드에서 responsive_voice_demo.html 파일은 assets 폴더에 위치해야 합니다.

이제 Android 앱을 실행하면 WebView에서 ResponsiveVoice를 사용하여 "Hello, world!"라는 텍스트를 음성으로 들을 수 있습니다. 이를 통해 Android 앱에서 ResponsiveVoice TTS를 사용하는 간단한 구현을 확인할 수 있습니다.

728x90
반응형