Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added iOS and macOS support #576

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

IhorShevchuk
Copy link

Implemented Objective-C++ wrapper around RHVoice core code to allow it's usage in Swift and Objective-C
Added documentation and samples
Created shell script to generate xcframework
Added new job to workflow in order to build xcframework

Implemented Objective-C++ wrapper around RHVoice core code to allow it's usage in Swift and Objective-C
Added documentation and samples
Created shell script to generate xcframework
Added new job to workflow in order to build xcframework
@zstanecic
Copy link
Contributor

Hi!
What is the progress of this? is it ready for merging?

@IhorShevchuk
Copy link
Author

Hi @zstanecic,
This is what I have for now. My plan is to add functionality based on demand from users of this xcframework.
I also have a plan to add support of cocoapods but I do not have experience with it for now, as I know we would need to host it pods file and xcframework somewhere.

@zstanecic
Copy link
Contributor

zstanecic commented May 27, 2022 via email

@IhorShevchuk
Copy link
Author

@zstanecic do you mean implementation of voiceover to help people with disabilities to use their device?
I am not sure if it is possible to have custom voiceover implementation, since Apple is very cautious about privacy.
I will take a look and update.

@alex19EP
Copy link
Member

have custom voiceover implementation

I think this's indeed the case. definitely on ios. I am not sure about mac But knowing Apple, my hopes are not too high.

@IhorShevchuk
Copy link
Author

It is worth noting that Apple is most likely going to expand list of nativity supported languages in iOS 16.

https://www.apple.com/newsroom/2022/05/apple-previews-innovative-accessibility-features/?fbclid=IwAR1YjoMN1SB4q7labgxzMWc5C5fd03hbcMjf8xLF07kJLKYioJUb_3Eejso
Maybe @zstanecic, it just make sense until Apple adds support of your language.

@zstanecic
Copy link
Contributor

zstanecic commented May 29, 2022 via email

@IhorShevchuk
Copy link
Author

Sorry, but I thought of RHVoice as a library. What features should be included into RHVoice iOS to consider it as separate iOS app?

@IhorShevchuk
Copy link
Author

The only use case, that I see from my little iOS experience, is that users of iOS RHVoice could use share menu to "share" some text to an app to "say" it out loud. Same can be done with online articles, by sharing a link to it.

But this is the @Olga-Yakovleva's decision as well as to merge this PR or not.

@TheQuinbox
Copy link
Contributor

Sadly, Apple limits developers from writing synths for their platforms, especially iOS, iPadOS, tvOS, and watchOS. On the Mac it used to be doable (I saw someone port Eloquence to the Mac before it officially happened), but I'm not sure what it would take for Apple to add RHVoice as well, especially because its under the LGPL. Probably more doable than ESpeak and its GPL licensing, but it might still cause issues.

Seeing as the primary function of the Android app is for usage with Android's text-to-speech system, I don't see a huge use for an app on iOS. That said the library would certainly be quite useful (other apps could use it, and maybe VoiceOver too, some day).

@TheQuinbox
Copy link
Contributor

I would like to retract my previous statement. As of iOS 16, its now possible to add your own voices to AVSpeechSynthesizer! Probably early alpha because its beta software, but if @IhorShevchuk could intigrate these APIs with this PR that would be amazing! https://developer.apple.com/documentation/avfaudio/avspeechsynthesisprovideraudiounit

@alex19EP
Copy link
Member

alex19EP commented Oct 4, 2022

hello @IhorShevchuk I plan to dedicate time for this PR this month. please tell me if you plan to do further integration with IOS.

@alex19EP alex19EP assigned alex19EP and unassigned alex19EP Oct 4, 2022
@beqabeqa473
Copy link
Contributor

beqabeqa473 commented Oct 11, 2022 via email

@IhorShevchuk
Copy link
Author

Hi @beqabeqa473,
Could you please share some keywords on how I can find this Xcode example?

@pitermach
Copy link

What @beqabeqa473 is talking about is out of date information. THe speech synthesis example he's referring to is 15+ years old and was written to target very old Mac OS versions.

With iOS 16 and Mac OS Ventura, Apple has created a more modern Speech synthesis API that from my understanding will work on both iOS and Mac OS with the same code - See the link @TheQuinbox provided in his comment above.

@beqabeqa473
Copy link
Contributor

beqabeqa473 commented Oct 11, 2022 via email

@TheQuinbox
Copy link
Contributor

AVSpeechSynthesisProviderAudioUnit is much more modern and works perfectly :) this is how eloquence was implemented on both mac and iOS

@beqabeqa473
Copy link
Contributor

beqabeqa473 commented Oct 11, 2022 via email

@zstanecic
Copy link
Contributor

zstanecic commented Oct 11, 2022 via email

@beqabeqa473
Copy link
Contributor

beqabeqa473 commented Oct 11, 2022 via email

@IhorShevchuk
Copy link
Author

Thanks, @gut4. It should be helpful!

@ZachB100
Copy link

Are there any updates regarding this? Discovered RH a while ago and really like how it sounds, and the fact that custom voices can be produced for it as well. On a Mac so can't use it as of now unfortunately.

@zstanecic
Copy link
Contributor

zstanecic commented Dec 17, 2022 via email

@ZachB100
Copy link

Sorry, I don't think I was clear in my last comment. I am using Colab to train, however it would be great to have RH integrated into macOS as a speech synthesizer using the new Apple API in macOS Ventura and iOS 16 which is what is being worked on currently.

@mikolysz
Copy link

What's the status of this? Is there anything blocking us from merging this into master? If not, why hasn't that already happened (@Olga-Yakovleva )?

It feels like this is exactly what we need to start work on integrating RHVoice with the new AUSpeechSynthesisProvider API.

One potential blocker here is GPL, as Apple famously doesn't allow GPL in the App Store, so, if this is not already the case, we'd need to compile RHVoice without Mage when iOS is concerned.

This isn't such a big issue on MacOS, as other distribution channels besides the Mac App Store exist, and they aren't encumbered with these restrictions.

@zstanecic
Copy link
Contributor

zstanecic commented Dec 27, 2022 via email

@ZachB100
Copy link

ZachB100 commented Dec 27, 2022 via email

IhorShevchuk and others added 5 commits March 13, 2023 14:18
* master: (35 commits)
  readme fix for indian english (RHVoice#842)
  First indian english voice (RHVoice#841)
  Added manually-translated Spanish strings for the Android app. (RHVoice#838)
  Islom and dilnavoz: new uzbek voices (RHVoice#835)
  voice building utils: pitch extraction with the new f0 extractor - penn  (RHVoice#832)
  updated the submodule reference which includes new slovak package (RHVoice#834)
  Fixed critical oversight which crashed the synthesizer when reading slovak or foreign words with unicode signs. (RHVoice#833)
  added serbian for installers (RHVoice#828)
  New language Serbian (RHVoice#825)
  added dragana (RHVoice#827)
  English: vocabulary list in compiled form (RHVoice#822)
  Changed Praat version to the latest version praat6317_linux64barren (RHVoice#792)
  English word list/ (RHVoice#821)
  Macedonian: updated dictionaries and MsiMac v2 (RHVoice#820)
  Change the default json url. Older versions of the app will not be able to work with some upcoming voices, so we need to publish them only for this and newer versions. (RHVoice#819)
  Update the stable core version for voice exe builds. (RHVoice#818)
  Installers for the new 1.14 core (RHVoice#814)
  Update Packaging status in documentation (RHVoice#801)
  Add missing copyright and license statements to two new files.
  Update version numbers.
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

9 participants