Hello
I am deaf (and with constant tinnitus, hence my username), and I have recently discovered Live Transcribe, which works with my mother’s Android, but I understand it doesn’t work with de-googled Android. Indeed, I can install and open the app on my own phone, but it just doesn’t type out anything I say.
I’ve read the only other thread I found here about it, but as I know nothing about the workings of computers or phones, I have no idea about the meaning of what I read.
Can anybody help at all? In baby language?
Thank you.
Regain your privacy! Adopt /e/OS the deGoogled mobile OS and online services
piero
December 6, 2025, 8:41pm
2
tcecyk
December 7, 2025, 3:11am
3
the other relevant thread is: Captioning phone calls for hard-of-hearing users
is that your exact use-case, live transcription of incoming calls?
or generally speech to text when the other person can speak into your microphone?
Hi again piero
Yes, that’s the thread I already looked at and didn’t make much sense of. I will see if there are any alternatives, but so far the similar apps I have looked at are not specifically for deaf people needing to see what people are saying. They are more focused on memos and other features. Live Transcribe is simple and does just that one important job. But I will keep looking.
Hi tcecyk
Thanks for the link to that other thread, but no, it’s not what I am searching for. I already use Relay UK for calls, which is fine (and the reason I chose /e/foundation OS, because it at least included the Relay UK app). But thank you anyway.
tcecyk
December 8, 2025, 4:18pm
6
Did you notice the recommendation in the thread, “Ava”?
Murena worked to integrate transcription for subscription users, it will use openai as backend. Proxied, but still biometric. Could be an backlog issue to offer it in an extra App, outside the input keyboard mic symbol.
I looked at where the Google live transcribe app fails (log ). One needs to add the package hash here to potentially overcome that APP_CERT permission error cite in the log. I can follow up on this, but it takes a bit of time to trickle back and I can imagine it’s not the only error.
tcecyk
December 13, 2025, 6:36pm
7
I’m unsure what privilege is needed for APP_CERT so I filed an issue instead of a pull request
opened 06:34PM - 13 Dec 25 UTC
**Affected app**
Name: Google Live Transcribe & Notification
Package id: `com.g… oogle.audio.hearing.visualization.accessibility.scribe`
**Describe the bug**
the App doesn't start
**To Reproduce**
Steps to reproduce the behavior:
1. install App '...'
2. Start App '....'
3. doesn't start
**Expected behavior**
for the App to start.
(the end goal is to have it reachable through the Google Dialer "Phone", but that is out of scope)
**Logcat**
```
W ExtendedAccess: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
E SpatulaClientInterceptor: java.util.concurrent.ExecutionException: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
E CloudSpeechSession: Fatal error, cannot authenticate to Cloud Speech API.
```
<details><summary>full logcat</summary>
<pre>
12-07 00:18:59.650 19452 19452 D AuthProxyService: onBind: Intent { act=com.google.android.gms.auth.service.START pkg=com.google.android.gms }
12-07 00:18:59.658 19452 2828 D AuthProxyService: bound by: GetServiceRequest[AUTH_PROXY, packageName="com.google.audio.hearing.visualization.accessibility.scribe", gmsVersion=252825000, scopes=[], extras=Bundle[{}], defaultFeatures=[], apiFeatures=[], supportsConnectionInfo=true]
12-07 00:18:59.661 19452 2828 W ExtendedAccess: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at org.microg.gms.common.PackageUtils.assertGooglePackagePermission(PackageUtils.java:68)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at org.microg.gms.auth.proxy.AuthProxyService.handleServiceRequest(AuthProxyService.kt:37)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at org.microg.gms.BaseService$1.handleServiceRequest(BaseService.java:55)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at org.microg.gms.AbstractGmsServiceBroker.getService(AbstractGmsServiceBroker.java:256)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at com.google.android.gms.common.internal.IGmsServiceBroker$Stub.onTransact(IGmsServiceBroker.java:505)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at org.microg.gms.AbstractGmsServiceBroker.onTransact(AbstractGmsServiceBroker.java:272)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at android.os.Binder.execTransactInternal(Binder.java:1406)
12-07 00:18:59.661 19452 2828 W ExtendedAccess: at android.os.Binder.execTransact(Binder.java:1350)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: Failed to get service from broker.
12-07 00:18:59.662 2851 2870 E GoogleApiManager: java.lang.SecurityException: Access denied, missing google package permission for APP_CERT
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Parcel.createExceptionOrNull(Parcel.java:3261)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Parcel.createException(Parcel.java:3245)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Parcel.readException(Parcel.java:3228)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Parcel.readException(Parcel.java:3170)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at clc.s(PG:193)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at bkq.run(PG:397)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Handler.handleCallback(Handler.java:991)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Handler.dispatchMessage(Handler.java:102)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Looper.loopOnce(Looper.java:232)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.Looper.loop(Looper.java:317)
12-07 00:18:59.662 2851 2870 E GoogleApiManager: at android.os.HandlerThread.run(HandlerThread.java:85)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: Error getting spatula header
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: java.util.concurrent.ExecutionException: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cmt.bU(PG:32)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cmt.ac(PG:39)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at ddk.b(PG:52)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at ddj.a(PG:3)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at ddl.a(PG:10)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at iqq.f(PG:6)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at iqq.b(PG:15)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at eth.b(PG:314)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at esk.a(PG:7)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at euw.b(PG:225)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at esk.a(PG:7)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at erv.c(PG:272)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at ekt.run(PG:450)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:524)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at java.util.concurrent.FutureTask.run(FutureTask.java:317)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at java.lang.Thread.run(Thread.java:1119)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: Caused by: cij: 17: API: Auth.PROXY_API is not available on this device. Connection failed with: ConnectionResult{statusCode=DEVELOPER_ERROR, resolution=null, message=null}
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cmt.bg(PG:13)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cjc.d(PG:3)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cjv.t(PG:48)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cjv.f(PG:10)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cjv.j(PG:164)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at cjv.i(PG:2)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at bkq.run(PG:427)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at android.os.Handler.handleCallback(Handler.java:991)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at android.os.Handler.dispatchMessage(Handler.java:102)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at android.os.Looper.loopOnce(Looper.java:232)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at android.os.Looper.loop(Looper.java:317)
12-07 00:18:59.663 2851 2931 E SpatulaClientInterceptor: at android.os.HandlerThread.run(HandlerThread.java:85)
12-07 00:18:59.664 2851 2931 E CloudSpeechSession: Fatal error, cannot authenticate to Cloud Speech API.
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: Session #7 ended fatally.
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: com.google.android.libraries.grpc.auth.SpatulaAuthException
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at ddj.a(PG:21)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at ddl.a(PG:10)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at iqq.f(PG:6)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at iqq.b(PG:15)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at eth.b(PG:314)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at esk.a(PG:7)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at euw.b(PG:225)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at esk.a(PG:7)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at erv.c(PG:272)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at ekt.run(PG:450)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:524)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at java.util.concurrent.FutureTask.run(FutureTask.java:317)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1156)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:651)
12-07 00:18:59.664 2851 2931 E TranscriptionResultRece: at java.lang.Thread.run(Thread.java:1119)
12-07 00:18:59.665 2851 2931 I RepeatingRecognitionSes: Closing Session #7 due to non-network error.
12-07 00:18:59.665 2851 2931 I SafeTranscriptionResult: Restarting formatter request queue. null
12-07 00:18:59.666 2851 2931 E ScribeAudioEngine: Stop recognition due to spatulaAuthException happened and mic is recording.
</pre>
</details>
**System**
Android Version: 15
Custom ROM: /e/OS-v3.2-walleye
**microG**
microG Core version: 0.3.9.250932-38 (b262aae)
microG Self-Check results: All ticked
**Additional context**
I speculate that adding the app signing key sha to `KNOWN_GOOGLE_PACKAGES` could avert `missing google package permission for APP_CERT` though I'm unsure if "setOf(ACCOUNT, AUTH, OWNER)" will be sufficient:
https://github.com/microg/GmsCore/blob/cb9be8f682d7649dae23bcc1619f8c5717de5b9d/play-services-base/core/src/main/kotlin/org/microg/gms/common/KnownGooglePackages.kt#L58
current `apksigner verify --verbose --print-certs` outpu:
<details><summary>com.google.audio.hearing.visualization.accessibility.scribe signing key hashes </summary>
<pre>
Signer #1 certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Signer #1 certificate SHA-256 digest: dfa57c73fa2a6f5906c07c3cf82b14f0f0abe0949dd971df5871dcb58aa032b9
Signer #1 certificate SHA-1 digest: c8da753045dd86ad0abc76a85a92da24f9e47702
Signer #1 certificate MD5 digest: da1138b5f407896a961984c827cd25d9
Signer #1 key algorithm: RSA
Signer #1 key size (bits): 4096
Signer #1 public key SHA-256 digest: bcbdfdd89117fa3b5e4bee5b6d22a5ac26159f7a3a309ba6139be5f68f78931e
Signer #1 public key SHA-1 digest: 9c38643b0cbf658d2e92a79398188ef4851bc262
Signer #1 public key MD5 digest: c0ee29501d0811e38c595501726b7f9b
Source Stamp Signer certificate DN: CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US
Source Stamp Signer certificate SHA-256 digest: 3257d599a49d2c961a471ca9843f59d341a405884583fc087df4237b733bbd6d
Source Stamp Signer certificate SHA-1 digest: b1af3a0bf998aeede1a8716a539e5a59da1d86d6
Source Stamp Signer certificate MD5 digest: 577b8a9fbc7e308321aec6411169d2fb
Source Stamp Signer key algorithm: RSA
Source Stamp Signer key size (bits): 4096
Source Stamp Signer public key SHA-256 digest: 4c53c1d28f2ecceadcb1351603f0b702615b3454b6e30070de759359f241b802
Source Stamp Signer public key SHA-1 digest: 188b067a9ee881bde55dabe0f8f7ecb320b1a091
Source Stamp Signer public key MD5 digest: 965afac83f033aa037a54482eb6922d5
</pre>
</details>
Hi tcecyk
Apologies! I replied, but neglected to hit the ‘reply’ button. Or that’s how it looks now I have come back to this website, and see the box still here with my message in it.
What I wrote that appears to be pending, is:
“No, I didn’t notice Ava. I didn’t read the whole thread as I thought it wouldn’t be applicable, as the OP was asking about phones. I now have Ava on my phone, and after a quick try it seems to work just as well as Live Transcribe. So thank you very much for alerting me to this.”
Strange thing about Ava is that it makes my phone get hot pretty quickly. But anyway, I now have something on my phone that works okay (I chose the free option, which means there are more errors with it, but it’s better than nothing).
Thanks for making your request for Live Transcribe too.
1 Like
tcecyk
December 14, 2025, 7:28am
9
high battery consumption can be found in Avas app reviews. It has an offline mode , as to online mode I’d think it wouldn’t incur such high a load.
I still think its worthwhile to register the app type need (split-window transcription outside general text-input, basically just clone that Trascribe app) with the backlog . If you have a murena-ID you can use that to register in gitlab.
Murenas voice-to-text is not ideal with using openai as remote transcription, but isn’t much different than using other services. Imo 1-2 years and they can host a good model themselves or even do it on-device.