You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter:如何关闭/修改Google语音转文字的初始提示音

修改Flutter SpeechToText.listen()的Google语音转文字初始提示音

目前speech_to_text插件本身没有直接提供修改Google语音转文字初始提示音的API——这个提示音是Google语音识别服务在系统层面播放的,不过可以通过以下几种方式实现需求:

  • Android端自定义处理

    1. 在Android项目的res/raw目录下添加自定义提示音频文件(如custom_start_sound.mp3)。
    2. 找到speech_to_text插件对应的Android原生代码(通常是SpeechToTextPlugin.java),定位触发语音识别的逻辑。
    3. 调用Google语音识别服务前,用Android的MediaPlayer播放自定义音频,同时禁用系统默认提示音。
    4. 核心代码示例:
      // 播放自定义提示音
      MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.custom_start_sound);
      mediaPlayer.start();
      mediaPlayer.setOnCompletionListener(MediaPlayer::release);
      // 启动语音识别时禁用系统提示音
      Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
      intent.putExtra(RecognizerIntent.EXTRA_SOUND_EFFECTS_ENABLED, false);
      
  • iOS端自定义处理

    1. 将自定义提示音频文件添加到iOS项目资源中。
    2. 修改speech_to_text插件的iOS原生代码,在启动语音识别前播放自定义音频,并关闭系统默认提示音。
    3. 核心代码示例:
      // 播放自定义提示音
      if let soundURL = Bundle.main.url(forResource: "custom_start_sound", withExtension: "mp3") {
          var soundID: SystemSoundID = 0
          AudioServicesCreateSystemSoundID(soundURL as CFURL, &soundID)
          AudioServicesPlaySystemSound(soundID)
      }
      // 禁用系统提示音,需在启动识别会话时配置对应参数
      
  • 跨平台通用替代方案
    若不想修改插件原生代码,可在调用SpeechToText.listen()的同时,用Flutter的audioplayers插件先播放自定义提示音,再通过MethodChannel调用原生代码关闭系统默认提示音。

注意:修改插件原生代码后,需将插件作为本地依赖引入项目,避免pub远程依赖的更新覆盖修改。

内容的提问来源于stack exchange,提问作者Aman Programmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 13:15:23