Project Icon

android-speech

简化的Android语音识别和文字转语音功能

android-speech库,当前版本x.y.z,为Android开发者提供便捷、高效的语音识别与文字转语音解决方案。该库支持简单的初始化设置和API调用,提供多语言和多种声音选项,配备有自定义进度动画。

项目简介

Android Speech 是一个简单易用的 Android 语音识别和文本转语音的库。它提供了精简的 API,使开发者能够轻松地在 Android 应用中集成语音相关的功能。

项目设置

Gradle 依赖

要在你的项目中使用 Android Speech,只需在 build.gradle 文件中添加以下依赖:

implementation 'net.gotev:speech:x.y.z'

请将 x.y.z 替换为 Maven Central 上的最新版本。

初始化

若要开始使用该库,需要在你的 Activity 中进行初始化:

public class YourActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);

        Speech.init(this, getPackageName());
    }

    @Override
    protected void onDestroy() {
        // 防止 Activity 销毁时内存泄漏
        Speech.getInstance().shutdown();
    }
}

示例与用法

在项目的 examples 目录中可以找到一个完全可工作的示例应用程序,该应用展示了如何使用此库。

语音识别

在 Activity 中,可以按照以下方式使用语音识别:

try {
    // 确保已授予 android.permission.RECORD_AUDIO 权限
    Speech.getInstance().startListening(new SpeechDelegate() {
        @Override
        public void onStartOfSpeech() {
            Log.i("speech", "speech recognition is now active");
        }

        @Override
        public void onSpeechRmsChanged(float value) {
            Log.d("speech", "rms is now: " + value);
        }

        @Override
        public void onSpeechPartialResults(List<String> results) {
            StringBuilder str = new StringBuilder();
            for (String res : results) {
                str.append(res).append(" ");
            }
            Log.i("speech", "partial result: " + str.toString().trim());
        }

        @Override
        public void onSpeechResult(String result) {
            Log.i("speech", "result: " + result);
        }
    });
} catch (SpeechRecognitionNotAvailable exc) {
    Log.e("speech", "Equipment does not support speech recognition!");
} catch (GoogleVoiceTypingDisabledException exc) {
    Log.e("speech", "Google voice typing must be enabled!");
}

资源释放

在 Activity 的 onDestroy 方法中,添加以下代码以防止内存泄漏:

@Override
protected void onDestroy() {
    Speech.getInstance().shutdown();
}

显示进度动画

可以在布局中添加 SpeechProgressView 来显示语音识别过程中的音量变化:

<LinearLayout
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/linearLayout">

    <net.gotev.speech.ui.SpeechProgressView
        android:id="@+id/progress"
        android:layout_width="120dp"
        android:layout_height="150dp"/>
</LinearLayout>

启动语音识别时,还需传递 SpeechProgressView 对象:

Speech.getInstance().startListening(speechProgressView, speechDelegate);

自定义颜色和最大高度

公司可以自定义进度条的颜色和最大高度:

int[] colors = {
        ContextCompat.getColor(this, android.R.color.black),
        ContextCompat.getColor(this, android.R.color.darker_gray),
        ContextCompat.getColor(this, android.R.color.black),
        ContextCompat.getColor(this, android.R.color.holo_orange_dark),
        ContextCompat.getColor(this, android.R.color.holo_red_dark)
};
speechProgressView.setColors(colors);

int[] heights = {60, 76, 58, 80, 55};
speechProgressView.setBarMaxHeightsInDp(heights);

文本转语音

在 Activity 中使用文本转语音功能:

Speech.getInstance().say("say something");

提供回调以接收状态:

Speech.getInstance().say("say something", new TextToSpeechCallback() {
    @Override
    public void onStart() {
        Log.i("speech", "speech started");
    }

    @Override
    public void onCompleted() {
        Log.i("speech", "speech completed");
    }

    @Override
    public void onError() {
        Log.i("speech", "speech error");
    }
});

配置

可以通过设置方法对演讲实例进行配置。详细信息可以参考 Java 文档。

日志管理

默认情况下,库的日志记录是禁用的。可以通过以下方法启用调试日志:

Logger.setLogLevel(LogLevel.DEBUG);

日志通过 android.util.Log 输出到 LogCat 中。如果希望将日志重定向到其他输出或使用不同的日志记录器,可以实现自己的委托:

Logger.setLoggerDelegate(new Logger.LoggerDelegate() {
    @Override
    public void error(String tag, String message) {
        // 自定义实现
    }

    @Override
    public void error(String tag, String message, Throwable exception) {
        // 自定义实现
    }

    @Override
    public void debug(String tag, String message) {
        // 自定义实现
    }

    @Override
    public void info(String tag, String message) {
        // 自定义实现
    }
});

其他功能

从版本 1.5.0 开始,Speech 库提供了一些 API 用于获取和设置语音转文本和文本转语音的语言和声音。详细使用请查看示例应用。

致谢和许可证

特别感谢 @zagum 提供的原始 speech recognition view 实现,以及 Kristiyan Petrov 对代码的审核、bug 修复和改进建议。

该项目遵循 Apache 2.0 许可证。请参阅 LICENSE 文档以了解更多信息。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号