LNReader / lnreader

Light novel reader for Android.
https://lnreader.github.io
MIT License
1.57k stars 169 forks source link

Ability to Change TTS Voice #682

Open rabie3150 opened 1 year ago

rabie3150 commented 1 year ago

Describe your suggested feature

Feature Request: Ability to Change TTS Voice

Description

Currently, the LNReader app provides a text-to-speech (TTS) feature, which is incredibly useful for reading light novels. However, it would be great to have the ability to change the TTS voice to enhance the reading experience. This feature request suggests adding an option to select different voices for TTS, including natural voices such as TikTok TTS, Azure, Google, and other free-to-use options.

Proposed Solution

To implement this feature, the following steps can be taken:

  1. Add a new setting in the TTS section of the LNReader app to allow users to choose the TTS voice.
  2. Integrate necessary APIs and libraries to access and utilize the selected voice.
  3. Provide a selection of natural voices such as TikTok TTS, Azure, Google, or any other available free-to-use options.
  4. Ensure that the chosen voice accurately and fluently reads the light novels.

Benefits

Example

Here's an example scenario to illustrate how this feature can be useful:

  1. A user prefers a female voice for TTS.
  2. With the new voice selection feature, the user can choose a natural female voice, such as TikTok TTS or Google, for the TTS playback.
  3. The user can then enjoy a more engaging and personalized reading experience with the selected voice.

Other details

Additional Information

Thank you for considering this feature request. Please let me know if there are any further details or clarifications needed.

Acknowledgements

CD-Z commented 1 year ago

You can already customize your TTS, just not in the app. LNReader just uses your phones standard TTS settings and engine.

I agree with you, that it would be a great feature, however it is also a lot of work and we need a contributer who is willing to do that work. Also I'm not sure if the engines you mentioned would really be free to use in the app.

rabie3150 commented 1 year ago

@CD-Z

Thank you for your response and clarification regarding the TTS customization in LNReader. I understand that utilizing the phone's standard TTS settings and engine is currently an option. However, I do believe that having an integrated solution within the app itself would offer a more seamless and user-friendly experience for LNReader users.

Regarding the availability and licensing of the TTS engines I mentioned, I agree that it's crucial to ensure compliance with any licensing restrictions. I have done some research, and it appears that some of the mentioned TTS engines do offer free-to-use options, particularly for non-commercial purposes. However, I understand the need for thorough investigation and confirmation before incorporating any specific engine into the app.

While I may not be proficient in Kotlin and Android development, I do have some python code snippets and examples that can provide free TTS functionality using the mentioned sources. I'm willing to contribute these code snippets to assist with the development of the feature. I believe they can serve as a starting point for further exploration and implementation within LNReader.

Please let me know how I can best contribute these code snippets and assist with the development efforts. I'm eager to support the community and help enhance the TTS feature in LNReader.

Thank you! @rabie3150

nyagami commented 1 year ago

Sound nice, I want to hear Imouto-chan or Onee-chane voice, instead of Google-chan voice.

TTS will be improved, but not now. In order to integrate those features, we have to make a good base of reader (code/logic) which also was in plan. Because implementing TTS features with current source code is quite impossible, at least for me xD.

cactusoftheday commented 1 year ago

Nyagami you can't say stuff like this...

Since we are going to use python in the app, I can integrate @rabie3150 code into the app.

rabie3150 commented 1 year ago

@cactusoftheday

Thank you for considering integrating the TTS code I've prepared into the LNReader app. I believe it will be a valuable addition to enhance the TTS feature.

To assist with the integration, here are the resources I can provide:

Feel free to explore these resources and leverage any relevant code or logic for integrating the TTS features into LNReader. If you have any questions or need further assistance, please let me know. I'm excited to contribute to the development efforts.

Thank you! @rabie3150

nyagami commented 2 months ago

Voice picker has been added with https://github.com/LNReader/lnreader/pull/1054