Android App开发在线语音识别处理中实现中文转拼音(Pinyin4j库)功能(超详细 附源码和演示)

简介: Android App开发在线语音识别处理中实现中文转拼音(Pinyin4j库)功能(超详细 附源码和演示)

需要源码请点赞关注收藏后评论区留下QQ~~~

一、中文转拼音

如果想对一串数字排序,可以比较它们的数值大小,若想对英文单词排序,可以比较它们首字母的ASCII码大小,在中文文化圈中通常有下列的排序方式

1:根据词语首个文字的笔画多少排序,比如对一群人名排序,通常按照姓氏笔画的数量从少到多

2:根据词语首个文字的拼音先后排序 把词语的第一个文字的拼音列出来,再按照拼音字母从A到Z排列,比如新华字典对收录汉字的排列

关于以上两种排列方式,在中文互联网的长期实践中更常见的是第二种依据首字拼音排序

但是计算机只知道每个中文字符的ASCII码大小,并不知晓每个中文字符的拼音是什么,为了解决从中文到拼音的转换问题,开源库Pinyin4j横空出世,它支持把一段中文转为对应的拼音字母,从而将中文的比较规则变成对拉丁字母的排序

由于Pinyin4j是第三方开源库 所以用之前要修改build.gradle 添加下列一行配置

implementation 'com.belerweb:pinyin4j:2.5.1'

接着在代码中调用转换工具PinyinHelper的toHanyuPinyinStringArray方法  即可把中文字符转换成拼音字符 因为中文普通话拥有五种声调 所以转换时还可以选择是否保留声调数字 中文声调与数字的对应关系如下

第一声 1

第二声 2

第三声 3

第四声 4

第五声 5

效果如下

点击按钮即可自动保存声调数字

代码如下

Java类

package com.example.voice;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.example.voice.util.PinyinUtil;
public class PinyinActivity extends AppCompatActivity {
    private final static String TAG = "PinyinActivity";
    private EditText et_hanzi; // 声明一个编辑框对象
    private CheckBox ck_tone; // 声明一个复选框对象
    private TextView tv_pinyin; // 声明一个文本视图对象
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pinyin);
        et_hanzi = findViewById(R.id.et_hanzi);
        ck_tone = findViewById(R.id.ck_tone);
        tv_pinyin = findViewById(R.id.tv_pinyin);
        findViewById(R.id.btn_convert).setOnClickListener(v -> showPinyin());
        ck_tone.setOnCheckedChangeListener((buttonView, isChecked) -> showPinyin());
    }
    // 显示转换后的汉字拼音
    private void showPinyin() {
        String hanzi = et_hanzi.getText().toString();
        if (TextUtils.isEmpty(hanzi)) {
            Toast.makeText(this, "请先输入待转换的汉字", Toast.LENGTH_SHORT).show();
            return;
        }
        // 把汉字串转为拼音串
        String pinyin = PinyinUtil.getHanziPinYin(hanzi, ck_tone.isChecked());
        tv_pinyin.setText(pinyin);
    }
}

XML文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <EditText
        android:id="@+id/et_hanzi"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        android:gravity="left|top"
        android:background="@drawable/editext_selector"
        android:textColor="@color/black"
        android:textSize="17sp" />
    <Button
        android:id="@+id/btn_convert"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="开始转换"
        android:textColor="@color/black"
        android:textSize="17sp" />
    <CheckBox
        android:id="@+id/ck_tone"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="保留声调数字"
        android:textColor="@color/black"
        android:textSize="17sp" />
    <TextView
        android:id="@+id/tv_pinyin"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:textColor="@color/black"
        android:textSize="17sp" />
</LinearLayout>

创作不易 觉得有帮助请点赞关注收藏~~~

相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
相关文章
|
存储 Java PHP
轻量化短视频电商直播带货APP源码全解析:核心功能与设计流程​
在电商直播热潮下,开发专属直播带货APP成为抢占市场关键。本文详解原生开发轻量化APP的核心功能与全流程设计,涵盖用户登录、商品浏览、直播互动、购物车、订单及售后功能,并介绍安卓端Java、苹果端Object-C、后台PHP的技术实现,助力打造高效优质的直播电商平台。
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
消息中间件 缓存 小程序
婚恋交友相亲公众号app小程序系统源码「脱单神器」婚恋平台全套代码 - 支持快速二次开发
这是一套基于SpringBoot + Vue3开发的婚恋交友系统,支持微信公众号、Uniapp小程序和APP端。系统包含实名认证、智能匹配、视频相亲、会员体系等功能,适用于婚恋社交平台和相亲交友应用。后端采用SpringBoot 3.x与MyBatis-Plus,前端使用Vue3与Uniapp,支持快速部署和二次开发。适合技术团队或有经验的个人创业者使用。
1115 8
|
小程序 Java 关系型数据库
圈子系统公众号app小程序系统源码圈子系统带即时通讯 多级圈子系统源码 兴趣小组系统开源 私密圈子系统代码 会员制社区系统
本圈子系统解决方案提供即时通讯、多级圈子、兴趣小组、私密社区及会员制管理功能。支持开源与商业方案,推荐ThinkSNS+、EasyClub及OpenFire等系统,并提供前后端技术选型建议,助力快速搭建社交平台。
720 0
不封号的外卖抢单神器,美团抢单辅助器app,autojs版本源码
这个代码提供了基础框架,包含主循环、订单检测和点击功能。实际使用时需要根据美团骑手AP
|
存储 文件存储 Android开发
仿第八区APP分发下载打包封装系统源码
该系统为仿第八区APP分发下载打包封装系统源码,支持安卓、iOS及EXE程序分发,自动判断并稳定安装。智能提取应用信息,自动生成PLIST文件和图标,提供合理的点数扣除机制。支持企业签名在线提交、专属下载页面生成、云端存储(阿里云、七牛云),并优化签名流程,支持中文包及合并分发,确保高效稳定的下载体验。 [点击查看源码](https://download.csdn.net/download/huayula/90463452)
979 22
|
小程序 搜索推荐
2025同城线下陪玩APP开发/电竞游戏平台搭建游戏陪玩APP源码/语音APP开发
线下陪玩约玩APP旨在满足现代人的社交、兴趣分享、专业指导及休闲娱乐需求。用户可通过平台结识新朋友、找到志同道合的伙伴,并享受高质量的陪玩服务。平台提供用户注册登录、陪玩师筛选与预约、实时沟通等功能,支持个性化游戏体验和高效匹配。
889 0
2025同城线下陪玩APP开发/电竞游戏平台搭建游戏陪玩APP源码/语音APP开发
|
语音技术 Android开发
Android 轻松实现语音识别
  苹果的iphone 有语音识别用的是Google 的技术,做为Google 力推的Android 自然会将其核心技术往Android 系统里面植入,并结合google 的云端技术将其发扬光大。   所以Google Voice Recognition在Android 的实现就变得极其轻松。
1818 0
|
语音技术 Android开发 API
|
12月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1953 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章