lnreader icon indicating copy to clipboard operation
lnreader copied to clipboard

Ability to Change TTS Voice

Open rabie3150 opened this issue 2 years ago • 6 comments

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

  • Enhanced reading experience: Allowing users to choose different TTS voices enables them to find a voice that suits their preferences and improves the immersion in the light novels.
  • Personalization: Users can customize their TTS experience by selecting a voice that they find most enjoyable or compatible with the content they are reading.
  • Accessibility: Offering a variety of TTS voices accommodates different user needs, including those with hearing impairments or those who prefer listening to text.

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

  • Currently, the LNReader app provides a great reading experience, and this feature would further enhance its capabilities.
  • The availability of free-to-use natural voices, such as TikTok TTS, Azure, Google, and others, makes it feasible to implement this feature without additional costs.

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

Acknowledgements

  • [X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
  • [X] I have written a short but informative title.
  • [X] If this is an issue with a source, I should be opening an issue in the sources repository.
  • [X] I have updated the app to version 1.1.14.
  • [X] I will fill out all of the requested information in this form.

rabie3150 avatar Jul 09 '23 06:07 rabie3150

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.

CD-Z avatar Jul 09 '23 11:07 CD-Z

@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

rabie3150 avatar Jul 09 '23 15:07 rabie3150

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.

nyagami avatar Jul 09 '23 15:07 nyagami

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.

cactusoftheday avatar Jul 09 '23 17:07 cactusoftheday

@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:

  • TikTok Text-to-speech API: This is a simple Python script to interact with the TikTok TTS API. It can serve as a starting point for incorporating TikTok TTS into the LNReader app.

  • TTS-Grabber: This resource provides access to every Google, Azure, and IBM text-to-speech voice for free. You can explore this repository to extract relevant code or insights for integrating these voices.

  • Speech synthesis: This is a comprehensive list of speech synthesis providers, including online, local, free, and paid options. It can be a helpful reference for evaluating different speech synthesis providers.

  • NovelsReader: This is a command-line reader I'm currently developing to browse, download novels, and convert them to audio using the TikTok API. Although it's still under development, you might find some useful code snippets or approaches in this repository.

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

rabie3150 avatar Jul 09 '23 20:07 rabie3150

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

nyagami avatar Apr 30 '24 17:04 nyagami